JSON使用功能参数序列化对象

JSON使用功能参数序列化对象,第1张

JSON使用功能参数序列化对象

此行为是故意的。JSON不应包含任何非数据的内容-
在您的情况下为可执行函数。如果数据能够以JSON格式从服务器返回,则该浏览器将面临巨大的安全风险,该JSON格式在执行时将运行任意功能(可以窃取信息,将用户重定向到恶意站点等)。

JSON的早期实现依赖这样一个事实,即返回的数据可以简单地通过eval()执行以获取对象。但是,人们几乎 立即
意识到这带来了巨大的安全风险,并且此后一直在设法加以解决。这就是为什么在标准化JSON对象之前,人们停止将原始JSON数据放入eval()并使用JSON解析库的原因。

JSON对象将始终仅将对象序列化为数据。这是设计使然。标准化JSON格式无法表示可执行函数

现在,您可以通过将回调传递给eval()轻松地将其在浏览器上转换为函数。但是, 请不要这样做 。您只是在为黑客开放自己。

在服务器端,现代浏览器旨在防止发生这种确切的事情,即从包含可执行功能的浏览器发送数据。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5010566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存