序文 この記事では主に、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 関数のアンチシェイクと関数スロットリングを理解する方法
序文MySQL インデックスの使用に関しては、これまでインデックスの最左接頭辞ルール、インデックス ...
導入Kubernetes を使い始めるのに丸一日を費やしたことはありませんか?最近登場したいくつかの...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...
重要なデータはバックアップする必要があり、リアルタイムでバックアップする必要があります。そうしないと...
この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...
MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...
序文explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方...
目次非同期トラバーサル非同期反復可能トラバーサル非同期反復生成非同期メソッドと非同期ジェネレーター非...
目次1. 現在のシステムにMySQLがインストールされているかどうかを確認する2. インストールされ...
方法1: npm経由でプラグインをインストールする1. npm install vue-print-...
必要Zabbix で DingTalk アラームを設定する方法は、Prometheus で Ding...
1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...
公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...
Docker コンテナのネットワーク障害に対する 6 つの解決策注: 以下の方法は、コンテナ内のパブ...