PHP安全性 - Facebook block如何从其他主机登录



我搜索了很多有关此主题的信息,但我没有找到任何有用的解决方案。

Facebook如何检测到主机不是Facebook,即使可以使用Curl或HTML表单在请求标题中伪造和主机在另一个网站中。

如果您将登录帖子参数发送到https://m.facebook.com/login/,则Facebook将显示一条消息:(出于安全原因,不要从网站上登录Facebook以外的其他网站),它们会阻止登录名。

因此,他们如何100%确定请求是由Facebook.com提出的?

谢谢。

他们可能使用CSRF版本。查看实际登录表单,除用户名和密码外,还有14个(十四!)隐藏的HTML字段。他们中至少有4个看上去像CSRF令牌。您需要将它们全部从主页上拉出,并随您的登录请求发送。像卷发这样的工具可以发送如此完整的请求,但是您仍然需要自己检索所有字段。

CSRF是一种防止(或至少使非常困难的)网站从其网站上发布到网站上的一种方式。实现它的通常方法是创建一个一次性使用令牌,将其切断在会话中,并将其放在网页上。如果HTTP帖子省略了令牌,则不接受该帖子。用表格重新加载页面,并重新生成令牌。有些站点也有代币的到期 - 也就是说,它只能在短时间内工作,例如10分钟。

顺便说一句,这与PHP无关。在许多语言中,CSRF支持在许多框架中都有许多框架,并且自己构建它并不难。

最新更新