织梦教程dedecms安全设置之文件夹目录权限

  • A+

 

权限设置

1、a 文件夹是静态生成文件的存放目录,所以拒绝脚本执行 允许写入

2、data 是缓存文件、数据等,所以充许写入,但是因为这里面的文件引入到其它地方进行使用,所以要拒绝脚本执行。

3、dede 是后台管理目录,并且这个一般情况下不需要修改,所以允许脚本执行,拒绝写入。(建议修改后台dede的目录名,减少一个风险)

4、images 仅是存系统图片, 所以拒绝脚本执行,拒绝写入。

5、include 这个目录是系统库,一般情况下也是引入到其它地方使用,但是也有一些文件需要执行,比如验证码,但是一般不需要修改。所以允许脚本执行,拒绝写入。

6、install 这个目录在系统安全完之后,直接删除, 系统部署之后,这个文件夹就没有用了。

7、member 如果不使用会员系统,这个目录夹也可以直接删除。

8、plus 这个插件目录,不需要修改的,允许脚本执行,拒绝写入。

9、special 这个专题文件夹,一般我们会改名。与a目录一样,拒绝脚本执行,允许写入

10、templets 这相模板目录,拒绝执行,拒绝写入。拒绝写入之后,比较麻烦,如果修改模板,要先允许写入,再修改再去拒绝写入,但是不要嫌麻烦,毕竟为了安全嘛。

11、uploads 是上传目录,不用说必须拒绝脚本,允许写入,一个不小心,黑客就给你上传个木马上来了。

12、将data目录移到根目录之外,这也是官方要求做的,但是不得不说,这会带来很多问题,比如访问根目录下面的index.php会了错,三级联动也会出错。

index.php 可以通过修改代码解决,如果你不需要三级联动功能,可以移出data。

操作方法:

(1)修改/include/common.inc.php

将 define('DEDEDATA', DEDEROOT.'/data');

改成: define('DEDEDATA', DEDEROOT.'/../data');

(2)到后台系统基本设置->性能选项 里面设置 模板缓存目录为 /../data/tplcache。

 

删除以下文件夹和文件

member 会员文件夹整个删除

special 专题文件夹整个删除

install 安装文件夹整个删除

/templets/default 官方默认模板这个文件夹删除

plus 文件夹除了以下 1个文件夹 和 5个php文件,其他的文件统统删除

/plus/img (这个文件夹)

/plus/count.php

/plus/diy.php

/plus/list.php

/plus/search.php

/plus/view.php

把 dede 后台文件夹改名,改复杂一点,改成我都不认识,每次进入ftp查看。

打开 /include/dialog/select_soft_post.php 找到

$fullfilename = $cfg_basedir.$activepath."/".$filename;
  • 在它上面加入
if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
	ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
	exit();
}

 

打开 /dede/media_add.php 找到

$fullfilename = $cfg_basedir.$filename;
  • 在它上面加入
if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))){
	ShowMsg("你指定的文件名被系统禁止!",'java script:;');
	exit();
}

 

在买的模板里面检查整站备份文件夹里 模板 和 文档图片文件夹 是否有挂马和

每一个跟模板有关的js文件都要一一打开来细心检查,因为挂马很多在js文件中,不然你前面和后面的工作都白做了。

1、每一个跟模板有关的css 和 images 文件夹下都要细心检查是否有后门文件,除了图片文件、css文件、字体文件,其他的一律删除,删错了也不用担心,有整站打包的备份在。

2、每一个模板htm文件都要细心检查是否有挂马代码存在,检查你的模板文件夹里是否有后门文件,比如php文件,asp文件,其他可疑的格式文件一律删除,删错了也不用担心,有整站打包的备份在。

3、你备份文件中的文档图片文件夹 uploads 文件夹,每一个文件夹都要打开,都要细心检查是否有后门文件,除了图片文件和你的附件,其他的一律删除,删错了也不用担心,有整站打包的备份在。

4、/data/common.inc.php 和  /data/config.cache.inc.php 一会配合打包要用到,所以也要检查。

5、/include/extend.func.php 可能有二次开发的自定义方法在里面,所以也要检查。

6、其他你曾经二次开发修改过的文件。

利用伪静态功能禁止以下目录运行php脚本

linux主机的用户一般都是apache环境,使用 .htaccess 文件来设置,如果你网站根目录已经存在这个文件,那就复制一下代码添加进去,没有这个文件的小伙伴可以下载下来放进去

RewriteEngine on 
#安全设置 禁止以下目录运行指定php脚本 
RewriteCond % !^$ 
RewriteRule a/(.*).(php)$ – [F] 
RewriteRule data/(.*).(php)$ – [F] 
RewriteRule templets/(.*).(php|htm)$ – [F] 
RewriteRule uploads/(.*).(php)$ – [F]

链接: https://pan.baidu.com/s/14BhVNBmKLnAibkiCywlBFw 提取码: 1gir

 

windows主机的用户一般都是iis7、iis8环境,使用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内,没有这个文件的小伙伴可以下载下来放进去

<rule name="Block data" stopProcessing="true">
	<match url="^data/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="data" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>
<rule name="Block templets" stopProcessing="true">
	<match url="^templets/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="templets" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>
<rule name="Block SomeRobot" stopProcessing="true">
	<match url="^uploads/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="SomeRobot" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>

web.config 文件下载

链接: https://pan.baidu.com/s/1_t8F0gzWkpZwCO4ZGREa3w 提取码: h89v

 

Nginx下禁止指定目录运行PHP脚本

注意:这段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后记得重启Nginx生效。

location ~* /(a|data|templets|uploads)/(.*).(php)$ {
	return 403;
}

 

如何验证第八步是否生效呢

使用Sublime Text 或者 Dreamweaver 新建一个php文件,名为a.php

里面随便写个文字,上传到根目录 然后访问路径,如果是能正常显示你写的数字,那表示没生效,提示403页面说明设置成功了

教程到此介绍。

注意:当然不同的系统设置的方法都不一样,遇到不会操作的可以私聊我

weinxin
我的微信
把最实用的经验,分享给最需要的读者,希望每一位来访的朋友都能有所收获!
广告也精彩

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: