序文 この記事では主に、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データベースの保存場所: 1. MySQLがMyISAMストレージエンジンを使用する場合...
このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルのみをサポートしています。そのため、...
この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
少し前にTik Tokを見ていて、フォローするときのボタンアニメーションがとても美しいと思ったのと、...
目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...
1. リバースプロキシの例1 1. 効果を達成する(1)ブラウザを開き、www.123.comと入力...
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...
nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...
この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...
目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...
目次方法1方法2 nginxをインストールした後、PHPコードを解析できないことがわかりました。解決...
1. ワイヤレス ネットワーク カードを挿入し、コマンドiwconfigを使用してワイヤレス ネット...
目次まず、値の一部と一致させるために使用される特殊文字であるワイルドカードについて簡単に紹介します。...
コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...
目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...