我创建了一个 ASP.NET (fw 3.5) 站点并想检查它是否易受攻击。
我接受来自文本框的输入并将其保存在数据库中,然后稍后将其动态显示在另一个页面上。
如果我尝试输入<script>...</script>
或任何与<
此>
相关的内容,我的 global.asax 会捕获异常并收到消息A potentially dangerous Request.Form value was detected from the client (TextBox1="<b>
asd</b>
").
然后我尝试了这个:<script>$(window).load(function(){alert('hello');});</script>
它以相同的方式插入到数据库中,但在页面上呈现为<script>$(window).load(function(){alert('hello');});</script>
.
但是,我没有收到警告框。脚本按原样打印在页面上。呈现的 HTML 是:
<td style="font-size: 16px;" colspan="2"><script>$(window).load(function(){alert('hello');});</script></td>
我的问题是,为什么这个脚本没有执行?我的意思是,这是一件很棒的事情,因为我正在阅读有关跨端脚本攻击并希望使我的网站安全的信息,这就是它现在的行为方式,但我不明白为什么它不是我真正没有的t 编写任何代码来阻止此类攻击。
提前致谢。