在使用 JSONP 时有哪些安全问题需要考虑?
最佳答案
更新:JSONP 是一种常见的跨域请求方法。现代浏览器现在有跨域资源共享,IE8+ 有类似的 XDomainRequest。见 http://enable-cors.org/了解更多信息。
JSONP 只是一个脚本包含,允许您使用回调。但是,您应该注意 Cross-site request forgery (CSRF) .
只要您控制脚本和服务器,JSONP 就不再比脚本包含不安全。除非您有一个 JSONP 服务将敏感数据返回给登录用户。恶意站点可以向服务发送请求(希望用户登录到您的站点),然后检索数据。该服务可以检查请求的引荐来源网址,但可以使用 flash 欺骗引荐来源网址(感谢 Chris Moschini)。
想象一下这个情景: - 用户登录他的网上银行账户。在用户浏览器中存储 session cookie。该站点有一个 jsonp 服务,其中包含有关用户及其帐户的敏感信息。 - 其他站点不会知道用户已登录,但他们可以大胆猜测并尝试访问 jsonp 服务。由于用户有一个 session cookie,浏览器会得到响应,并且没有什么可以阻止网站执行 ajax 发布以将敏感数据保存在其服务器上。
2012 年 6 月 28 日更新:如果您想防止 CSRF 攻击,您应该阅读安全专家的这篇深度博文:http://erlend.oftedal.no/blog/?blogid=130
https://stackoverflow.com/questions/613962/
相关文章:
json - Groovy - 将对象转换为 JSON 字符串
javascript - 需要 Handlebars.js 来渲染对象数据而不是 "[Object
javascript - 什么是 "top level JSON arrays",为什么它们存在安全
javascript - Angular 5 服务读取本地 .json 文件
c# - 使用 ConfigurationBuilder 设置基本路径
c# - 使用 JSON.net 获取 JToken 的名称/ key
python - 将 Python namedtuple 序列化为 json