制作“<”的要点到“\<”和“>”到“>”是为了避免使用下面的内联脚本:
<script>
var foo = "</script><script>alert('bug');</script><script>"; // the value of foo is generated from server
</script>
foo的字符串值是从服务器端生成的。所以,我们打算改变“&lt;”到“\&lt;”和“&gt;”到“&gt;”。 (我知道有一些论点认为“&gt;”应该转义为“&amp; gt;”,但在这种情况下不考虑它。)
所以,预期的结果是:
<script>
var foo = "\</script\>\<script\>alert('bug');\</script\>\<script\>"; // the value of foo is generated from server
</script>
对于IE7 / 8和Firefox,HTML呈现引擎不会将javascript字符串中的 \&lt; script \&gt; 视为&lt; script&gt; 标记和JavaScript引擎仍然将其作为字符串“&lt; script&gt;”。但是,我不确定所有浏览器是否都会处理“&gt;”和“\&lt;”这条路。这是所有浏览器的标准吗?
答案 0 :(得分:5)
不,你最好的选择是使用&amp; gt;和&amp; lt;分别大于和小于标志。
所以你想要这样的东西:
var foo = "</script><script>alert('bug');</script><script>";