请考虑以下代码:
function redirect() {
window.location = "../../index.aspx?<%=Request.QueryString%>";
}
此代码是安全的还是可以被XSS攻击利用?
如果是这样的话:
答案 0 :(得分:4)
将此视为查询字符串:
Xx"; alert('pwned'); window.location ="whatever
基本上,您允许注入完全任意的JavaScript。
最佳解决方案:永远不要直接用户输入并以这种方式使用它。
第二个最佳解决方案:在使用之前对其进行编码以在JavaScript字符串中使用。一个简单的“爆发在这里。
也;不要错误地为此做HTML编码。这将无法正常工作,仍将是脆弱的。