在JavaScript中使用ASP.Net Request.QueryString是否安全?

时间:2013-03-12 10:57:54

标签: javascript asp.net xss

请考虑以下代码:

function redirect() {
    window.location = "../../index.aspx?<%=Request.QueryString%>";
}

此代码是安全的还是可以被XSS攻击利用?

如果是这样的话:

  1. 如何?
  2. 如何预防?

1 个答案:

答案 0 :(得分:4)

将此视为查询字符串:

Xx"; alert('pwned'); window.location ="whatever

基本上,您允许注入完全任意的JavaScript。

最佳解决方案:永远不要直接用户输入并以这种方式使用它。

第二个最佳解决方案:在使用之前对其进行编码以在JavaScript字符串中使用。一个简单的“爆发在这里。

也;不要错误地为此做HTML编码。这将无法正常工作,仍将是脆弱的。