1

我想用 php 登录这个页面:但是当我尝试用 php 登录时出现错误。

当我尝试登录时,下面的代码总是在变化。所以我无法登录。

代码是:

 <input type="hidden" name="csrfmiddlewaretoken" value="728a44ea6f15dee51406b0c82be3a03b"/>

感谢您的提前帮助

4

2 回答 2

1

显然,Instagram 受到保护,可以防止跨站点请求伪造。您可以在此处阅读有关此攻击的所有信息。

实际上,Instagram 家伙不希望您在不先显示登录表单的情况下提交登录表单。这就是csrfmiddlewaretoken的用途:当表单显示和提交时,他们将其提供给您(随机值),他们会检查您是否返回了他们给您的那个。请参阅OWASP 跨站点请求防伪备忘单

所以基本上你要做的就是请求登录表单,从中获取令牌,然后登录第二个请求并将该令牌包含在其中。

(也许他们在那里做了一些双重检查;在这种情况下,您必须发送两次令牌:在您的帖子数据中和作为 cookie 中。)

于 2013-03-06T09:46:51.557 回答
0

您必须使用表单打开页面并将“csrfmiddlewaretoken”的值读入var(例如使用正则表达式)。

您还必须存储会话 cookie(curl 有一种将 cookie 存储在容器文件中的方法,或者您可以通过解析答案标头并将 cookie 值存储在您的请求标头中为以后的请求设置它自己来完成)。

然后你可以在你的登录请求中设置“csrfmiddlewaretoken”(需要发送会话cookie)。

于 2013-03-06T09:22:20.680 回答