我怎么知道原生的JS对象没有被篡改?

时间:2016-03-01 10:31:01

标签: javascript

我创建了一个适用于多个商店系统的插件。我发现有时他们会覆盖原生代码。我如何确定代码没有被修改?我并不打算从安全的角度来看待这个问题 - 我假设用户能够篡改客户端的所有内容 - 但只需要确认我正在使用的当前对象是预期的一个。例如,Google Chrome会在从JSON对象打印方法时返回此信息:

> JSON.stringify.toString()
< "function stringify() { [native code] }"

这是检查篡改的可靠方法吗?

1 个答案:

答案 0 :(得分:2)

如果您在其他人之前加载JavaScript文件,那么您可以使用许多工具Object.preventExtensions()Object.seal()Object.freeze()。这更像是一种预防措施。

他们表现得略有不同,但彼此重叠,article很好地涵盖了他们。总结:

  • preventExtensions:禁止添加属性
  • 密封:另外防止移除现有属性
  • 冻结:另外防止修改现有属性