序文 この記事では主に、curl を介してフォーム送信ログインを実装する方法について説明します。単一のフォーム送信はフォームログインに似ているため、個別に説明することはしません。 注意: 一部の Web サイトには制限やバックグラウンドでのその他のチェックがあるため、curl フォーム送信によるログインはすべての Web サイトに適用できるわけではありません。これらの Web サイトの背後にある具体的な制限や検証メカニズムは不明であるため、直接の curl フォーム ログインは機能しない可能性があります。 もちろん、以下のケースも curl を使ってログインできます。 事例: LeanCloud ログイン 要件と結果 要件: curl 経由でログインすると、leancloud のアプリケーション ページに正常にアクセスできます。 ログインページのリンクは次のとおりです。
以下のページは正常にアクセスできます。
ブラウザアクセスの影響: ログインせずに結果に直接アクセスします。ブラウザから結果にアクセスします 上図の赤いボックス 403 内のアクセス リンクは次のとおりです。
curl 経由でログインを確認する [root@iZ28xbsfvc4Z ~]# curl -i https://leancloud.cn/1.1/clients/self/apps HTTP/1.1 403 禁止 サーバー: openresty 日付: 2019 年 7 月 14 日 (日) 11:35:28 GMT コンテンツタイプ: application/json;charset=utf-8 転送エンコーディング: チャンク 接続: キープアライブ 変化: Accept-Encoding キャッシュ制御: キャッシュなし、ストアなし プラグマ: キャッシュなし {"code":1,"error":"ユーザーがサインインしていません。"} フォームフィールド情報を取得する フォーム送信リンクを取得する フォーム送信のリンク情報は下図から取得できます。詳細は以下の通りです。
curl フォームにログインし、Cookie 情報を保存する 1 curl -v -c leancloud1.info -X POST -F 'email=yourname' -F 'password=yourpassword' https://leancloud.cn/1.1/signin 2 # または 3 curl -v -c leancloud3.info -X POST -d 'email=yourname&password=yourpassword' https://leancloud.cn/1.1/signin クッキー情報を表示 [root@iZ28xbsfvc4Z 20190714_02]# ll 合計 32 -rw-r--r-- 1 ルート ルート 337 7月14日 19:45 leancloud1.info -rw-r--r-- 1 ルート ルート 335 7月14日 19:46 leancloud3.info [root@iZ28xbsfvc4Z 20190714_02]# cat leancloud1.info # Netscape HTTP Cookie ファイル # http://curl.haxx.se/docs/http-cookies.html # このファイルは libcurl によって生成されました。編集は自己責任で行ってください。 #HttpOnly_leancloud.cn 偽 / 真 1563709522 uluru_user Ff1IPOiMX%2F6ipevuxy0OOg%3D%3D leancloud.cn 偽 / 真 1563709522 XSRF-トークン 5647dc84bd6eaea37eca2d07ae0e401cca4ba76803989c8559XXXXX7283da [root@iZ28xbsfvc4Z 20190714_02]# cat leancloud3.info # Netscape HTTP Cookie ファイル # http://curl.haxx.se/docs/http-cookies.html # このファイルは libcurl によって生成されました。編集は自己責任で行ってください。 #HttpOnly_leancloud.cn 偽 / 真 1563709591 uluru_user arTwQm6JylzLjBaQt7TpiQ%3D%3D leancloud.cn 偽 / 真 1563709591 XSRFトークン 751e12827c7c046408541bc1bf962b5912ac35b0d07f88120XXXXXX40704704 各列フィールドの説明: ドメイン: 変数が作成され、読み取り可能なドメイン名。 ログインが成功したかどうかを確認する 直接アクセスと Cookie を使用したアクセスという 2 つのアクセス方法を比較してください。 直接アクセス [root@iZ28xbsfvc4Z 20190714_02]# curl -i https://leancloud.cn/1.1/clients/self/apps HTTP/1.1 403 禁止 サーバー: openresty 日付: 2019 年 7 月 14 日 (日) 11:52:47 GMT コンテンツタイプ: application/json;charset=utf-8 転送エンコーディング: チャンク 接続: キープアライブ 変化: Accept-Encoding キャッシュ制御: キャッシュなし、ストアなし プラグマ: キャッシュなし {"code":1,"error":"ユーザーがサインインしていません。"} クッキーファイルによるアクセス # クッキーの使用 [root@iZ28xbsfvc4Z 20190714_02]# curl -i -b leancloud1.info https://leancloud.cn/1.1/clients/self/apps ## または [root@iZ28xbsfvc4Z 20190714_02]# curl -i -b leancloud3.info https://leancloud.cn/1.1/clients/self/apps HTTP/1.1 200 OK サーバー: openresty 日付: 2019 年 7 月 14 日 (日) 11:53:29 GMT コンテンツタイプ: application/json;charset=utf-8 転送エンコーディング: チャンク 接続: キープアライブ 変化: Accept-Encoding キャッシュ制御: キャッシュなし、ストアなし プラグマ: キャッシュなし 厳格なトランスポートセキュリティ: max-age=31536000 [{"app_domain":null,"description":null,"archive_status":0,"biz_type":"dev","master_key": ……………… アクセスするにはブラウザのCookieをコピーしてください [root@iZ28xbsfvc4Z 20190720]# curl -i -H 'cookie: _ga=GA1.2.2055706705.1560005524; …………' https://leancloud.cn/1.1/clients/self/apps HTTP/1.1 200 OK サーバー: openresty 日付: 2019年7月20日(土)08:11:37 GMT コンテンツタイプ: application/json;charset=utf-8 転送エンコーディング: チャンク 接続: キープアライブ 変化: Accept-Encoding キャッシュ制御: キャッシュなし、ストアなし プラグマ: キャッシュなし 厳格なトランスポートセキュリティ: max-age=31536000 [{"app_domain":null,"description":null,"archive_status":0,"biz_type":"dev","master_key": ……………… 上記から、curl ログインが成功したことがわかります。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: CentOS に MySQL 8.0 をインストールして設定するための詳細な手順
>>: JS 関数のアンチシェイクと関数スロットリングを理解する方法
最近のプロジェクトでは、テキストを垂直に揃えたいと考え、CSS の writing-mode プロパ...
Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...
最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...
私はプロジェクトの展開にAlibaba Cloudから購入したCentOSを使用しています。最近、プ...
1. 準備1.1 VMware 15 をダウンロードしてインストールするダウンロード リンク: h...
MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...
CSS は、スタイル、レイアウト、プレゼンテーションの領域です。色彩、サイズ、アニメーションが溢れて...
この記事の例では、グラフィック検証コードを実装するためのVueの具体的なコードを参考までに共有してい...
目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...
まずは、以前書いた CSS カルーセルアニメーション効果を見てみましょう。アニメーションの遷移をスム...
IE ブラウザで「ホームページとして設定」および「お気に入りに追加」機能を実装する方法解決:指定さ...
1.デバイス幅定義: 出力デバイスの画面表示幅を定義します。 Web ページが Safari で開か...
1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...
Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...
まず、404 とソフト 404 とは何でしょうか? 404: 簡単に言えば、ユーザーが存在しないペー...