我需要在使用facebook连接登录的网站上使用php curl登录我的帐户。
我将以我最喜欢的应用程序之一为例:Mousehunt
正如你所看到的,它使用facebook(当然)登录:如果你已经连接到facebook,它会成功自动登录,否则会弹出facebook登录。
我如何使用php curl登录?我知道一些关于curl& cookie(cookiejar,cookiefile,post等),但不是太多。
哪个是发布数据的目标网址?如何在用户登录后返回该站点?
答案 0 :(得分:2)
让我解释一下这种FB登录是如何工作的。当然,桌面应用程序使用的备用方法可以实现,但本网站不使用它。
所以继续这笔交易:
登录按钮在facebook服务器上打开一个链接,其中包含网站的api密钥和一些任意信息。到现在为止还挺好。你可以很容易地模拟它。
然后在接受隐私资料后,您将被重定向回网站。你也可以模拟它。
然后是负担:
您重定向到的位置在主题标签(#)后面包含一个facebook标记。
然后网站可以通过Javascript读取此令牌,并使用它来查询facebook api以确认您的权限。
这样做的原因很简单:
想一想。每个人都可以在网站名称中伪造请求并读取您的私人数据。但是,主题标签之后的所有内容都不会被请求所针对的服务器读取。 Web浏览器只是没有通过它,它会违反http标准并导致错误。
访问它的唯一方法是使用javascript。这只能通过服务请求的网站(facebook重定向到的地方)。 facebook重定向到的域名由应用程序密钥所有者锁定。
您认为javascript是此处安全性的重要组成部分。
我认为它确实非常不安全,因为有许多可能的探索,但它非常容易,这就是为什么这种形式的登录在与例如的OpenID。
总结一下:你需要模拟一个完全启用javascript的浏览器。它部分可能但非常复杂,没有开箱即用的解决方案。
答案 1 :(得分:1)
然后你可以授予网站的永久权限 - 以通常的方式登录 - 并保存cookie。
然后你可以发送这些cookie和卷曲。 如果网站使用服务器端登录身份验证,很可能,您仍然会登录,因为访问令牌是永久性的。
然而,无法确保该黑客能够保持正常运作。