IIS Web 服务器的权限设置有两个地方,一个是 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 面板中的“写入”权限实际上是对 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 文件目录或者样式表目录等,这些目录只需要设置“读取”权限即可,执行权限设成“无”即可。其它权限一概不需要设置。 上面的几个例子已经包含了大部分情况下的权限设置,只要掌握了设置的基本原理,也就很容易地完成能其它情况下的权限设置。
不过,您可以更改网站中任何文件夹或文件的权限。例如,您可以使用 Web 服务器权限来控制是否允许网站访问者查看某一特定网页、加载信息或运行脚本。当同时配置 Web 服务器权限和 Windows NTFS 权限时,您可以在多个级别(从整个网站到单个文件)控制用户访问 Web 内容的方式。
1. 启动 Internet 服务管理器。或者启动 IIS 管理单元。
2. 单击以展开* server name,其中 server name 是服务器的名称。
3. 右键单击要为用户授予访问权限的网站、虚拟目录、文件夹或文件,然后单击属性。
4. 根据您的具体情况单击下列选项卡之一:
主目录、 虚拟目录、目录、文件
5. 单击以选中或清除下列任何一个对应要授予的 Web 权限级别的复选框(如果存在): 脚本资源访问:授予此权限将允许用户访问源代码。脚本资源访问包含脚本的源代码,如 Active Server Pages (ASP) 程序中的脚本。注意,此权限只有在授予读取或写入权限时才可用。
注意:如果单击脚本资源访问,用户将可以从 ASP 程序的脚本中查看到敏感信息,例如用户名和密码。他们还将能够更改您的服务器上运行的源代码,这会严重影响服务器的安全和性能。建议您使用单个的 Windows 帐户和更高级别的身份验证(如集成的 Windows 身份验证)来处理对此类信息和这些功能的访问。
读取:授予此权限将允许用户查看或下载文件或文件夹及其相关属性。读取权限默认情况下是选中的。
写入:授予此权限将允许用户把文件及其相关属性上载到服务器中启用的文件夹,或允许用户更改启用了写入权限的文件的内容或属性。
目录浏览:授予此权限将允许用户查看虚拟目录中的文件和子文件夹的超文本列表。请注意,文件夹列表中并不显示虚拟目录用户必须知道虚拟目录的别名。
注意:如果下列两个条件都满足,则当用户试图访问服务器上的文件或文件夹时,Web 服务器将在用户的 Web 浏览器中显示一条Access Forbidden(禁止访问)错误信息: 目录浏览被禁用。
用户未在地址框中指定文件名,如 Filename.htm。
记录访问:授予此权限可在日志文件中记录对此文件夹的访问。只有在为网站启用了日志记录时才会记录日志条目。
索引资源:授予此权限将允许 Microsoft 索引服务在网站的全文索引中包含该文件夹。授予此项权限后,用户将可以对此资源执行查询。
6. 在执行权限框中,选择一个设置以确定想让脚本在此网站上以何种方式运行。可以使用以下设置:? 无:如果不希望用户在服务器上运行脚本或可执行的程序,则请单击此设置。当使用此设置时,用户只能访问静态文件,如超文本标记语言 (HTML) 文件和图像文件。
仅脚本:单击此设置可在服务器上运行诸如 ASP 程序之类的脚本。
脚本和可执行文件:单击此设置可在服务器上同时运行 ASP 程序之类的脚本和可执行程序。
7. 单击确定,然后退出Internet 服务管理器或退出 IIS 管理单元。
注意: 在您尝试更改网站或虚拟目录的安全属性时,IIS 会检查该网站或虚拟目录中包含的子节点(虚拟目录和文件)上的现有设置。如果在较低级别上设置的权限不同,则 IIS 会显示一个继承覆盖对话框。要指定哪些子节点应该继承您在较高级别上设置的权限,请单击子节点列表中的一个或多个节点,然后单击确定。子节点将继承新的权限设置。
如果文件夹或文件的 Web 权限和 NTFS 权限不同,则将使用这两种设置中限制条件较严格的设置。
给指定的文件夹配置对应的访问权限是Apache配置中的基础应用,也是Apache使用者的必备技能之一。 在Apache配置文件中,给指定目录设置基本的访问权限,主要是靠Allow、Deny、Order三个指令的配合使用来实现的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)