防止URL攻击中的Javascript(asp.net)

时间:2009-08-31 23:52:05

标签: asp.net url-rewriting xss

我见过很多跨站点脚本攻击预防建议,但我不是在询问表单输入验证。我怎么会阻止这样的事情:

javascript:(function(i,j){with(document){for(i=0;i<forms.length;++i){with(forms[i]){for(j=0;j<elements.length;++j){elements[j].disabled=false}}}}})()

从插入到URL?如果将此代码添加到URL,则此代码将启用页面上的所有表单元素。因此,如果您因权限或其他原因禁用某些按钮,则所有这些按钮都将启用。

我应该只是解析URL并检查Javascript关键字吗?

2 个答案:

答案 0 :(得分:3)

没有。无论如何,你不能将它发送到服务器。

这只是用户自己在本地执行的JavaScript。它应该对你毫无意义。您的系统的安全性永远依赖于客户端javascript,所有身份验证等都应该在服务器端完成。

答案 1 :(得分:0)

关键是不要担心客户端。服务器端是您必须防弹的地方。例如,不要假设仅仅因为您将表单命名为与数据库列名称相同的输入,您就可以循环访问Request.Form并保留您获得的所有数据。您应该验证您只处理您期望的输入,并验证它们的数据类型和范围,以及考虑用户更改给定字段的权限。

这样,用户可以发送他们想要的任何内容,您只会处理并接受服务器端的有效数据。