在不使用JS注释的情况下,在PHP中转义json数据的正确方法

时间:2014-08-18 11:18:32

标签: javascript php json security xss

考虑下面的代码,将json字符串从php发送给js,

<?php
    $str = "<!--<script>"; // This is from user input
?>

<script>
   var json_str = <?= json_encode($str) ?>;
</script>

该字符串将破坏HTML,解决问题的方法是通过类似旧学校评论的方法,例如。

<script>
<!--
   var json_str = <?= json_encode($str) ?>;
//-->
</script>

还有其他选择吗?

1 个答案:

答案 0 :(得分:5)

您可以使用标记JSON_HEX_TAG,以便<>分别编码为\u003C\u003E

json_encode($str, JSON_HEX_TAG)