Jos*_*hua 5 security facebook-javascript-sdk
我正在使用facebook javascript sdk为网站提供用户登录功能.
我想做的是简单地获取登录用户的唯一facebook id,然后使用id将数据发送到mysql数据库/从mysql数据库获取数据,以确定所述用户可以使用哪些数据.
但是我并不觉得这很安全.虽然我没有存储像信用卡详细信息等敏感的东西,但我显然希望它尽可能安全.
我担心的是,随着javascript的存在,有人可能会伪造facebook id而只是拉出他们想要的东西.
我知道php sdk会为这个问题提供一个可靠的解决方案,但我喜欢javascript主要是因为它易于使用,我有它的基础设置(我承认,我很懒).
所以,我的问题是:
这种设置是否会像我认为的那样不安全?
除了切换到php sdk之外,我还能做些什么来提高这种系统的安全性吗?
谢谢!
Facebook ID 很难伪造(用户最多只知道自己的 ID)。取决于您在数据库中存储的内容(这不会是用户无法自行获取的内容,除非您请求扩展权限)
如果您担心用户尝试从数据库获取信息,请向每一行添加访问令牌或签名请求,然后使用该令牌和 facebook id 来获取数据。这将大大提高安全性。
编辑
在极少数情况下,您会收到用户签名的请求:
* A signed_request is passed to Apps on Facebook.com when they are loaded into the Facebook environment
* A signed_request is passed to any app that has registered an Deauthorized Callback in the Developer App whenever a given user removes the app using the App Dashboard
* A signed_request is passed to apps that use the Registration Plugin whenever a user successfully registers with their app
Run Code Online (Sandbox Code Playgroud)
仅当用户已接受权限时,签名请求才会包含用户 ID,并且如果用户进入应用程序并接受权限,则不会再次传递(意味着签名请求不会包含 ID)。因此,保存访问令牌可能是一个更好的主意。以下是有关签名请求的更多信息
此外,签名请求位于 url 中(param =“signed_request”)。我总是通过 c# 解析它,但我相信你至少可以通过 javascript 得到一个