没有用户名/密码的Gmail / Facebook - PHP登录标题问题

时间:2009-12-13 08:59:13

标签: php facebook curl login header

我想在Gmail / Facebook /任何其他网站上创建自己的个人登录网关。在这个网关中,我输入我的主用户名和密码,然后我可以选择登录的位置(gmail / facebook / etc)而不输入这些用户名,因为它们存储在服务器上。

我试图通过使用cURL发送带有标头的POST请求并在常规登录期间发送在Firefox中发送的数据来实现这一点。但是,这对facebook或gmail都不起作用。

有没有人试过这个或者知道为什么这不起作用?

感谢。

//编辑 我认为它不起作用的问题在于,向gmail发送curl请求的php服务器的IP地址与我的浏览器不同,因此当gmail服务器的响应被反馈到浏览器时,它仍然无法进行身份验证。

或者我使用curl发送到Gmail服务器的cookie实际上是根据时间变化的。

5 个答案:

答案 0 :(得分:1)

根据您对我的评论的回复,cURL对您的问题毫无用处。您需要使用您的服务(gmail,facebook,...)验证您的浏览器,您现在正在做的是验证您的脚本(或您的服务器)。

您必须使用JavaScript来完成您想要的任务。如果您在服务器上存储服务凭据,则在成功登录网页后将其发送回客户端。然后,您可以创建一个隐藏的iframe,并将“src”属性设置为所选服务的登录页面。 iframe加载后,您可以将登录信息(用户名/密码)填入相应的字段并提交表单。一旦完成,您应该进入您的服务。 可能还有一些其他技术,但这是第一个让人想起的技术......

答案 1 :(得分:0)

这不一定是可行的,Gmail和Facebook可能会进行非常简单的检查,以查看推荐人是谁以及何时来自您的网站,而不是他们自己的登录页面拒绝登录。这是基本的安全检查。

您需要查看他们的api,看看您是否可以做任何事情,或者您可能使用javascript和firefox插件将您的用户名和密码写入webform然后提交表单,有点破解但可能做你想做的事。

答案 2 :(得分:0)

您尝试的cURL方法没有理由不使用正确的标头。在像digg.com这样的抓取网站上玩我发现我需要一个有效的USER AGENT标题,当然还有一个合适的REFERER URL,如果最适合你的话,请继续使用curl技术。使用一个http头加载项到firefox,看看你发送到gmail的标题,然后完全伪造它们。

答案 3 :(得分:0)

尝试使用firebug来找出返回的响应,它应该始终为您提供最好的线索。

我认为没有理由不工作,我用Curl阅读了我的Gmail和分析。

答案 4 :(得分:0)

您是否配置了curl来接受和存储Cookie?通常,一旦您通过在线服务的身份验证,它将以cookie的形式向您发送一个安全令牌,您可以随后发送回来以验证您的授权。