假设我有一个iOS应用程序,它依赖于自定义REST API进行帐户管理(注册、登录、密码重置、获取/设置用户相关数据)等事项。
假设我想添加一个“使用Facebook登录/注册”的按钮,以便我们的用户不必填写乏味的注册表格。
我的数据库仍将包含这些用户,但它们将没有用户名/密码哈希/电子邮件,它们只与由Facebook iOS SDK在应用内Facebook登录后返回的“Facebook用户ID”相关联。
因此,我的API将具有这样的调用:
假设我想添加一个“使用Facebook登录/注册”的按钮,以便我们的用户不必填写乏味的注册表格。
我的数据库仍将包含这些用户,但它们将没有用户名/密码哈希/电子邮件,它们只与由Facebook iOS SDK在应用内Facebook登录后返回的“Facebook用户ID”相关联。
因此,我的API将具有这样的调用:
http://www.myapi.com/create_user_with_facebook?facebook_user_id=XXXXX
好的,不完全准确,它不会是一个GET请求等等,但你明白我的意思。
我担心的是任何人都可以调用该API并使用任何公开可用的Facebook用户ID创建此类帐户,即使这些ID不属于他们。没有数据会有危险或其他什么问题,但当该Facebook账户的合法所有者尝试使用该应用程序时,该应用程序将说“不,抱歉,此Facebook账户似乎已与现有应用程序账户关联!”
我不知道如何保护我们的平台免受这种“攻击”的影响。
(该API仍将允许传统方式注册帐户或将现有帐户与Facebook帐户同步-就像现在许多应用程序一样)
非常感谢您对解决此问题应采取的方向提供的任何帮助!
/me
)。 - CBroe