序文 この記事では主に、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 では、ソートには order by を、ページングには limit をよく使用します。最...
相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...
関連記事: CentOS7でyumを使用してDockerをインストールするDockerを使ってWin...
序文:前回の記事では、注意深い学生であれば発見できたかもしれない DDL ステートメントの使用法を中...
オールラウンドなシステム監視ツール dstat dstat は、vmstat、iostat、nets...
最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...
目次JavaScript のインポート1. 内部ラベル2. 外部紹介基本的な構文データ型番号弦ブール...
スライドショーは Web ページでよく見られます。美しい写真が使われています。こちらは純粋な CSS...
目次BOM (ブラウザ オブジェクト モデル) 1. ウィンドウブラウザのウィンドウサイズを取得する...
Docker イメージのダウンロードが停止したり、遅すぎたりするネットでいろいろな方法を検索しました...
bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...
序文この記事では主に、CSS3 を使用してテキスト折り紙効果を実現する例を紹介します。これは、参考と...
MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...
序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...
目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...