我正在使用 iframe 方法编写一个新的画布应用程序。我的后端对画布响应同时支持 HTTP 和 HTTPS,但默认情况下,Facebook 似乎将用户置于 HTTP 上,并通过 HTTP 直接以纯文本形式发送所有重要的凭据(即 signed_request 有效负载中的访问令牌等)。这当然是共享网络上的一个安全漏洞(咖啡店、办公室等,在那里嗅探访问令牌是微不足道的。)
如何强制我的所有画布请求通过 HTTPS 运行,并保护我的用户凭据?
我认为所有开发人员都应该希望或被要求这样做。虽然我是 Facebook 开发的新手,但令我惊讶的是,他们不会使用 HTTPS 进行所有用户访问令牌的直接传输。Oauth 1.0 具有允许通过 HTTP 使用访问令牌的机制(因为请求必须由客户端应用程序签名),但 OAuth 2.0 取消了所有这些,转而使用 HTTPS 处理具有嵌入式凭据的任何请求。Facebook 帮助设计了 OAuth 2.0,并且通过在画布请求中偏离 HTTPS 使用来破坏设计的安全性。