像这样创建一个 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/