首页 > 解决方案 > NETSPARKER ENTERPRISE SCAN REPORT 对应用程序进行 XSS 攻击时如何处理内部服务器错误

问题描述

Asp.Net MVC 应用程序当用户尝试在操作方法的查询字符串中提交 HTML 或 JavaScript 代码时,得到内部服务器错误(500)并出现以下异常..

A potentially dangerous Request.QueryString value was detected from the client (userid="'"-->..script.."). 

我已启用自定义错误模式,以便最终用户为任何 XSS 攻击重定向自定义错误页面。

但是,当我在查询字符串中使用 javascript 代码对操作方法运行 NETSPARKER ENTERPRISE SCAN 时,报告为内部服务器错误 - 服务器以 HTTP 状态 500 响应。

处理此内部服务器问题的最佳做法是什么。

标签: c#asp.net-mvc

解决方案


建议:自定义错误处理程序

我不确定最佳实践,但我使用的是<customErrors>web.config用户重定向到“不错”的网页。它重定向到的页面可以是纯 HTML、ASPX 等。好处是您可以设置默认的自定义错误页面,以及基于 HTTP 状态代码的个别错误页面。

以下是我web.config的一个默认错误代码处理程序的片段,加上一个用于 HTTP 500(内部服务器错误)的片段,这是您得到的A potentially dangerous Request.QueryString value was detected错误:

<customErrors mode="On" redirectMode="ResponseRedirect" defaultRedirect="~/dangitall.html">
  <error statusCode="500" redirect="~/dangitall500.html" />
</customErrors>

dangitall.html是所有错误的标准 HTML 页面。它被覆盖dangitall500.html,将显示 HTTP 500 错误。这些 HTML 页面的内容可以是您想要的任何内容:警告用户、滥用用户等 :)

以下是有关自定义错误和所有可能的属性设置等的 Microsoft 技术文章的链接:

https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.customerror?view=netframework-4.8


推荐阅读