任何人都可以通过以下问题指出我正确的方向。
ASP.NET中的默认“危险请求”验证禁止输入
"<p", "<p>" or "<script>"
但同时允许输入
"<%script>" or "<.script>"
这里的理性是什么?
答案 0 :(得分:2)
<p
,<p>
或<script>
这些看起来像HTML / XML标签。
<%script>
或<.script>
但这些没有。
验证是试图阻止跨站点脚本,例如。提交包含以下内容的字段:
<script>alert("You're powned!")</script>
(真正恶意除外)当您将该文本写回用户而不小心正确编码时,用户只需将代码注入您的网站。