以win2003操作系统,硬盘采用NTFS文件系统。网站的权限设置包含两部分:主要是网站文件夹与文件的访问权限,其次是IIS中的internet 匿名用户的访问权限。
一、网站文件夹与文件访问权限的设置
假设ASP网站在以下文件夹中:web 、bbs,我们称其为网站根文件夹。
1、相同的设置
(1)本地用户一般都要对站点内的文件夹和文件进行维护,所以所有的文件夹和文件必须给予本地超级用户完全控制的权限(不要忘记给超级用户设置强大 的密码)。
(2)我们知道网站中大部分文件都是asp程序,这些文件必须具有“读取和运行”的权限。所以要给web、bbs根文件夹添加internet来宾 用户,设置读取和运行的权限,并让它们底下的所有子文件夹和文件继承到这个权限。(请注意:先不要取消子文件夹的继承权——特殊的毕竟是“少数分子”,我 们后面来个别对付它们)
(3)所有的文件夹只保留administrator和internet来客用户,其它的用户都删除。[注意:如果同时有.net环境还需要 USERS用户!]
使权限可编辑的操作方法:文件夹的权限默认是继承来的,而继承的权限不能直接编辑。操作方法如下,以web为例,打开该文件夹的属性 对话框,点击“安全”标签,点击“高级”按钮,把“允许把来自父系的可继承权限传播给该对象”的复选框中的钩去掉,然后,又会弹出一对话框,点击“复 制”,这样,这个文件夹就复制到了默认的那些权限(不是继承的),就可以编辑了。
2、web的设置
如上所述,现在,web站点内的所有文件internet来客用户都有“读取和运行”的权限。在此基础上,需要进行特别设置的有(不作特别说明,都 指internet来客用户):
database、 count:再添加“修改”的权限。
各频道(如article)内的UploadFiles和js文件夹:添加“修改”权限。
3、动网BBS:Data、UploadFiles、UploadFaces、 Dv_ForumNews这几个文件夹都添加“修改”的权限。
4、再次强调:那些需要写入/修改权限的只是被改动的文件或文件夹,比如数据库文件、数据库文件夹;用来进行数 据库操作的asp文件不需要设置为修改/写入权限,它们只需要统一设置为读取和运行!
二、IIS中的internet匿名用户访问权限的设置
一般地,IIS中,Asp网站中大多数的文件夹和文件要给予internet匿名用户“读取”和“纯脚本”的执行许可,切记不能选“写入”,其它的用默认 设置。
但是,对那些在文件夹权限设置时,给了internet来客用户“修改”权的,要在IIS中重新设置它们的“执行许可”权:如果文件夹中没有asp 和js文件的(如:data、UploadFiles),钩选“读取”,执行许可都设置为“无”,即不允许任何脚本运行。这样,即使这个文件夹中被写入了 恶意程序,也不能运行。
三、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
regsvr32/u C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\System32\wshom.ocx
regsvr32/u C:\WINDOWS\system32\shell32.dll
del C:\WINNT\WINDOWS\shell32.dll
现在很多人的服务器都开始用Apache平台,虽然Apache的名声可能比IIS好,但IIS来做Web服务器的人一定也不少,因为很多站长都是从 asp慢慢走过来的,然后慢慢到php、jsp……
海天这几天搞一个cms的网站,但不知道用什么核心,网上找了下,貌似jtbc的程序二次开发 的扩展性很大,于是就决定用这个核心了,但总不能老是上传到服务器上测试吧,于是自己在XP环境下安装搭建了一个IIS,来用作测试。
IIS 简单的设置,海天原来也用过,但一直没深入了解每个选项是做什么用的,正好这次搭建后文件夹有一点权限的问题,就在网上找了一篇不错的文章,了解不少安全 相关的设置。就比如打开网站所在文件夹的“写入”权限,和在IIS中控制面板打开写入权限,效果是截然不同的,后者直接能被黑客利用,可见权限设置还是很 重要的啊。
IIS Web服务器的权限设置有两个地方,一个是NTFS文件系统本身的权限设置,另一个是IIS下网站->站点->属性->主目录(或站点 下目录->属性->目录)的面板上。
IIS WEB服务器下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上有:脚本资源访问、读取、写入、浏 览、记录访问、索引资源6 个选项。在这6个选项中,其中“记录访问”和“索引资源”跟安全性关系不大,一般可以设置。但如果前四个权限都没有设置的话,这两个权限也没有必要设置。 在设置权限时,记住这个规则即可,后面的例子中不再特别说明这两个权限的设置。
另外在这 6 个选项下面的执行权限下拉列表中还有:无、纯脚本、纯脚本和可执行程序3 个选项。
[原图需在原文查看]
现在的网站目录大多是在 NTFS分区,这样还需要对NTFS 分区上的这个目录的文件夹设置相应权限,许多地方都介绍设置使用everyone的权限来达到控制访问权限,实际上这是不好的。其实只要设置好 Internet来宾帐号(IUSR_xxxxxxx)或IIS_WPG 组的帐号权限就可以了。如果是设置 ASP、PHP 程序的目录权限,那么只需要设置Internet 来宾帐号的权限,而对于ASP.NET 程序,则需要设置 IIS_WPG 组的帐号权限。
[原 图需在原文查看]
有些人在XP系统下可能会发现没有“安全”设置选项,你只需要打开我的电脑-工具-文件夹选项-查看,将“使用简单文件共享(推 荐)”这个选项的勾去掉,就可以了。
ASP、PHP、ASP.NET 程序所在目录的权限设置:
如 果程序是要执行的,那么需要设置“读取”权限,并且设置下面的执行权限为“纯脚本”。其他不要设置“写入”和“脚本资源访问”,更不要设置下面的执行权限 为“纯脚本和可执行程序”。
而文件夹中的NTFS 权限中不要给IIS_WPG用户组和Internet来宾帐号设置写和修改权限。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序)如需要删除文件夹等,则需要给这些特定的文件配置NTFS权限中的 Internet 来宾帐号(ASP.NET 程序是 IIS_WPG 组)的写权限,而不要配置 IIS 属性面板中的“写入”权限。
IIS设置面板中的“写入”权限实际上是对 HTTP PUT指令的处理,对于普通网站,一般情况下这个权限是不要打开的。
IIS 面板中的“脚本资源访问”不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开“写入”权限的话,那么就非常危险了,直接可以修改、删 除网站的源代码。
执行权限中“纯脚本和可执行程序”权限是指可以执行任意程序,包括 exe 可执行程序,如果目录同时有“写入”权限的话,那么就很容易被黑客上传并执行木马程序了。
对于ASP.NET程序的目录,许多人喜欢在文件系统 中设置成Web共享,实际上这是没有必要的。只需要在IIS中保证该目录为一个应用程序即可。如果所在目录在IIS中不是一个应用程序目录,只需要在其属 性->目录面板中应用程序设置部分点创建就可以了。Web 共享会给其更多权限,可能会造成不安全因素。
总结:也 就是说一般不要打开IIS控制面板下主目录的(写入),(脚本资源访问) 这两项,以及不要选上(纯脚本和可执行程序),选(纯脚本)就可以了。需要asp.net的应用程序的如果应用程序目录不止应用程序一个程序的可以在应用 程序文件夹上(属性)-目录-点创建就可以了。不要在文件夹上选web共享。
上传目录的权限设置:
网站上可能会设置一个或几个目录允许上传文件,上传的方式一般是通过ASP、PHP、ASP.NET等程序来完成。这时需要注意,一定要将上传 目录的执行权限(IIS控制面板下的)设为“无”,这样即使黑客上传了 ASP、PHP 等脚本程序或者exe程序,也不能在用户浏览器里就触发执行。
同 样,如果不需要用户用PUT指令上传,那么不要打开控制面板该上传目录的“写入”权限。而应该设置目录的NTFS权限中的Internet来宾帐号 (ASP.NET 程序的上传目录是 IIS_WPG 组)的写权限。
如果下载时,是通过网站程序读取文件内容然后再转发给用户的话,那么连 IIS控制面板的“读取”权限也不要设置。这样可以保证用户上传的文件只能被网站程序中已授权的用户所下载。而不是知道文件存放目录的用户所下载。“浏 览”权限也不要打开,除非你就是希望用户可以浏览你的上传目录,并可以选择自己想要下载的东西。
总结:一些 asp.php等程序都有一个上传目录。比如论坛,他们继承了上面的属性可以运行脚本的,我们应该将这些目录从新设置一下属性,将执行权限(纯脚本)改成 (无)。
Access数据库所在目录的权限设置:
许多IIS用户常常采用将Access 数据库的后缀名mdb改名(改为asp或者aspx等)或者放在发布目录之外的方法来避免浏览者下载数据库。而实际上,这是不必要的。其实只需要在IIS 控制面板设置数据库所在目录(或者该文件)的“读取”、“写入”权限都去掉就可以防止被人下载或篡改了。
不必担心这样设置,网站程序会无法读取和 写入你的 Access 数据库。网站程序需要的是NTFS 上Internet来宾帐号或IIS_WPG组帐号的权限,你只要将这些用户的权限设置为可读、可写就完全可以保证网站程序能够正确运行了。
总 结:NTFS设置Internet 来宾帐号或IIS_WPG组帐号的权限可读可写.那么IIS控制面板中数据库所在目录(或者该文件)的“读取”、“写入”权限都去掉就可以防止被人下载或 篡改了。
其它目录的权限设置:
你的网站下可能还有纯图片目录、纯 html 模版目录、纯客户端 js 文件目录或者样式表目录等,这些目录只需要ISS控制面板设置“读取”权限即可,执行权限设成“无”即可。其它权限一概不需要设置。
其 实,IIS控制面板设置的是访客在IE浏览器下浏览的权限,而NTFS文件夹设置是给网站程序执行时需要的权限。
还有其他需要注 意的设置,大家知道的话补充下,让更多人多注意一下网站的安全。
评论