代码之家  ›  专栏  ›  技术社区  ›  Morgan Cheng

是否所有浏览器引擎都将“\<”视为“<”、“\>”视为“>”?

  •  1
  • Morgan Cheng  · 技术社区  · 16 年前

    <script>
       var foo = "</script><script>alert('bug');</script><script>"; // the value of foo is generated from server
    </script>
    

    foo的字符串值是从服务器端生成的。因此,我们计划将“<”改为“\<”,“>”改为“>”。(我知道有人认为“>”应该转义到“>”,但在这种情况下不考虑这一点。)

    因此,预期结果是:

    <script>
       var foo = "\</script\>\<script\>alert('bug');\</script\>\<script\>"; // the value of foo is generated from server
    </script>
    

    对于IE7/8和Firefox,HTML呈现引擎不会处理 \<脚本\> <脚本> 标记,JavaScript引擎仍将其作为字符串“<script>”。但是,我不确定是否所有浏览器都这样对待“>”和“\<”。这是所有浏览器的标准吗?

    1 回复  |  直到 16 年前
        1
  •  5
  •   Justin Niessner    16 年前

    不,最好分别对大于号和小于号使用>和<。

    var foo = "&lt;/script&gt;&lt;script&gt;alert('bug');&lt;/script&gt;&lt;script&gt;";