默认情况下,Web 浏览器中不再显示经典 ASP 脚本错误消息

作者:Robert McMurray

在早期版本的 IIS 中,默认情况下,来自经典 ASP 脚本的错误消息会发送到 Web 浏览器。 由于这些错误消息可能会向恶意用户透露敏感信息,因此 IIS 7 及更高版本默认禁用了此功能。 当经典 ASP 脚本在 IIS 中遇到错误时,默认情况下你会收到以下错误消息:

An error occurred on the server when processing the URL. Please contact the system administrator.

If you are the system administrator please click here to find out more about this error.

可以自定义 ASP 脚本错误消息,并确定是否将脚本错误返回到 Web 浏览器。

注意

作为最佳安全做法,你应该只允许将 ASP 脚本错误消息发送到开发或测试计算机上的 Web 浏览器;将脚本错误消息返回到 Web 浏览器可能会无意中透露超出预料的信息。

使用用户访问控制

需要确保使用具有完全管理权限的帐户来执行本文档中的步骤。 为此,最好采用以下两种方法之一:

  • 使用本地管理员帐户登录到计算机。
  • 如果使用具有管理权限但并非本地管理员帐户的帐户登录,请使用“以管理员身份运行”选项打开所有应用程序和所有命令提示符会话。

必须满足上述条件,因为 Windows Vista 和 Windows Server 2008 中的用户帐户控制 (UAC) 安全组件阻止对 IIS 配置设置的管理访问。 有关 UAC 的详细信息,请参阅以下文档:

自定义经典 ASP 错误消息

用于自定义这些设置的配置设置位于以下列表中:

  • scriptErrorMessage:这是一个可选的字符串属性,指定在未将特定调试错误发送到客户端时要发送到浏览器的错误消息。
  • scriptErrorSentToBrowser:这是一个可选的布尔属性,用于指定是否启用将调试详细信息写入客户端浏览器。

可以使用 IIS 管理器配置这些设置。 为此,请打开 IIS 管理器并导航到要启用或禁用脚本消息的站点或应用程序,然后双击“ASP”功能

Screenshot of the I I S Manager Default Web Site Home page. The A S P icon is highlighted.

在 ASP 功能列表中,配置“脚本错误消息”和“将错误发送到浏览器”选项

Screenshot of the A S P features page. The Send Errors to Browser option is highlighted.

还可以使用命令行工具 AppCmd.exe 通过以下语法来配置这些设置:

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorMessage:"An error occurred."
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorSentToBrowser:"False"

更多信息

有关经典 ASP 调试可用选项的更多信息,请参阅 Microsoft IIS.net 网站上的 IIS 配置参考中的以下页面:

https://www.iis.net/ConfigReference/system.webServer/asp

作为将 ASP 脚本错误消息返回到 Web 浏览器的替代方法,可以在服务器上启用失败请求跟踪。 例如,可以添加一个规则来自动跟踪 HTTP 500 错误,发生错误时 ASP 引擎会生成该错误。 通过分析服务器上失败请求跟踪日志中的输出,可以查明典型 ASP 错误的原因。 附加安全说明:Web 浏览器无法使用失败请求跟踪日志,因此故障排除信息仅在服务器上可用。 如果使用失败请求跟踪,还可以详细排查不受监视的经典 ASP 错误,而无需重现错误。