2

我目前正在开发一个应用程序,它将使用 FB SDK(第一次)将用户登录到应用程序。我认为流程是典型的。用户点击“使用 facebook 登录”,facebook graph 进行身份验证,然后我们调用我们的 api 并通过我们存档的他们的 facebook 电子邮件(仅)让用户登录。

但是,让我感到害怕的是,理论上,如果有人知道我们的 api_token,并且知道仅使用有效的现有电子邮件将 POST 调用到登录 url 来登录,这不是安全问题,因为他们实际上可以登录作为别人。我是不是想太多了?可以理解的是,他们必须了解 API 的各个方面才能造成任何损害。但是,我仍然对这种流程感到不舒服。我错过了什么吗?

4

1 回答 1

2

这不应该是你必须担心的事情。Facebook 首先通过要求用户登录 Facebook 来保护您。接下来,用户的 UID(任何人都可以使用)和您的 API 密钥是不够的。他们仍然需要您的 API 密钥(如果有人拥有它是一件坏事)来像您一样签署请求。

您真正使用的是 OAuth(尽管通过 OmniAuth 设计)。我不是专家,但您可以在这里阅读更多信息:http: //hueniverse.com/oauth/guide/security/

当用户通过 OAuth 注册时,您不会为他们设置密码,这并不是什么大问题,因为他们还必须先登录 Facebook。如果他们曾经编辑过他们的帐户,要求他们设置密码可能是一个好主意,这也意味着如果他们想要/删除 Facebook/等,他们可以以旧方式登录。

于 2013-01-29T00:57:49.083 回答