虽然 Apache 的名声可能比 IIS 好,但我相信用 IIS 来做 Web 服务器的人一定也不少。说实话,我觉得 IIS 还是不错的,尤其是 Windows 2003 的 IIS 6(马上 Longhorn Server 的 IIS 7 也就要来了,相信会更好),性能和稳定性都相当不错。但是我发现许多用 IIS 的人不太会设置 Web 服务器的权限,因此,出现漏洞被人黑掉也就不足为奇了。但我们不应该把这归咎于 IIS 的不安全。如果对站点的每个目录都配以正确的权限,出现漏洞被人黑掉的机会还是很小的(Web 应用程序本身有问题和通过其它方式入侵黑掉服务器的除外)。下面是我在配置过程中总结的一些经验,希望对大家有所帮助。

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 共享会给其更多权限,可能会造成不安全因素。

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

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

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

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

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

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

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

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

好了,我想上面的几个例子已经包含了大部分情况下的权限设置,其它情况根据这些例子,我想你一定可以想到该如何设置了吧。

转载于:https://www.cnblogs.com/Elong/archive/2007/07/16/820205.html

[转载]安全设置 IIS 中的权限相关推荐

  1. 如何设置IIS中的HTTPS服务

    HTTPS是用于在客户端计算机和服务器之间交换的信息的安全通信信道.它使用安全套接字层(SSL).本文介绍如何配置Internet信息服务(IIS)中的SSL / HTTPS服务,这个过程比较Apac ...

  2. 【转载】设置Windows中gvim的默认配色方案和字体

    /*gvim无法自动保存当前的设置,比如字体.配色方案.所以需要修改一下gvim的配置文件,使得每次都可以载入我们所希望的设置.修改vim安装目录下的_vimrc文件,把配色方案设置成黑色背景灰色文字 ...

  3. IIS网站的权限设置问题

    2019独角兽企业重金招聘Python工程师标准>>> IIS中的权限与NTFS权限设置的区别: 当浏览器访问被IIS禁止的页面时,返回404错误页面 但浏览器访问被NTFS禁止的文 ...

  4. 如何设置 Web 服务器的权限之iis

    来源:http://www.study-code.com/server/maintain/75655.htm 如何设置 Web 服务器的权限?如果Web服务器的权限没有设置好,那么网站就会出现漏洞并且 ...

  5. Win 2003 防***提升权限设置IIS服务器安全配置整理

    一. 系统的安装 1.按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面. 2.IIS6.0的安装 开始菜单->控制面板->添加或删除程序-& ...

  6. vista系统服务器,Vista系统中怎么设置IIS服务器

    Vista系统中怎么设置IIS服务器 发布时间:2021-07-22 17:45:04 来源:亿速云 阅读:56 作者:Leah 本篇文章给大家分享的是有关Vista系统中怎么设置IIS服务器,小编觉 ...

  7. 如何在Win7旗舰版中安装并设置IIS

    [转] 如何在Win7旗舰版中安装并设置IIS? 2010-06-07 19:14 转载自 分享 最终编辑 他不就是我嘛 一个偶然的机会,我发现了网上有些高手已经发布了一些相关的信息,于是我就站在&q ...

  8. linux中用户的权限是什么,linux中用户权限设置与更改相关介绍(上)

    不管是在生活中还是在工作中,我们都会经常碰到关于电脑权限方面的一些问题.现在介绍一下在linux系统中关于如何设置和管理用户的权限问题,介绍基本但很重要的命令. 在Linux中,权限分为三大类:基本权 ...

  9. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

    目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 N ...

  10. C#发布网站在web.config和IIS中设置Session过期时间

    C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...

最新文章

  1. php和python哪个用了开发web好-web开发选择Python还是PHP好呢?
  2. python看什么书-自学python看什么书
  3. Java并发编程的艺术 记录(一)
  4. 【javascript高级教程】JavaScript 字符串(String) 对象
  5. extend 对象继承
  6. java工程如何跑起来的_你编写的Java代码是咋跑起来的?
  7. 浅谈-tomcat中的项目之间的访问
  8. 用c语言实现循环神经网络,浅谈LSTM循环神经网络
  9. ubuntu 9.04 更新源_ubuntu更换中国源
  10. IP归属地解析之离线纯真数据库分享
  11. Java调用dll文件
  12. GPU设备架构全面解析(持续更新ing)
  13. DeepinXP Lite 完美精简版 |5.2|5.3|5.4|5.5|5.6|5.7|5.8|5.9|5.10||6.1New| 迅雷下载
  14. 2009年网络游戏排行榜
  15. [量子计算]量子计算的最佳应用(The Best Applications for Quantum Computing)
  16. hutool 获取某月最后一天_Hutool使用指南
  17. 护眼台灯显色指数是什么意思?led灯显色指数80够吗
  18. 牛客面试题HTML与CSS部分
  19. Django框架——模型层单表操作、模型层多表操作、模型层常用和非常用字段和参数、模型层进阶
  20. Knoppix 简介

热门文章

  1. 路由器配置 之 PAP与CHAP认证
  2. 安装SQL server 提示重新启动计算机失败
  3. [转] 背完这444句英语,你的口语绝对不成问题
  4. 记一次mysql故障恢复
  5. XidianOJ 1024 简单逆序对
  6. iPhone发展【一】从HelloWorld开始
  7. PHP无限极分类巧用引用生成树
  8. 使用docker搭建zookeeper集群
  9. SQL*Loader 和 Data Pump
  10. react native 使用TabNavigator编写APP底部导航