TIM*_*MEX 1 javascript python facebook
根据Facebook API文档,大部分工作都是通过javascript处理的.
这意味着所有处理都已完成,然后前端检查用户是否连接到Facebook /授权.对?
我的问题是:
假设用户第一次访问我的网站.他点击"facebook connect".javascript将其验证为可信,并将其"重定向"到我服务器上的另一个页面.从那时起,我怎么知道用户实际上已经对我的网站进行了身份验证,因为一切都是在前端完成的?
我认为这是正确的,但是没有一些安全问题..:
- 用户点击登录后,Facebook会重定向到我网站上的页面.并且他们还创建了一个具有特定"Facebook ID"的cookie,该ID仅从该用户检索.我的后备人员将"读取"cookie并获取该ID ...然后将其与我的userID相关联.
如果这是正确的......那么它没有意义.如果人们窃取其他人的"Facebook ID"然后伪造cookie怎么办?然后我的后端看到cookie并认为它是真正的用户......?
我很困惑吗?如果我感到困惑,请帮我重组并告诉我它是怎么回事.
Facebook Connect使用聪明(或疯狂,取决于您的观点)黑客来实现您的网站与Facebook的身份验证系统之间的跨站点通信.
它的工作方式如下:
xd_receiver.htm在FB文档中调用,但它可以命名为您喜欢的任何名称.iframe,其中加载了跨域通信文件.src的任何元素iframe,这用于与页面上托管的跨域通信文件进行通信.iframe在另一个中来实现iframe- 这个二级iframe生活在Facebook的服务器而不是你的服务器上.Cookie是安全的(理论上),因为数据是使用Facebook在您注册开发人员计划时为您生成的密钥签名的.JS库使用您的公钥("API密钥")来验证cookie.
从理论上讲,Facebook的Javascript库会在您完成所有操作后自动处理这一切.在实践中,我发现它并不总是完全顺利.
有关使用iframes 的跨域通信机制的更详细说明,请参阅MSDN中的这篇文章.
| 归档时间: |
|
| 查看次数: |
410 次 |
| 最近记录: |