IIS 有问必答

2004 年 12 月

IIS 有问必答

Internet 信息服务问答排行榜

作者:Brett Hill

本页内容
安装 IIS Lockdown 后应用程序停止运行安装 IIS Lockdown 后应用程序停止运行
可以自定义浏览目录时的文件显示吗?可以自定义浏览目录时的文件显示吗?
如何在 Windows XP Professional Web 站点上设置 NTFS 权限如何在 Windows XP Professional Web 站点上设置 NTFS 权限

安装 IIS Lockdown 后应用程序停止运行

问:

我们从 IIS Web 服务器分发可执行文件。在运行 IIS Lockdown 工具(2.1 版)部署后,可执行文件停止运行,同时服务器生成 404 错误。URL 好像是 http://server.xx.com/apps/myapp.exe。卸载 IIS Lockdown 工具后功能恢复。为什么 Lockdown 工具会对我们的应用程序产生这样的影响?

答:

IIS Lockdown 工具执行几种重要操作来帮助保护 IIS 5 服务器的安全。所有步骤都是可选的,但了解各个步骤中所发生的情况对于理解各个步骤可能会对服务器产生何种影响是很重要的。您可以在 IIS Insider archives(IIS 有问必答存档)中找到有关此工具的几个问题,它们可能会对您有所帮助,而最完整的处理方法可以在 IIS Lockdown Walkthrough(IIS Lockdown 演练)中找到,其网址为 http://www.iisanswers.com/articles/IIS_Lockdown/IISLockdown.htm

运行此工具时的可选步骤之一是安装 URLScan。URLScan 是一个 ISAPI 筛选器,它按照您的指定检查所有的传入请求并基于特定的标准拒绝它们。URLScan 是一个独立于 IIS Lockdown 工具的可选程序,但是人们却经常将它与 IIS Lockdown 工具混为一谈,因为安装 URLScan 是该工具的选项之一。换句话说,您不运行 IIS Lockdown 照样可以安装 URLScan,不安装 URLScan 也照样可以运行 IIS Lockdown。

如上所述,安装 URLScan 后,该工具将在 IIS 收到 URL 后对其进行检查并基于 URLScan.ini 中的设置接受或拒绝它们。URLScan 的接受或拒绝请求“规则”基于 URLScan.ini 的内容,URLScan.ini 与 URLScan.dll 安装在一起(默认情况下,URLScan 文件夹位于 winnt\system32\inetsrv 中)。打开 URLScan.ini(在“记事本”或其他文本编辑器中)后,您会在顶端发现名为 [options] 的一节(如下所示):

[options]
UseAllowVerbs=1              ; if 1, use [AllowVerbs] section,
                              else use [DenyVerbs] section
UseAllowExtensions=0         ; if 1, use [AllowExtensions] section,
                              else use [DenyExtensions] section
NormalizeUrlBeforeScan=1     ; if 1, canonicalize URL before processing
VerifyNormalization=1        ; if 1, canonicalize URL twice and reject 
                              request if a change occurs
AllowHighBitCharacters=0     ; if 1, allow high bit (ie. UTF8 or MBCS) 
                              characters in URL
AllowDotInPath=0             ; if 1, allow dots that are not file
                              extensions
RemoveServerHeader=0         ; if 1, remove "Server" header from 
                              response
EnableLogging=1              ; if 1, log UrlScan activity
PerProcessLogging=0          ; if 1, the UrlScan.log filename will 
                              contain a PID (ie. UrlScan.123.log)
AllowLateScanning=0          ; if 1, then UrlScan will load as a 
                              low priority filter.
PerDayLogging=1              ; if 1, UrlScan will produce a new log 
                              each day with activity in the form 
                              UrlScan.010101.log
RejectResponseUrl=           ; UrlScan will send rejected requests 
                              to the URL specified here. Default is 
                              /<Rejected-by-UrlScan>
UseFastPathReject=0          ; If 1, then UrlScan will not use the 
                              RejectResponseUrl or allow IIS to log 
                              the request

注意:名为 UseAllowExtensions 的选项被设置为 0。右边的注释说明该选项设置为 0 时,将使用 URLScan 的 [DenyExtensions] 节来确定要阻止的文件扩展名。下面是 URLScan.ini 文件中的一个典型的 [DenyExtensions] 节(由 IIS Lockdown 工具使用):

[DenyExtensions]

;
; Extensions listed here either run code directly on the server,
; are processed as scripts, or are static files that are
; generally not intended to be served out.
;
; Note that these entries are effective if "UseAllowExtensions=0"
; is set in the [Options] section above.
;
; Also note that ASP scripts are denied with the below
; settings.  If you wish to enable ASP, remove the
; following extensions from this list:
;    .asp
;    .cer
;    .cdx
;    .asa
;

; Deny ASP requests
.asp
.cer
.cdx
.asa

; Deny executables that could run on the server
.exe
.bat
.cmd
.com

; Deny infrequently used scripts
.htw     ; Maps to webhits.dll, part of Index Server
.ida     ; Maps to idq.dll, part of Index Server
.idq     ; Maps to idq.dll, part of Index Server
.htr     ; Maps to ism.dll, a legacy administrative tool
.idc     ; Maps to httpodbc.dll, a legacy database access tool
.shtm    ; Maps to ssinc.dll, for Server Side Includes
.shtml   ; Maps to ssinc.dll, for Server Side Includes
.stm     ; Maps to ssinc.dll, for Server Side Includes
.printer ; Maps to msw3prt.dll, for Internet Printing Services

; Deny various static files
.ini     ; Configuration files
.log     ; Log files
.pol     ; Policy files
.dat     ; Configuration files 

您可以看到此列表中包含 .EXE。因此,您之所以会从 IIS 服务器收到一个“404, File Not Found”(404,找不到文件)消息,并不是因为文件不存在,而是因为 URLScan 阻止了它。您只需要删除 URLScan.ini 文件中的该条目便可开始发送您的应用程序。

返回页首返回页首

可以自定义浏览目录时的文件显示吗?

问:

如果在 Web 站点上启用了目录浏览,但没有可用的默认文档,则 IIS 显示的该目录的内容很像 FTP 站点。我们发现这对于分发文件非常有用,但是我想知道是否有办法自定义文件的显示。

答:

您可以对显示多少信息做有限的修改,但不能修改信息的显示格式。换句话说,没有模板可供您用来创建允许您显示您的组织的徽标、联系信息等内容的自定义页面。要创建这样的页面,建议您编写一个脚本来读取目录信息并提供到基础内容的链接。

但是,您可以修改它们的文件属性,文件属性是通过配置数据库键 DirBrowseFlags 显示的。您无法在 IIS 管理器中作出这些修改。您必须使用脚本、MBExplorer 或其他配置数据库编辑工具来添加它们。编辑 DirBrowseFlags 配置数据库属性的值,使其等于下列值(参见 http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ref_mb_dirbrowseflags.asp)中您想启用的值的和。如果配置数据库中您要配置的级别不存在该属性,则您需要创建它并将(下面的)值的和指定为 value

标志

标志名称EnableDirBrowsing

说明

设置为 true 时,启用目录浏览。

配置数据库位掩码标识符

MD_DIRBROW_ENABLED

十进制值

2147483648

十六进制值

0x80000000

标志名称DirBrowseShowDate

说明

设置为 true 时,浏览目录时显示日期信息。

配置数据库位掩码标识符

MD_DIRBROW_SHOW_DATE

十进制值

2

十六进制值

0x00000002

标志名称DirBrowseShowTime

说明

设置为 True 时,显示目录时会显示文件时间信息。

配置数据库位掩码标识符

MD_DIRBROW_SHOW_TIME

十进制值

4

十六进制值

0x00000004

标志名称DirBrowseShowSize

说明

设置为 True 时,浏览目录时显示文件大小信息。

配置数据库位掩码标识符

MD_DIRBROW_SHOW_SIZE

十进制值

8

十六进制值

0x00000008

标志名称DirBrowseShowExtension

说明

设置为 True 时,浏览目录时显示文件名扩展名。

配置数据库位掩码标识符

MD_DIRBROW_SHOW_EXTENSION

十进制值

16

十六进制值

0x00000010

标志名称DirBrowseShowLongDate

说明

设置为 True 时,显示目录时以扩展格式显示日期信息。

配置数据库位掩码标识符

MD_DIRBROW_LONG_DATE

十进制值

32

十六进制值

0x00000020

标志名称EnableDefaultDoc

说明

设置为 True 时,浏览某个目录时加载该目录的默认文档(由 DefaultDoc 属性指定)。

配置数据库位掩码标识符

MD_DIRBROW_LOADDEFAULT

十进制值

1073741824

十六进制值

0x40000000

返回页首返回页首

如何在 Windows XP Professional Web 站点上设置 NTFS 权限

问:

我们使用 Windows XP Professional 上的 IIS 5.1 来开发和测试我们的 Web 应用程序。问题是,我们无法在 Web 站点上设置任何 NTFS 权限。但我们的 Windows 2000 Server 上则不存在这个问题。分区是 NTFS 格式。该怎么办呢?

答:

在 Windows XP Professional 中,默认情况下启用简单文件共享。设置为启用简单文件共享时,文件或文件夹属性的“安全”选项卡不会显示。您可以按照以下步骤禁用简单文件共享:

1.

打开任意文件夹并选择“工具”、“文件夹选项”和“查看”选项卡来显示“高级设置”选项(如下所示)。

文件夹选项

2.

将滚动条滚动到底端并清除“使用简单文件共享”复选框。

3.

单击“应用到所有文件夹”按钮。

4.

单击“确定”并关闭该文件夹。

5.

然后右键单击任意文件夹并选择“属性”。

现在您可以查看允许您设置 NTFS 权限的“安全”选项卡了。

您将会发现许多关于适用于您的 Web 应用程序的 NTFS 权限的建议,可以总结为:

脚本和静态内容要求“读取”权限

可执行文件要求“读取和执行”权限

仅在需要的地方分配“写入”权限

在任何具有“写入和执行”权限的地方设置更多审核

记住,对于 IUSR 匿名用户,默认情况下已内置 Everyone、Users、Authenticated Users、Guests 和 Network 等成员。


更多信息

如有问题,请提交给 IIS 有问必答。挑选出的问题会连同答案一起刊登在下一期的 IIS 有问必答专栏中。

要获得 IIS 有问必答专栏前几个月份的问答列表,请单击此处

返回页首返回页首