DebugDiag 1.0
从微软MVP:Bernard Cheah先生那里得知微软发布了一款新工具,用来调试维修IIS,这为IIS管理员带来了惊喜和福音。
**Microsoft releases Debug Diagnostics 1.0 - Release Candidate 1**
Microsoft is working diligently on a new tool designed to make the life easier for IIS administrators and developers who are tasked with solving complex problems such as crashes, hangs, or memory leaks. The tool, called Debug Diagnostics 1.0, is the next generation debugging utility that extends on the functionality of previous tools such as IIS Debug Toolkit 1.1, Debug Matrix, and IIS State. This tool will be the only fully supported tool for debugging applications that run on IIS upon release and is supported on the IIS 4.0, 5.0, 5.1, and 6.0 platforms.
To join the beta and provide invaluable feedback to the designers,
please do the following -
1. Go to http://beta.microsoft.com
2. Login in with your passport id.
3. Login using the guest ID "DebugDiag" (it's case sensitive)
4. Click on the "IIS Debug Diagnostic Tool" link.
5. On the left hand side expand survey and select "IIS Debug Diagnostic Tool Nomination Form"
Note: if the customer only wants DebugDiag and doesn't want to sign up for the beta they can do this by selecting "Click here to download IIS Debug Diagnostic Tool" from the File Downloads section.
*You may be prompted to install an activeX control
This tool is also receiving full support via newsgroups which are available by doing the following -
To access WebNews newsgroups:
1. Connect to http://webnews.microsoft.com
3. For account name, enter "<Your Beta ID>"
4. Enter your Newsgroup Password (if you do not have a Newsgroup password - you can create it on BetaPlace by selecting Modify Your Info from the top navigation bar). Click OK.
5. Select the Program Name or particular newsgroup on the left pane to access.
To provide bug and customer feedback, please open bugs via the beta.microsoft.com using your Microsoft Passport. It would be incredibly powerful for us to get your feedback and make a true difference in your lives and Microsoft's.
发现WinSRV2003SP1并没有包含ASP+Access的BUG更新
看了Windows Server 2003 SP1的LIST后,发现解决Win2003上运行ASP+Access的BUG补丁没有包含在里面。很郁闷,真的很郁闷!苦苦等待的关键性更新却没有包含,看来微软真的要放弃ASP+Access了,可是这种模式对于小网站还是够用的啊!也许这次将是对ASP程序员们的一次洗牌。
一面是SP1关于IIS更新的List:
823544 MD_ETAG_CHANGENUMBER metabase property is not honored in Internet Information Services version 6.0
823596 IIS Admin Service quits unexpectedly without generating an error message
823700 FIX: Your computer may run slowly when you use Active Directory Service Interfaces scripts in a program to administer IIS on a computer that is running Windows Server 2003, Windows 2000, or Windows XP
824322 ASP file cache is deleted after a network error
824330 FIX: IIS 6.0 does not return AUTH_TYPE for Integrated security
824446 A Common Gateway Interface (CGI) program may not work correctly if a multi-byte character set string is entered in the HTTP Cookie Header field
826007 You may receive a "The IIS Admin scripts only support IIS 6.0" error message when you run the Iisback.vbs script in IIS 6.0
826270 FIX: You cannot suppress the default FTP banner for the FTP service
826410 You cannot disable the logging of successful requests in IIS 6.0
826756 FIX: The Response.BinaryWrite method fails when you use it to send files that are larger than 20 MB
827991 FIX: "HTTP error 401.1 - Unauthorized: Access is denied due to invalid credentials" error message if the Basic authentication Default Domain property is set to a backward slash character (\) in IIS
828086 FIX: You cannot rename a file after you upload the file to an FTP server
828869 The IIS worker process recycles when you use the Server.Execute method
828970 Problems decoding client certificate attributes of type CERT_RDN_UTF8_STRING
829010 FIX: Query strings cannot be appended to a default document for a Web application
830219 FIX: Extending the metabase schema may result in corrupt custom properties
830520 Two authentication prompts when you use an ISAPI filter for authentication
832139 FIX: IIS 6.0 serves stale content if your Web site has both an IP address and host headers set
833734 FIX: You experience various problems when you use the Password Change pages in IIS 6.0
834027 PRB: Disconnected TCP session after chunked transfer response in IIS 6.0
834141 FIX: IP address is revealed in the content-location field in the TCP header in IIS 6.0
836533 You receive a "The security context is invalid" error message when you call or create an out-of-process component
838790 FIX: You receive a 403.2 error message when you use an ISAPI extension .dll file as a default document
839003 FIX: "Automation Error, object is not registered" error message when an ASP page calls COM objects that are running in a COM+ package on IIS 6.0
841460 You may experience performance problems when you use the URL authorization feature of IIS 6.0
867755 Content in Web pages does not appear as expected, or you receive script error messages, after you turn on dynamic HTTP compression for Web sites that use ISAPI filters in Internet Information Services 6.0
867776 FIX: Memory leaks may occur in ASP transactional pages that create COM objects in Internet Information Services (IIS) 6.0
872953 FIX: HTTP headers are set incorrectly when the AddHeader function or the SetHeader function is called in IIS 6.0
883489 You receive an "Access is denied" error message when you connect to a Web site after you modify permissions in the metabase in IIS 6.0
883661 The ILogPlugin::QueryExtraLoggingFields method returns incorrectly formatted data in IIS 6.0
883944 Web requests may not obtain the correct security context on a server that is running Windows Server 2003
884503 FIX: You cannot configure CGI wildcard application mapping in IIS 6.0 in Windows Server 2003
886695 You receive an "Error 1053: The service did not respond to the start or control request in a timely fashion" error message when a service that uses the local system account tries to start on a Windows Server 2003-based computer
886810 The values in the Request.ClientCertificate object are not displayed correctly in IIS 6.0
892499 FIX: Some virtual directory configuration information may be lost and event ID 51260 may be logged on your computer that is running Internet Information Services 6.0
892988 An access violation may occur when you use an ISAPI filter in IIS 6.0
可以发现关于JETDB的KB 838306 没有包含在里面。
马上要对服务器进程重新设置,还要依靠定期的进程回收来解决。
配置 URLScan 工具
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
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 作为高优先级筛选器运行,这表示它先于服务器上安装的所有其他 Internet 服务器应用程序编程接口 (ISAPI) 筛选器执行。如果将此选项设置为 1,则 URLScan 作为低优先级筛选器运行,以便其他筛选器可以在 URLScan 进行任何分析之前修改 URL。FrontPage Server Extensions (FPSE) 要求将此选项设置为 1。
RejectResponseUrl=(默认情况下不指定)
此选项指定在 URLScan 禁止请求时运行的文件的虚拟路径。这允许您自定义针对被禁止的请求发送给客户机的响应。必须将 RejectResponseUrl 指定为相应文件的虚拟路径,如 /Path/To/RejectResponseHandler.asp。可以指定 URLScan 通常禁止的文件,如 Active Server Pages (ASP) 页。还可以从该页指定以下服务器变量:• HTTP_URLSCAN_STATUS_HEADER:此变量指定请求被禁止的原因。
• HTTP_URLSCAN_ORIGINAL_VERB:此变量指定被禁止的请求中的原始谓词(例如 GET、POST、HEAD 或 DEBUG)。
• HTTP_URLSCAN_ORIGINAL_URL:此变量指定被禁止的请求中的原始 URL。
如果将 RejectResponseUrl 设置为特殊值 /~*,则 URLScan 使用“仅日志记录”模式。这允许 IIS 为所有请求提供服务,但它会在 URLScan 日志中为所有通常被禁止的请求添加相应的项。这在需要测试 URLScan.ini 文件时很有用。
如果没有指定 RejectResponseUrl 的值,则 URLScan 使用默认值 /
UseFastPathReject=0
默认情况下,此选项设置为 0。如果将此选项设置为 1,则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。这比处理 RejectResponseUrl 要快,但它允许的日志记录选项没有那么多。如果将此选项设置为 0,则 URLScan 使用 RejectResponseUrl 设置来处理请求。
[AllowVerbs] 节和 [DenyVerbs] 节
[AllowVerbs] 节和 [DenyVerbs] 节定义 URLScan 允许的 HTTP 谓词(又称作方法)。常用的 HTTP 谓词包括 GET、POST、HEAD 和 PUT。其他应用程序(如 FPSE 和 Web 分布式创作和版本控制 (WebDAV))使用更多的谓词。
[AllowVerbs] 节和 [DenyVerbs] 节的语法相同。它们由 HTTP 谓词列表组成,每个谓词占一行。
URLScan 根据 [Options] 节中 UseAllowVerbs 选项的值来决定使用哪一节。默认情况下,此选项设置为 1。如果将 UseAllowVerbs 设置为 1,则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的请求。不使用任何这些谓词的请求将被拒绝。在这种情况下,[DenyVerbs] 节被忽略。
如果将 UseAllowVerbs 设置为 0,则 URLScan 拒绝那些使用 [DenyVerbs] 节中明确列出的谓词的请求。允许任何使用未在此节中出现的谓词的请求。在这种情况下,URLScan 忽略 [AllowVerbs] 节
[DenyHeaders] 节
当客户机向 Web 服务器请求页面时,它通常会发送一些包含有关此请求的其他信息的 HTTP 标头。常见的 HTTP 标头包括:
Host:
此标头包含 Web 服务器的名称。
Accept:
此标头定义客户机可以处理的文件类型。
User-Agent:
此标头包含请求页面的浏览器的名称。
Authorization:
此标头定义客户机支持的身份验证方法。
客户机可能会向服务器发送其他标头以指定其他信息。
在 [DenyHeaders] 节中,您定义 URLScan 将拒绝的 HTTP 标头。如果 URLScan 收到的请求中包含此节中列出的任何标头,它将拒绝该请求。此节由 HTTP 标头列表组成,每个标头占一行。标头名后面必须跟一个冒号 (:)(例如 Header-Name:)。
[AllowExtensions] 节和 [DenyExtensions] 节
大多数文件都有一个标识其文件类型的文件扩展名。例如,Word 文档的文件名一般以 .doc 结束,HTML 文件名一般以 .htm 或 .html 结束,纯文本文件名一般以 .txt 结束。[AllowExtensions] 节和 [DenyExtensions] 节允许您定义 URLScan 将禁止的扩展名。例如,您可以配置 URLScan 以拒绝对 .exe 文件的请求,防止 Web 用户在您的系统上执行应用程序。
[AllowExtensions] 节和 [DenyExtensions] 节的语法相同。它们由文件扩展名列表组成,每个扩展名占一行。扩展名以句点 (.) 开头(例如 .ext)。
URLScan 根据 [Options] 节中 UseAllowExtensions 的值来决定使用哪一节。默认情况下,此选项设置为 0。如果将 UseAllowExtensions 设置为 0,则 URLScan 仅拒绝对 [DenyExtensions] 节中列出的文件扩展名的请求。允许此节中未列出的任何文件扩展名。[AllowExtensions] 节被忽略。
如果将 UseAllowExtensions 设置为 1,则 URLScan 拒绝对 [AllowExtensions] 节中未明确列出的任何文件扩展名的请求。仅允许对此节中列出的文件扩展名的请求。[DenyExtensions] 节被忽略。
有关如何配置 URLScan 以允许对没有扩展名的文件的请求,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
312376 HOW TO:Configure URLScan to Allow Requests with a Null Extension in IIS
[DenyUrlSequences] 节
可以配置 URLScan 以禁止那些 URL 中包含某些字符序列的请求。例如,可以禁止那些包含两个连续句点 (..) 的请求,利用目录遍历漏洞的攻击中经常采用这种手段。要指定一个要禁止的字符序列,请将此序列单独放在 [DenyUrlSequences] 节中的一行上。
请注意,添加字符序列可能会对 Microsoft Exchange 的 Outlook Web Access (OWA) 产生负面影响。当您从 OWA 打开一个邮件时,该邮件的主题行包含在服务器所请求的 URL 中。由于 URLScan.ini 文件禁止任何包含百分号 (%) 和连字符 (&) 的请求,因此,当用户尝试打开主题行为“Sales increase by 100%”或“Bob & Sue are coming to town”的邮件时,会收到 404 错误信息。要解决此问题,可以从 [DenyUrlSequences] 节中删除这些序列。请注意,这样做会降低安全性,因为它有可能允许危险的请求到达服务器。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
320089 XCCC:The URLScan Utility Does Not Allow You to Open Messages in OWA
注:原文出处:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;326444