这对你来说很有意思。
我的自定义500.aspx设置在我的应用程序中发生500错误时调用。 500.aspx还向我发送了一封包含错误详情的电子邮件。
我注意到一个小问题。
如果您尝试对500.aspx本身进行xss攻击,则不会调用500页。
这显然是某种逻辑问题。
事实上,微软本身也遇到了同样的问题。
在此处查看
http://www.microsoft.com/500.aspx?aspxerrorpath=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E
我该如何防止这种情况?
版
答案 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页面中处理错误。您可以将电子邮件代码放在那里,然后在完成错误处理后将用户重定向到错误页面(这就是我们在工作的地方的方式)。