如何设置Web服务器的权限?如果Web服务器的权限没有设置好,那么网站就会出现漏洞并且很可能会出现被不怀好意的人黑掉的情况。
我们不应该把这归咎于IIS的不安全。如果对站点的每个目录都配以正确的权限,出现漏洞被人黑掉的机会还是很小的(Web应用程序本身有问题和通过其它方式入侵黑掉服务器的除外)。下面是我在配置过程中总结的一些经验,希望对大家有所帮助。
IISWeb服务器的权限设置有两个地方,一个是NTFS文件系统本身的权限设置,另一个是IIS下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上。这两个地方是密切相关的。下面以实例的方式来讲解如何设置权限。
IIS下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上有:
脚本资源访问
读取
写入
浏览
记录访问
索引资源
6个选项。这6个选项中,“记录访问”和“索引资源”跟安全性关系不大,一般都设置。但是如果前面四个权限都没有设置的话,这两个权限也没有必要设置。在设置权限时,记住这个规则即可,后面的例子中不再特别说明这两个权限的设置。
另外在这6个选项下面的执行权限下拉列表中还有:
无
纯脚本
纯脚本和可执行程序
3个选项。
而网站目录如果在NTFS分区(推荐用这种)的话,还需要对NTFS分区上的这个目录设置相应权限,许多地方都介绍设置everyone的权限,实际上这是不好的,其实只要设置好Internet来宾帐号(IUSR_xxxxxxx)或IIS_WPG组的帐号权限就可以了。如果是设置ASP、PHP程序的目录权限,那么设置Internet来宾帐号的权限,而对于ASP.NET程序,则需要设置IIS_WPG组的帐号权限。在后面提到NTFS权限设置时会明确指出,没有明确指出的都是指设置IIS属性面板上的权限。
例1——ASP、PHP、ASP.NET程序所在目录的权限设置:
如果这些程序是要执行的,那么需要设置“读取”权限,并且设置执行权限为“纯脚本”。不要设置“写入”和“脚本资源访问”,更不要设置执行权限为“纯脚本和可执行程序”。NTFS权限中不要给IIS_WPG用户组和Internet来宾帐号设置写和修改权限。如果有一些特殊的配置文件(而且配置文件本身也是ASP、PHP程序),则需要给这些特定的文件配置NTFS权限中的Internet来宾帐号(ASP.NET程序是IIS_WPG组)的写权限,而不要配置IIS属性面板中的“写入”权限。
IIS面板中的“写入”权限实际上是对HTTPPUT指令的处理,对于普通网站,一般情况下这个权限是不打开的。
IIS面板中的“脚本资源访问”不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开“写入”权限的话,那么就非常危险了。
执行权限中“纯脚本和可执行程序”权限可以执行任意程序,包括exe可执行程序,如果目录同时有“写入”权限的话,那么就很容易被人上传并执行木马程序了。
对于ASP.NET程序的目录,许多人喜欢在文件系统中设置成Web共享,实际上这是没有必要的。只需要在IIS中保证该目录为一个应用程序即可。如果所在目录在IIS中不是一个应用程序目录,只需要在其属性->目录面板中应用程序设置部分点创建就可以了。Web共享会给其更多权限,可能会造成不安全因素。
总结:也就是说一般不要打开-主目录-(写入),(脚本资源访问)这两项以及不要选上(纯脚本和可执行程序),选(纯脚本)就可以了.需要asp.net的应用程序的如果应用程序目录不止应用程序一个程序的可以在应用程序文件夹上(属性)-目录-点创建就可以了.不要在文件夹上选web共享.