【发布时间】:2016-01-25 23:43:45
【问题描述】:
我希望在我的 API 中实施针对 CSRF 攻击的保护,我使用 GAE 端点开发该 API,所有方法都需要 oAuth2。
在实施任何特定保护之前,我试图真正破坏我的应用程序(CSRF 乍一看很简单)。但就是做不到。
当我在另一个页面中引用我的端点时,浏览器会添加 cookie 信息,但不会添加带有不记名访问令牌的 Authorization 标头。这似乎还不够,因为我的端点会自动返回带有 www-authenticate:Bearer realm="https://accounts.google.com/" 标头的 401。
正如我所说,我没有针对 CSRF 的具体保护措施。但是,在 HTTPS 下使用具有 oAuth2 的 Google Cloud Endpoints 是否可以“免费”保护我免受此类攻击?
--编辑解决评论
我尝试了一个简单的 CSRF 攻击。我得到了一个带有<img src="https://bla-bla-bla-appspot.com/_ah/api/myapi/v1/resource.getMethod"> 的页面。然后我在另一个选项卡中打开我的应用程序时访问了此页面,因此我的浏览器将发送我的身份验证信息。它确实发送了 cookie,但不发送我的 oAuth 令牌)。
我什至没有尝试过 POST,如果我“破解”一个 GET 就已经很棒了。
【问题讨论】:
-
不确定您是否看过this 以及在 cmets 中链接的文章,但它与 OAuth2 CSRF 的接缝(如果我理解正确的话)不是问题。我可能错了,如果您在其他地方找到任何答案,请分享(;
-
“当我在另一个页面中引用我的端点时,浏览器添加 cookie 信息而不是带有承载访问令牌的授权标头”具体是什么意思?能出示一下代码吗?
标签: google-app-engine google-oauth csrf google-cloud-endpoints