取消dedecms后台网站脚本执行权限的方法介绍
今天,在登录网站后台时,发现一个DedeCMS安全提示:目前data、uploads有执行.php权限,非常危险,需要立即取消目录的执行权限!如下图所示:
对于网站安全维护的过程中,目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录,既:data文件和uploads文件。
data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,今天,马海祥就跟分享一下针对不同服务器环境来介绍如何取消这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。
一、Windows下的IIS
针对Windows下的IIS,目前来说主流的有IIS6.0和IIS7两个版本,在此,小编也为大家分别介绍一下:
1、IIS6.0
打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可,如下图所示:
2、IIS7
IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”如下图所示:
在“编辑功能权限……”中,我们直接去除脚本的执行权限即可,如下图所示:
二、Apache下目录脚本的执行权限设置
在国内,很多大型的网站用的是独立主机,但也有很多的小站长用的是虚拟主机,那么,针对Apache下目录脚本的执行权限设置,马海祥也分别从以下2个方面来为大家介绍一下:
1、独立主机配置
在Apache中,没有Windows下IIS的图形管理界面,我们需要手工修改下apache的配置文件,来进行目录脚本的执行权限的设定。
首先我们找到apache的配置文件httpd.conf,通常情况下,该配置文件在apache安装目录下的conf文件夹中,如下图所示:
打开httpd.conf文件,找到内容中如下图所示的位置:
将需要限制执行脚本文件的目录配置添加到下方,配置内容为:
<Directory "DIR">
<FilesMatch ".(php|asp|jsp)$">
Deny from all
</FilesMatch>
</Directory>
配置内容中的DIR为需要限制执行脚本文件的目录,FilesMatch后的内容为需要限定的执行的脚本后缀名,例如:这里需要禁止测试站点uploads文件夹下的PHP,ASP,JSP脚本的运行,则进行如下图所示的配置:
在配置完成后,重启一下apache,配置便生效!
另外,在操作前,uploads文件夹下我新建了一个index.php文件,下图为未作配置前访问情况:
下图为重启apache后访问该页面的效果:
2、虚拟主机/空间配置
在配置前,小编提醒你一下,需要确认你的空间是否支持.htaccess和rewrite,该方法基于.htaccess文件中使用rewrite来达到禁止指定脚本的运行效果。
规则内容如下:
RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php)$ – [F]
针对uploads,data,templets 三个目录做了执行php脚本限制;
将如上内容存储至到.hatccess文件中,将该文件存放到你的站点根目录下,这样,目录脚本的执行权限就控制好了。
点评:
文件或目录的访问权限分为只读,只写和可执行三种,以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作;可执行权限表示允许将该文件作为一个程序执行;文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改,用户也可根据需要把访问权限设置为需要的任何组合。