首页 文章

使用带有敏感信息的JSON-P

提问于
浏览
1

我有一个安全的网站,需要用户进行身份验证,并希望通过JSON-P从我的API将敏感数据返回给客户端,以便我可以解决ajax跨域问题 . 我拥有客户端和服务器,所以我不关心客户端的安全性(即从服务器读取恶意js) .

我一直在研究如何保护JSON-P以防止跨站点请求伪造,但是无法清楚地确定检查Referer是否是保护数据的万无一失的方法 . 据我了解,在这种情况下,Referer标头不能被欺骗,因为调用将来自javascript,并且Headers无法更改 . 这是正确的假设吗?

我想要一些明确的例子,说明为什么或为什么不检查Referer会/将无法保证JSON-P .

谢谢!

编辑:

只是为了澄清 - JSON-P是通过Spring Security保护的,因此它不仅可以通过Referer头保护 . 我最担心的是会话劫持......

2 回答

  • 1

    可以使用普通卷曲代码调用Jsonp URL . Http引用很容易被伪造 .

  • 1

    我想了解一些明确的例子,说明为什么或为什么不检查Referer会/将无法保证JSON-P .

    Referer 不保证发送,所以:

    • 如果您要求它出现并与受信任的站点匹配,那么对于浏览器或网络设置不发送的所有人,您将破坏应用程序;

    • 如果你允许它不存在以解决这个问题,那么你打开自己不仅要攻击那些用户,而且要攻击每个攻击者可以诱导Referer不被发送的人(最值得注意的是,来自HTTPS页面;

    • 另外,要使用代理正常运行,您必须 no-cache 所有回复(或 Vary: Referer ,但这在IE中无法正常工作)

    推荐人检查是一种微弱且有问题的方法,有时会将其视为绝望的最后一种措施......当你做出选择时,这不是你应该 Build 的 . 如果您控制两台服务器,您可以轻松地在一个页面上包含一个请求令牌,该令牌可以被任何一个脚本识别 .

相关问题