roo*_*oo2 6 javascript security xss jquery
跟进我的上一个问题 ......
如果攻击者有权访问以下内容,则可以利用此代码encodedText:
return $('<div/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)
例如$("<div/>").html('<img src="X" onerror="alert(\'hi\');" />').text()显示警报.
此答案建议使用a textarea来避免XSS漏洞:
return $('<textarea/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)
这能够安全地处理以前的漏洞利用.
但是,此答案表明使用时仍存在XSS漏洞textarea:
我建议使用更安全,更优化的功能
不要使用jQuery.html().text()解码html实体,因为它不安全,因为用户输入永远不能访问DOM
我的问题是:$('<textarea/>').html(encodedText);假设攻击者可以访问,是否有任何浏览器可以利用来运行XSS encodedText?
@haim770 的评论给了我:
$('<textarea/>').html('<script>alert()</script>').text();
Run Code Online (Sandbox Code Playgroud)
看起来$('<textarea/>').html()对于安全解析用户输入根本没有帮助。