如何防止json数据关闭<script>标签?

时间:2019-03-05 09:56:04

标签: json xss

我正在将数据放入网页中。我尝试了两种方法:

  
  <头>
    <!-方法1->
    

    <!-方法2->
    <脚本>
      var data = <?php json_encode($ data); ?>;
    

  

 

该演示代码是用PHP编写的,但是使用其他编程语言时,它总是存在相同的问题。

该代码在大多数情况下都能正常工作,然后可以在以下脚本中使用“数据”(或 document.getElementById('data')。innerHTML )。但是如果

  $ data = array(“ name” =>“ ”);
 

它关闭标签并触发XSS攻击。

解决此问题的最佳方法是什么?我有3个想法:

  1. 将数据放入另一个“ .js”文件,或通过AJAX获取json数据。 (因为我必须通过两个REQUEST传输数据,所以这不是一个好主意。)
  2. $ json_encode($ data)中的所有“ <”替换为“ \ u003c”。 (这种方法是否足够安全?)
  3. 使用 base64_encode(json_encode($ data))并将Base64库导入js。

0 个答案:

没有答案