【问题标题】:Is the Spring Social OAuth dance with Facebook secure?Spring Social OAuth 与 Facebook 共舞安全吗?
【发布时间】:2013-06-13 17:49:44
【问题描述】:

我正在使用 Facebook Spring Social 库。

在连接安全时(针对中间人攻击等),Spring Social 库和 Facebook 之间的 OAuth 是否跳舞?如果没有,我需要做些什么来确保它的安全?

我有点担心的原因是 Spring docs 提到 Facebook 使用 OAuth 2,我相信 OAuth 2 已经简化,它依赖 HTTPS 来保护 OAuth 舞蹈。

附:我的网络应用在 HTTP 上运行

【问题讨论】:

  • 我相信您的问题在一般意义上更贴切:“OAuth2 安全吗?”这有待商榷。但是,如果您需要与 Facebook 集成,那是 Facebook 提供的选项;所以你要么使用 OAuth2,要么不与 Facebook 集成。
  • 据我所知,OAuth 2 over HTTP 并不安全。它依赖于通过 HTTPS 执行的舞蹈来保证其安全性。这基本上就是我想要弄清楚的,如果你愿意的话,Spring Social 库是否已经处理过 HTTPS。

标签: java spring security oauth spring-social


【解决方案1】:

我们正在广泛使用它(一个大项目)。我们考虑了几种处理此功能的方法,最后得出结论,使用 spring 是足够安全的。

实际上,我们系统的那部分是用 JavaScript 编写的,在 NodeJS 上运行,我们将其转换为 Java,因为我们对 Spring 的实现更有信心。

另外,我认为他们在比较 OAuth 1/2 时所说的简化部分是舞蹈。往返次数少。

【讨论】:

  • 那么你们有没有研究过图书馆与 Facebook 的 OAuth 舞蹈是否可以抵御攻击?您的应用是否也在 HTTP 上运行?
  • 是的。安全团队的人批准将其用作客户端(!)启动 OAuth 服务器不是他们所涵盖的内容,我不推荐。我不得不问,你有没有发现让你担心的事情?我问是因为,我认为我(非常)信任他们,我也重视其他人的意见。
  • 当然,我很想知道 Spring Social 与 Facebook 的“共舞”是否有任何顾虑。如果有,我希望您能与我合作(通过jira.springsource.org/browse/SOCIALFB 的问题跟踪)来解决这个问题。 FWIW,Spring Social 1.1.0.M3 现在支持 OAuth 2 舞蹈中的“状态”参数来防范 CSRF 攻击。
【解决方案2】:

是的,Spring Social 在使用 Facebook 时确实支持通过 HTTPS 的 OAuth2,无论是在其 API 绑定中还是在 OAuth2“舞蹈”中。请注意 https://github.com/SpringSource/spring-social-facebook/blob/master/spring-social-facebook/src/main/java/org/springframework/social/facebook/connect/FacebookOAuth2Template.java 中的 URL 作为 Spring Social 在执行 OAuth2“跳舞”时使用 HTTPS 的证据。

如果没有,那么它不仅在安全方面是个坏主意,而且根本行不通。当涉及访问令牌时,Facebook 不允许您使用它的 API,除非它通过 HTTPS。如果您尝试通过 HTTP 将访问令牌传递给任何 API 端点(即使不安全且即使访问令牌是伪造的),您也会收到错误消息。例如,将您的浏览器指向http://graph.facebook.com/gopivotal?access_token=fasddasf,您将收到一条错误消息。

是的,Spring Social 在使用 Facebook 时支持 HTTPS。如果没有,它就根本不起作用。

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 2011-04-04
    • 1970-01-01
    • 2011-12-19
    • 2013-04-01
    • 2014-09-11
    • 2016-05-14
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多