如何设置IIS网站目录的访问权限

如何设置IIS网站目录的访问权限,第1张

打开网站根目录的“属性”窗体,然后切换到“安全”选项框

在“安全”选项框中,有该目录权限的组或用户,以及对应的权限。

点击“编辑”按钮,在打开的“权限”对话框中,再点击“添加”按钮,依次添加匿名用户IUSR和和用户组IIS_IUSRS

对于网站的根目录,通常只需要赋予“读取”,“列出文件夹内容”和“读取和执行”的权限。

如果在网站下某些文件或目录需要写入权限,则单独在这些文件或目录的IUSR和IIS_USRS权限上添加“写入”

通过这种方式完成网站的访问权限设置,之前碰到的问题就迎刃而解。

如何设置Web 服务器的权限?如果Web服务器的权限没有设置好,那么网站就会出现漏洞并且很可能会出现被不怀好意的人黑掉的情况。我们不应该把这归咎于 IIS 的不安全。如果对站点的每个目录都配以正确的权限,出现漏洞被人黑掉的机会还是很小的(Web 应用程序本身有问题和通过其它方式入侵黑掉服务器的除外)。下面是我在配置过程中总结的一些经验,希望对大家有所帮助。

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 面板中的写入权限实际上是对 HTTP PUT 指令的处理,对于普通网站,一般情况下这个权限是不打开的。

IIS 面板中的脚本资源访问不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开写入权限的话,那么就非常危险了。

执行权限中纯脚本和可执行程序权限可以执行任意程序,包括 exe 可执行程序,如果目录同时有写入权限的话,那么就很容易被人上传并执行木马程序了。

对于 ASP.NET 程序的目录,许多人喜欢在文件系统中设置成 Web 共享,实际上这是没有必要的。只需要在 IIS 中保证该目录为一个应用程序即可。如果所在目录在 IIS 中不是一个应用程序目录,只需要在其属性-目录面板中应用程序设置部分点创建就可以了。Web 共享会给其更多权限,可能会造成不安全因素。

总结:也就是说一般不要打开-主目录-(写入),(脚本资源访问) 这两项以及不要选上(纯脚本和可执行程序),选(纯脚本)就可以了.需要asp.net的应用程序的如果应用程序目录不止应用程序一个程序的可以在应用程序文件夹上(属性)-目录-点创建就可以了.不要在文件夹上选web共享.

例2 上传目录的权限设置:

用户的网站上可能会设置一个或几个目录允许上传文件,上传的方式一般是通过 ASP、PHP、ASP.NET 等程序来完成。这时需要注意,一定要将上传目录的执行权限设为无,这样即使上传了 ASP、PHP 等脚本程序或者 exe 程序,也不会在用户浏览器里就触发执行。

同样,如果不需要用户用 PUT 指令上传,那么不要打开该上传目录的写入权限。而应该设置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序的上传目录是 IIS_WPG 组)的写权限。

如果下载时,是通过程序读取文件内容然后再转发给用户的话,那么连读取权限也不要设置。这样可以保证用户上传的文件只能被程序中已授权的用户所下载。而不是知道文件存放目录的用户所下载。浏览权限也不要打开,除非你就是希望用户可以浏览你的上传目录,并可以选择自己想要下载的东西。

总结:一般的一些asp.php等程序都有一个上传目录.比如论坛.他们继承了上面的属性可以运行脚本的.我们应该将这些目录从新设置一下属性.将(纯脚本)改成(无).

例3 Access 数据库所在目录的权限设置:

许多 IIS 用户常常采用将 Access 数据库改名(改为 asp 或者 aspx 后缀等)或者放在发布目录之外的方法来避免浏览者下载它们的 Access 数据库。而实际上,这是不必要的。其实只需要将 Access 所在目录(或者该文件)的读取、写入权限都去掉就可以防止被人下载或篡改了。你不必担心这样你的程序会无法读取和写入你的 Access 数据库。你的程序需要的是 NTFS 上 Internet 来宾帐号或 IIS_WPG 组帐号的权限,你只要将这些用户的权限设置为可读可写就完全可以保证你的程序能够正确运行了。

总结:Internet 来宾帐号或 IIS_WPG 组帐号的权限可读可写.那么Access所在目录(或者该文件)的读取、写入权限都去掉就可以防止被人下载或篡改了

例4 其它目录的权限设置:

你的网站下可能还有纯图片目录、纯 html 模版目录、纯客户端 js 文件目录或者样式表目录等,这些目录只需要设置读取权限即可,执行权限设成无即可。其它权限一概不需要设置。

上面的几个例子已经包含了大部分情况下的权限设置,只要掌握了设置的基本原理,也就很容易地完成能其它情况下的权限设置。

ASP 执行时,是以"IUSR_机器名"的身份访问硬盘的,这里没给该用户帐号权限,ASP

也就不能读写硬盘上的文件了。 下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的目录。 如下图所示,打开"计算机管理"→"本地用户和组"→"用户",在右栏中点击鼠标右键,在d出的菜单中选择"新用户":

在d出的"新用户"对话框中根据实际需要输入"用户名"、"全名"、"描述"、"密码"、"确认密码",并将"用户下次登录时须更改密码"前的对号去掉,选中"用户不能更改密码"和"密码永不过期"。本例是给第一虚拟主机的用户建立一个匿名访问

Internet 信息服务的内置帐号"IUSR_VHOST1", 访问此虚拟主机时,都是以这个身份来访问的。输入完成后点"创建"即可。可以根据实际需要,创建多个用户,创建完毕后点"关闭":

现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:

在d出的"IUSR_VHOST1"(即刚才创建的新帐号)属性对话框中点"隶属于"选项卡:

刚建立的帐号默认是属于"Users"组,选中该组,点"删除":

现在出现的是如下图所示,此时再点"添加":

在d出的"选择

组"对话框中找到"Guests",点"添加",此组就会出现在下方的文本框中,然后点"确定":

出现的就是如下图所示的内容,点"确定"关闭此对话框:

打开"Internet

信息服务",开始对虚拟主机进行设置,本例中的以对"第一虚拟主机"设置为例进行说明,右击该主机名,在d出的菜单中选择"属性":

d出一个"第一虚拟主机

属性"的对话框,从对话框中可以看到该虚拟主机用户的使用的是"F:\VHOST1"这个文件夹:

暂时先不管刚才的"第一虚拟主机

属性"对话框,切换到"资源管理器",找到"F:\VHOST1"这个文件夹,右击,选"属性"→"安全"选项卡,此时可以看到该文件夹的默认安全设置是"Everyone"完全控制(视不同情况显示的内容不完全一样),首先将最将下的"允许将来自父系的可继承权限传播给该对象"前面的对号去掉:

此时会d出如下图所示的"安全"警告,点"删除":

此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用"删除"将其清空),然后点"添加"按钮。

将如图中所示的"Administrator"及在前面所创建的新帐号"IUSR_VHOST1"添加进来,

将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将"Guests"组、

"IUSR_机器名"这些匿名访问的帐号添加上去!

再切换到前面打开的"第一虚拟主机

属性"的对话框,打开"目录安全性"选项卡,点匿名访问和验证控制的"编辑":

在d出的"验证方法"对方框(如下图所示),点"编辑":

d出了"匿名用户帐号",默认的就是"IUSR_机器名",点"浏览":

在"选择

用户"对话框中找到前面创建的新帐号"IUSR_VHOST1",双击:

此时匿名用户名就改过来了,在密码框中输入前面创建时,

为该帐号设置的密码:

再确定一遍密码:

OK,完成了,点确定关闭这些对话框。 经此设置

后,"第一虚拟主机"的用户,使用 ASP 的

FileSystemObject 组件也只能访问自己的目录:

F:\VHOST1

下的内容,当试图访问其他内容时,会出现诸如

"没有权限"、"硬盘未准备好"、"5a8zd_00

服务器内部错误"等出错提示了。

另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取。如果要允许其读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择"属性"→"安全",将这个用户的帐号添加到列表中,并至少给予"读取"权限。由于该卷下的子目录都已经设置为"禁止将来自父系的可继承权限传播给该对象",所以不会影响下面的子目录的权限设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11613354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存