javascript - jQuery 中 JSONP 的安全问题

标签 javascript security jsonp

我现在正在编写一个应用程序,它使用 jQuery 和 JSONP 从第 3 方服务器获取 JSON。我的应用程序背后的主要思想是,它是一个仅具有 GUI 逻辑的前端,任何人都可以编写第三方服务器来使用该前端。
我不知道这会引起什么安全问题,但我绝对认为这是一个潜在的问题。我可以采取哪些步骤来确保第三方服务器不会完全破坏我将运行 GUI 的网站?

最佳答案

JSONP 意味着您执行第三方 javascript,它应该返回 Javascript 对象。使用 JSONP 加载的脚本可以执行本地脚本可以执行的任何操作,因此它在两种情况下都是 XSS 攻击向量:如果您请求 JSONP 数据的第三方是邪恶的,或者如果数据被人为更改-中间人攻击。

第二种类型的攻击可以通过仅通过安全连接执行 JSONP 来避免(或者如果您自己的页面是通过不安全的连接发送的,则可以忽略,在这种情况下,有更简单的方法来执行 man-in-the-中攻击);第一种类型是 JSONP 固有的,无法避免。仅当您信任源时才应使用 JSONP。否则,您可以在自己的服务器上设置 AJAX 网关并通过该网关请求 JSON 数据(这仅在 JSONP 服务不需要身份验证的情况下才有效),或者使用跨域 AJAX 请求(这在旧版浏览器中不起作用) ,并且需要 JSONP 服务器的某些权限)。

关于javascript - jQuery 中 JSONP 的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318203/

相关文章:

javascript - Fullpage.js。如何禁用规范化元素之间的延迟?

c# - 将密码存储在内存中的风险有多大?

ajax - 通过 JSONP 访问 Cookie

javascript - 使用 ajax 或 jquery 填充下拉选择

在 chrome 中工作的 Javascript,而不是 firefox 或 ie

javascript - 动态 ng-click 不起作用

javascript - JS漏洞程度

php - 如果我使用 $_GET 变量进行 MYSQL 查询,空字节注入(inject)会影响我吗?

javascript - Ext.util.JSONP.request 始终返回 "Uncaught ReferenceError: callback is not defined"

json - 使用 R 解析 JSONP 文件