欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

URLScan工具配置方法第1/2页

程序员文章站 2022-06-13 19:13:30
如何配置 urlscan 工具 察看本文应用于的产品 文章编号 : 326444  最后修改 : 20...
如何配置 urlscan 工具
察看本文应用于的产品
文章编号 : 326444 
最后修改 : 2007年3月14日 
修订 : 5.3 
我们强烈建议所有运行 microsoft windows server 2003 的用户将 microsoft internet 信息服务 (iis) 升级到 6.0 版,因为 iis 6.0 显著增强了 web 基础结构的安全性。有关与 iis 安全性相关的主题的更多信息,请访问下面的 microsoft 网站:
http://www.microsoft.com/technet/security/prodtech/iis.mspx (http://www.microsoft.com/technet/security/prodtech/iis.mspx)
本页
概要
本文分步说明如何配置 urlscan 工具以防止 web 服务器受到攻击和利用。

回到顶端

安装 urlscan
要安装 urlscan,请访问下面的 microsoft developer network (msdn) 网站:
http://msdn2.microsoft.com/en-us/library/aa302368.aspx (http://msdn2.microsoft.com/en-us/library/aa302368.aspx)
有关其他信息,请单击下面的文章编号,以查看 microsoft 知识库中相应的文章: 
307608 (http://support.microsoft.com/kb/307608/) 对 iis 使用 urlscan 
回到顶端

修改 urlscan.ini 文件
urlscan 的所有配置都是通过 urlscan.ini 文件执行的,此文件位于 %windir%\system32\inetsrv\urlscan 文件夹中。要配置 urlscan,请在文本编辑器(如记事本)中打开此文件,进行相应的更改,然后保存此文件。

注意:要使更改生效,必须重新启动 internet 信息服务 (iis)。一种快速的实现方法是在命令提示符处运行 iisreset。 

urlscan.ini 文件包含以下几节: ? [options]:此节描述常规 urlscan 选项。 
? [allowverbs] 和 [denyverbs]:此节定义 urlscan 允许的谓词(又称作 http 方法)。 
? [denyheaders]:此节列出 http 请求中不允许的 http 标头。如果 http 请求中包含此节中列出的 http 标头之一,urlscan 将拒绝该请求。 
? [allowextensions] 和 [denyextensions]:此节定义 urlscan 允许的文件扩展名。 
? [denyurlsequences]:此节列出 http 请求中不允许的字符串。urlscan 拒绝那些包含此节中出现的字符串的 http 请求。 
本文将更详细地介绍每一节。


[options] 节
在 [options] 节中,可以配置许多 urlscan 选项。此节中的每一行都具有以下格式: 
optionname=optionvalue
可用选项及其默认值如下所示: ? useallowverbs=1

默认情况下,此选项设置为 1。如果将此选项设置为 1,则 urlscan 仅允许那些使用 [allowverbs] 节中列出的谓词的 http 请求。urlscan 禁止任何不使用这些谓词的请求。如果将此选项设置为 0,则 urlscan 忽略 [allowverbs] 节,相反仅禁止那些使用 [denyverbs] 节中列出的谓词的请求。 
? useallowextensions=0

默认情况下,此选项设置为 0。如果将此选项设置为 0,则 urlscan 禁止对 [denyextensions] 节中列出的文件扩展名的请求,但允许对任何其他文件扩展名的请求。如果将此选项设置为 1,则 urlscan 仅允许对带 [allowextensions] 节中列出的扩展名的文件的请求,而禁止对任何其他文件的请求。 
? normalizeurlbeforescan=1

iis 收到用 url 编码的请求。这表示某些字符可能被替换为百分号 (%) 后跟特定的数字。例如,%20 对应于一个空格,因此,对 http://myserver/my%20dir/my%20file.htm 的请求与对 http://myserver/my dir/my file.htm 的请求是相同的。标准化就是对 url 编码请求进行解码的过程。默认情况下,此选项设置为 1。如果将 normalizeurlbeforescan 选项设置为 1,则 urlscan 分析已解码的请求。如果将此选项设置为 0,则 urlscan 分析未解码的请求。将此选项设置为 0 会影响 urlscan 禁止某种攻击的能力。 
? verifynormalization=1

由于百分号 (%) 本身可以是 url 编码的,所以攻击者可以向服务器提交一个精心制作的、基本上是双重编码的请求。如果发生这种情况,iis 可能会接受本应视作无效而拒绝的请求。默认情况下,此选项设置为 1。如果将 verifynormalization 选项设置为 1,则 urlscan 将对 url 执行两次标准化。如果第一次标准化后的 url 与第二次标准化后的 url 不同,urlscan 将拒绝该请求。这样就可以防止那些依赖双重编码请求的攻击。 
? allowhighbitcharacters=0

默认情况下,此选项设置为 0。如果将此选项设置为 0,则 urlscan 拒绝任何包含非 ascii 字符的请求。这样可以防止某些类型的攻击,但同时可能也会禁止对某些合法文件的请求,如带有非英文名的文件。 
? allowdotinpath=0

默认情况下,此选项设置为 0。如果将此选项设置为 0,则 urlscan 拒绝所有包含多个句点 (.) 的请求。这样可以防止通过将安全的文件扩展名放入 url 的路径信息或查询字符串部分,以达到伪装请求中的危险文件扩展名的企图。例如,如果将此选项设置为 1,则 urlscan 可能允许对 http://servername/badfile.exe/safefile.htm 的请求,因为它认为这是对 html 页的请求,但实际上这是一个对可执行 (.exe) 文件的请求,而该文件的名称在 path_info 区域中显示为 html 页的名称。如果将此选项设置为 0,urlscan 可能还会拒绝对包含句点的目录的请求。 
? removeserverheader=0

默认情况下,web 服务器返回一个标头,其中指出了 web 服务器在所有响应中运行的 web 服务器软件。这会增加服务器遭受攻击的可能性,因为攻击者可以确定服务器正在运行 iis,于是便攻击已知的 iis 问题,而不是试图使用为其他 web 服务器设计的攻击手段来攻击 iis 服务器。默认情况下,此选项设置为 0。如果将 removeserverheader 选项设置为 1,可以防止您的服务器发送将其标识为 iis 服务器的标头。如果将 removeserverheader 设置为 0,则仍发送此标头。 
? alternateservername=(默认情况下不指定)

如果将 removeserverheader 设置为 0,可以在 alternateservername 选项中指定一个字符串以指定将在服务器标头中传回的内容。如果将 removeserverheader 设置为 1,则此选项将被忽略。 
? enablelogging=1

默认情况下,urlscan 在 %windir%\system32\inetsrv\urlscan 中保留所有被禁止的请求的完整日志。如果不希望保留此日志,可将 enablelogging 设置为 0。 
? perprocesslogging=0

默认情况下,此选项设置为 0。如果将此选项设置为 1,urlscan 将为承载 urlscan.dll 的每个进程创建一个单独的日志。如果将此选项设置为 0,所有进程将记录到同一个文件中。 
? perdaylogging=1

默认情况下,此选项设置为 1。如果将该值设置为 1,则 urlscan 每天创建一个新的日志文件。每个日志文件的名称都是 urlscan.mmddyy.log,其中 mmddyy 是日志文件的日期。如果将该值设置为 0,则所有日志记录都保存在同一个文件中,与日期无关。 
? allowlatescanning=0
1