如何停止调用500错误页面创建的500 .net错误

时间:2009-01-30 11:42:34

标签: asp.net iis

这对你来说很有意思。

我的自定义500.aspx设置在我的应用程序中发生500错误时调用。 500.aspx还向我发送了一封包含错误详情的电子邮件。

我注意到一个小问题。

如果您尝试对500.aspx本身进行xss攻击,则不会调用500页。

这显然是某种逻辑问题。

事实上,微软本身也遇到了同样的问题。

在此处查看

http://www.microsoft.com/500.aspx?aspxerrorpath=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E

我该如何防止这种情况?

3 个答案:

答案 0 :(得分:1)

如果您在任何网页上尝试xss攻击,则不会调用自定义错误页面(此处为查询字符串中带有xss的another random page on Microsoft.com)。

这种行为似乎是故意阻止攻击死亡的。甚至错误消息都表明了这种行为:

  

请求验证已检测到   潜在危险的客户输入   值,和处理请求   已被中止

唯一的解决方法似乎是在Application_Error上禁用验证或捕获和处理全局错误。

答案 1 :(得分:0)

看来,一旦你定义了一个页面来处理特定的(或非特定的?)错误,它就不再可以直接通过它的url,像Web一样排序。不能通过浏览器调用。

我会设置一个500Test.aspx,它会引发异常导致500错误(从而触发500.aspx)

这可能有效。

答案 2 :(得分:0)

You可能想要考虑在Global.asax.cs中的Application_Error事件而不是500.aspx页面中处理错误。您可以将电子邮件代码放在那里,然后在完成错误处理后将用户重定向到错误页面(这就是我们在工作的地方的方式)。