通过控制文件夹权限来提高站点的安全性。
这一篇权限设置包括二个方面,一个是系统目录、盘符的权限,一个是应用程序的上传文件夹权限设置。
系统目录
确保所有盘符都是NTFS格式,如果不是,可以用命令 convert d:/fs:ntfs 转换为NTFS格式。
所有磁盘根目录只给system和administrators权限,其它删除。
其中系统盘符会有几个提示,直接确定就可以了。在做这步操作之前,你的运行环境软件必须都安装好以后才能做。不然可能会导致软件安装错误,记住一点所有安全性的操作设置都必须在软件安装完以后才能进行。
站点目录
每个网站对应一个目录,并为这个网站目录加上IUSR和IIS_IUSRS权限,都只给“列出文件夹内容”和“读取”权限。
例如我在D盘根目录下创建了一个wwwroot的目录,再在里面创建了一个blog.postcha.com的目录,这个目录里面放的是我的网站程序。其中wwwroot只要继存d盘的权限即可,而blog.postcha.com这个目录,我们需要再添加二个权限,即IUSR和IIS_IUSRS。
wwwroot权限:
站点目录权限:
一般的网站都有上传文件、图片功能,而用户上传的文件都是不可信的。所以还要对上传目录作单独设置。上传目录还需要给IIS_IUSRS组再添加“修改”、“写入”权限。
经过上面这样设置承在一个执行权限,一旦用户上传了恶意文件,我们的服务器就沦陷了,但是我们这里又不能不给,所以我们还要配合IIS来再设置一下。
在iis7以上版本里,这个设置非常的方便。打开IIS管理器,找到站点,选中上传目录,在中间栏IIS下双击打开“处理程序映射”,再选择“编辑功能权限”,把“脚本”前面的勾掉就可以了。
好了,我们打开upload文件夹看一下,是不是多了一个web.config。
web.config里的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers accessPolicy="Read" /> </system.webServer> </configuration>
意思是upload目录下的所有文件(包括所有子文件夹下的)将只有只读权限。这样用户即使上传了恶意文件,也发挥不了作用。
<handlers accessPolicy="Read" />的取值可以为“Read, Execute, Script”,分别表示“只读、执行、脚本”。