网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,可写入的目录如: data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消这些目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。
我们需要把IIs中某一个目录的可执行权限去掉。这在IIs6中是非常方便的,可是因为iis7的机制小编也找了不小资料才找到。
Windows下的IIS6.0取消网站目录脚本的执行权限
打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。
IIS7.5版本取消网站目录脚本的执行权限
1、先选择需要取消权限的目录
,然后在右边可以看到 “处理程序映射” 双击打开。
第二步、打开右侧的“编辑功能权限”,将“脚本”这一项取消掉即可
把脚本去掉就不能执行 asp、php、shtm之类的扩展名了。
限制IIS7的目录执行权限的本质,就是在编辑功能权限之后,会在所在目录建立一个web.config,通过里面的配置来限制该目录的权限,所以,当该目录已经有web.config的时候,建议先查看一下配置,然后在web.config下直接添加,添加代码下面的参考解决办法二。
设置时会遇到写入失败的情况,
解决办法二:
1、有可能是当前目录没有写入权限,添加写入权限即可.
2、你的当前的分区不是ntfs,解决方法,在当前目录手动创建一个web.config文件即可。
下面附上web.config的内容:如果想批量操作,其实iis7以上版本都是通过web.config实现控制的,文件夹下面都会加一个web.config文件
<handlers accessPolicy="Read">这个是只有读取权限
<handlers accessPolicy="Read, Script"> 默认的读取与脚本权限。
<"1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers accessPolicy="Read" /> </system.webServer> </configuration>
将上面的文件保存为web.config目录就可以了,如果是别的操作,只需要替换handlers accessPlicy中的参数即可。
注意读取不能取消要不然, html之类的文件都不能读取了。