【问题标题】:Prevent Javascript in URL attacks (asp.net)在 URL 攻击中防止 Javascript (asp.net)
【发布时间】:2009-09-01 07:58:32
【问题描述】:

我已经看到很多跨站点脚本攻击预防建议,但我并不是在询问表单输入验证。我将如何防止这样的事情:

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 关键字吗?

【问题讨论】:

    标签: asp.net url-rewriting xss


    【解决方案1】:

    没有。无论如何,你不能,因为它不会被发送到服务器。

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

    【讨论】:

    • 是的,在考虑了更多之后,我得出了同样的结论。该站点没有进行回发,因此无法验证 URL。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      相关资源
      最近更新 更多