是否可以从DOM中隐藏json数组?

时间:2019-04-10 09:59:34

标签: javascript html json

为了使用javascript函数,我必须使用json数组,但是我希望能够遮盖DOM中的信息。

下面是一个示例:

<script>
    var arrayC = [{"id":null,"name":"Name","title":"Title"}];
    ..... function
</script>

我希望arrayC被遮盖,这可能吗?我在网上搜索,但找不到任何东西,您能帮我吗?谢谢

2 个答案:

答案 0 :(得分:4)

脚本执行后,.remove()包含<script>标签:

<script>
var arrayC = [{"id":null,"name":"Name","title":"Title"}];
console.log('doing something...');
document.currentScript.remove();
</script>
Right click and Inspect me!

请注意,这不会阻止用户看到代码-他们仍然可以在页面源代码中看到它。这只会将其从DOM中删除。

如果您还想阻止arrayC填充全局对象,请将整个脚本放入IIFE,或使用constlet代替var:< / p>

(() => {
  var arrayC = [{"id":null,"name":"Name","title":"Title"}];
  console.log('doing something...');
  document.currentScript.remove();
})();

应该从客户端保守秘密的数据绝不应该首先发送到他们的计算机。不管您如何伪装,如果将其发送给客户,他们都可以通过某种方式弄清楚。

答案 1 :(得分:0)

为什么不使用外部脚本文件,而是直接在html页面中编写脚本。为此,只需创建一个javascript文件(扩展名为.js),然后将该文件包含到此html中即可。

<script type="text/javascript" src="<filename>.js"></script>

直接扩展到某些扩展将不会显示。如果不想显示较高的安全性,请将其转换为json字符串,并在服务器端进行加密和解密。并将该encrpted变量分配给js变量,因此它将始终在javascript中的源文件上显示加密的字符串。