このページに php でログインしたいのですが、php でログインしようとするとエラーが発生します。
以下のコードにログインしようとすると、常に変更されます。そのため、ログインできません。
コードは次のとおりです。
<input type="hidden" name="csrfmiddlewaretoken" value="728a44ea6f15dee51406b0c82be3a03b"/>
事前の助けをありがとう
明らかに、Instagram はクロスサイト リクエスト フォージェリから保護されています。この攻撃については、こちらですべて読むことができます。
実際、Instagramの人は、最初に表示せずにログインフォームを送信することを望んでいません. それがcsrfmiddlewaretokenの目的です。フォームが表示されたときに(ランダム値)を提供し、送信すると、提供されたものが返されたかどうかを確認します。OWASP クロスサイト リクエスト フォージェリ防止チート シートを参照してください。
したがって、基本的には、ログイン フォームをリクエストし、そこからトークンを取得してから、2 番目のリクエストにログインし、そのトークンを含める必要があります。
(おそらく彼らはそこでいくつかの二重チェックを行います。この場合、トークンを 2 回送信する必要があります: 投稿データと Cookie の両方で。)
フォームを含むページを開いて、「csrfmiddlewaretoken」の値を var に読み込む必要があります (たとえば、正規表現を使用)。
また、セッション cookie を保存する必要があります (curl にはコンテナ ファイルに cookie を保存する方法があります。または、応答ヘッダーを解析し、cookie 値を保存して、後の要求の要求ヘッダーに設定することで、自分で行うこともできます)。
次に、ログイン要求で「csrfmiddlewaretoken」を設定できます (セッション Cookie を送信する必要があります)。