当检测到被认为是XSS攻击的内容时,ASP.NET MVC框架会通过显示/Views/Shared/Error.cshtml
文件来处理它,该文件只是说明"处理您的请求时出错。&# 34。
但这会产生意想不到的后果和误报以及无辜用户被抛出无益错误信息的情况。
假设用户尝试使用密码&#34; a<b>c
&#34;,copy&amp ;;将电子邮件地址粘贴为&#34; Bob <bob@example.com>
&#34;,或者在主题&#34; Help me, the car broke down! <important>
&#34;上写下主题。
当无辜的用户提交表单时,他会收到一条无用的错误消息,并且不知道出了什么问题,并且认为应用程序出了问题。
有没有办法以用户友好的方式处理这个问题?
我无法将[AllowHtml]
放在每个视图模型中的每个属性上,或者将[ValidateInput(false)]
放在处理POST请求的每个操作方法上,这样会彻底破坏安全性并为XSS打开攻击。
我是否必须在整个应用程序中的每个输入元素(除了应该允许的那些元素除外)上放置一个检查<
和>
的JavaScript?