javascript - 在 JSON 中传递 JS 函数的 XSS 危险是什么?

标签 javascript json xss

像这样创建一个 JSON 对象非常简单:

{ "key": "value", "myFunction": function() { alert('hi'); } }

并将它从服务器传递到我可以调用 myFunction() 的脚本。果然,该功能有效,我收到一条警报:“嗨”。对我来说,这可能是保持脚本大小的一种非常有用的方法。 但是,我认为通过 JSON 传递函数而不只是数据存在 XSS 危险。有人能解释一下这些是什么吗?如果合适的话,可以采取哪些步骤来消除它们?

最佳答案

function不是 JSON 的一部分因为 JSON 不是 JavaScript。

大多数图书馆都在使用 JSON 解析器(如果可以的话,browser's one)。所以这不会被正确解析。虽然使用 eval解析 JSON 是邪恶的eval总体来说是邪恶的。

而且您一直在使用 <script> 加载 JavaScript ,所以我在这里没有看到关于 XSS 的问题。

关于javascript - 在 JSON 中传递 JS 函数的 XSS 危险是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834022/

相关文章:

javascript - 如何获取将应用于 ExtJs 中给定类列表的样式

python - 类型错误 : It would appear that nargs is set to conflict with the composite type arity

asp.net-mvc - 如何将 HTML 保存到数据库并正确检索

javascript - 在 PHP 中转义 json 数据而不使用 JS 注释 hack 的正确方法

javascript - 使用 .get(0) 或 .html() 返回带有 jQ​​uery 的 HTML

javascript - 递归函数过早退出for循环

JavaScript 单元测试

android - 无法从 Spring Webservice 中的 START_ARRAY token 反序列化对象实例

c# - 简单的json检索

ruby-on-rails - rails - 在 ruby​​ 代码中将 HTML 元素包裹在 link_to() 的文本周围,而不禁用所有转义