使用facebook登录防止对后端系统的不必要访问

时间:2011-08-04 08:36:44

标签: iphone security facebook-graph-api facebook integration

我正在写一个使用facebook登录的iphone应用程序。当用户登录fb访问令牌时,电子邮件地址将通过Web服务发送到后端数据库。现在的问题是,当facebook更改访问令牌时,我将如何识别它。有人可能只是通过假装成用户的Web服务向我的数据库发送类似的数据,并更改我的数据库中的访问令牌。我必须以某种方式验证来自移动设备的Web服务调用。

如果不向用户提供密码,我将如何防止这种情况?

感谢。

1 个答案:

答案 0 :(得分:0)

对此没有简单或真正的密闭解决方案。

但首先与后端的通信应该至少使用SSL加密来最小化中间人攻击的风险。

一种方法是在第一次运行时生成唯一标识符,并在服务器上使用相同的算法进行验证,从而为后端创建自己的访问令牌。但是,如果您的算法很弱,或者任何人对您的应用程序进行反编译,则可以了解如何生成标识符。

你应该至少使用sha加密,md5现在开始变弱。

生成非常简单的令牌的示例,不要在代码中使用它;

String salt = "twsg23s¤#"; //a random generated string (must be the same on the server and client
String token = sha1(sha1(facebookid + salt) + salt); //this will be your token

然后生成相同的令牌服务器端并将客户端令牌与servertoken进行比较。

我必须强调:你的盐被泄露和/或你的算法很弱,你的系统会有一个巨大的安全漏洞。