网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录 data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。

Windows下的IISIIS6.0取消服务器主机空间目录脚本的执行权限

打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。(如图1)

iis6取消服务器主机空间目录脚本的执行权限

IIS7取消服务器主机空间目录脚本的执行权限

网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录 data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。

IIS7中的步骤

第一步呢,我们在IIS的左侧选中该目录,切换到功能视图

第二步呢,打开“处理程序映射”功能

第三步呢,打开右侧的“编辑功能权限”,将“脚本”这一项取消掉即可

IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”(如图2)

iis7取消服务器主机空间目录脚本的执行权限1

(图2)

在“编辑功能权限……”中,我们直接去除脚本的执行权限即可。(如图3)

iis7取消服务器主机空间目录脚本的执行权限2

综上所述:

若想让指定目录只有读取权限,只要在目录中放置一个名为 “web.config“,内容为

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
<handlers accessPolicy="Read" /> 
</system.webServer> 
</configuration> 

的(配置)文件即可。

这样,在访问该目录下的 asp、php等可执行文件时,IIS7就会输出如下错误提示:

HTTP 错误 401.3 – Unauthorized

由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

iis7.5批量删除 处理程序映射的方法

因为服务器目前只需要支持php,那么就可以把asp,asp.net都删除了。iis7.5比较好的一点就是全部通过根目录的web.config控制,下面提供这个文件,大家就可以参考一下了

Win2008 r2 IIS7.5制定目录禁止执行脚本的方法

参考了万网,服务器Windows2008 IIS7.5可以做一下设置禁用脚本的执行方法——–需要禁止某个目录的脚本执行权限,您可以在要禁用脚本执行权限的目录建立一个web.config文件,里面加入下面的代码:

 
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <remove name="ASPClassic" /> <remove name="PHP-FastCGI" /> <remove name="ASPNET-ISAPI-1.1-AXD" /> <remove name="ASPNET-ISAPI-1.1-HttpRemotingHandlerFactory-rem" /> <remove name="ASPNET-ISAPI-1.1-HttpRemotingHandlerFactory-soap" /> <remove name="ASPNET-ISAPI-1.1-PageHandlerFactory" /> <remove name="ASPNET-ISAPI-1.1-SimpleHandlerFactory" /> <remove name="ASPNET-ISAPI-1.1-WebServiceHandlerFactory" /> <remove name="AssemblyResourceLoader-Integrated" /> <remove name="AXD-ISAPI-2.0" /> <remove name="AXD-ISAPI-2.0-64" /> <remove name="HttpRemotingHandlerFactory-rem-Integrated" /> <remove name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" /> <remove name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" /> <remove name="HttpRemotingHandlerFactory-soap-Integrated" /> <remove name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" /> <remove name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" /> <remove name="PageHandlerFactory-Integrated" /> <remove name="PageHandlerFactory-ISAPI-2.0" /> <remove name="PageHandlerFactory-ISAPI-2.0-64" /> <remove name="Perl-CGI" /> <remove name="Perl-ISAPI" /> <remove name="rules-64-ISAPI-2.0" /> <remove name="rules-Integrated" /> <remove name="rules-ISAPI-2.0" /> <remove name="SecurityCertificate" /> <remove name="SimpleHandlerFactory-Integrated" /> <remove name="SimpleHandlerFactory-ISAPI-2.0" /> <remove name="SimpleHandlerFactory-ISAPI-2.0-64" /> <remove name="svc-Integrated" /> <remove name="svc-ISAPI-2.0" /> <remove name="svc-ISAPI-2.0-64" /> <remove name="TraceHandler-Integrated" /> <remove name="TRACEVerbHandler" /> <remove name="WebAdminHandler-Integrated" /> <remove name="WebServiceHandlerFactory-Integrated" /> <remove name="WebServiceHandlerFactory-ISAPI-2.0" /> <remove name="WebServiceHandlerFactory-ISAPI-2.0-64" /> <remove name="xoml-64-ISAPI-2.0" /> <remove name="xoml-Integrated" /> <remove name="xoml-ISAPI-2.0" /> </handlers> </system.webServer> </configuration>

保存后就设置了该文件夹以及子容器只有读的权限,而没有脚本执行权限。如果要恢复脚本权限就直接删除该目录下的web.config文件。

脚本之家小编注:这个web.config不是放在根目录,而是放到你将取消执行权限的目录。例如/uploads里面。以前2003的时候需要在服务器端手工一个一个的设置,这样通过ftp就可以方便的控制文件夹的执行权限了。