Linux curl フォームのログインまたは送信と Cookie の使用に関する詳細な説明

Linux curl フォームのログインまたは送信と Cookie の使用に関する詳細な説明

序文

この記事では主に、curl を介してフォーム送信ログインを実装する方法について説明します。単一のフォーム送信はフォームログインに似ているため、個別に説明することはしません。

注意: 一部の Web サイトには制限やバックグラウンドでのその他のチェックがあるため、curl フォーム送信によるログインはすべての Web サイトに適用できるわけではありません。これらの Web サイトの背後にある具体的な制限や検証メカニズムは不明であるため、直接の curl フォーム ログインは機能しない可能性があります。

もちろん、以下のケースも curl を使ってログインできます。

事例: LeanCloud ログイン

要件と結果

要件: curl 経由でログインすると、leancloud のアプリケーション ページに正常にアクセスできます。

ログインページのリンクは次のとおりです。

1 https://leancloud.cn/dashboard/login.html#/signin

以下のページは正常にアクセスできます。

1 https://leancloud.cn/dashboard/applist.html#/apps

ブラウザアクセスの影響:

ログインせずに結果に直接アクセスします。ブラウザから結果にアクセスします

上図の赤いボックス 403 内のアクセス リンクは次のとおりです。

1 https://leancloud.cn/1.1/clients/self/apps

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":"ユーザーがサインインしていません。"}

フォームフィールド情報を取得する

フォーム送信リンクを取得する

フォーム送信のリンク情報は下図から取得できます。詳細は以下の通りです。

1 https://leancloud.cn/1.1/signin

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

各列フィールドの説明:

ドメイン: 変数が作成され、読み取り可能なドメイン名。
フラグ: 特定のドメイン内のすべてのマシンが変数にアクセスできるかどうかを示す TRUE/FALSE 値。この値は、ドメインに設定した値に応じてブラウザによって自動的に設定されます。
path: 変数が有効なドメイン内のパス。
secure: 変数にアクセスするためにドメインへの安全な接続が必要かどうかを示す TRUE/FALSE 値。
有効期限: 変数の有効期限が切れる UNIX 時間。 UNIX 時間は、1970 年 1 月 1 日 00:00:00 GMT からの秒数として定義されます。
name: 変数名
値: 変数値

ログインが成功したかどうかを確認する

直接アクセスと 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 をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux が Sudo 権限昇格の脆弱性を公開、どのユーザーでも root コマンドを実行可能
  • Linux のテキスト操作コマンド ed を使用して権限を昇格する方法 11 月 5 日の詳細な説明
  • Linux における非対話型権限昇格の詳細な説明
  • Linux は UDF ライブラリを使用して MySQL 権限昇格を実現します
  • Linux 権限昇格のトリック
  • Linux でフォルダーの下にあるすべてのディレクトリとファイル名をバッチで抽出する
  • Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

<<:  CentOS に MySQL 8.0 をインストールして設定するための詳細な手順

>>:  JS 関数のアンチシェイクと関数スロットリングを理解する方法

推薦する

CSS3を使用してテキストの垂直配置を実現する方法

最近のプロジェクトでは、テキストを垂直に揃えたいと考え、CSS の writing-mode プロパ...

HTMLページのネイティブVIDEOタグはダウンロードボタン機能を隠します

Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...

CentOS の Nginx 公式 Yum ソースの設定を詳しく解説

私はプロジェクトの展開にAlibaba Cloudから購入したCentOSを使用しています。最近、プ...

Ubuntu 19.04 インストール チュートリアル (画像とテキストの手順)

1. 準備1.1 VMware 15 をダウンロードしてインストールするダウンロード リンク: h...

MYSQL フルバックアップ、マスタースレーブレプリケーション、カスケードレプリケーション、および半同期の概要

MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...

CSSでサウンドを再生するいくつかのテクニック

CSS は、スタイル、レイアウト、プレゼンテーションの領域です。色彩、サイズ、アニメーションが溢れて...

Vueはグラフィック検証コードを実装する

この記事の例では、グラフィック検証コードを実装するためのVueの具体的なコードを参考までに共有してい...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

CSS でベジェ曲線の実装を反転する方法

まずは、以前書いた CSS カルーセルアニメーション効果を見てみましょう。アニメーションの遷移をスム...

HTML をホームページとして設定し、お気に入りに追加_Powernode Java Academy

IE ブラウザで「ホームページとして設定」および「お気に入りに追加」機能を実装する方法解決:指定さ...

CSS3 メディアクエリにおけるデバイス幅と幅の違いの詳細な説明

1.デバイス幅定義: 出力デバイスの画面表示幅を定義します。 Web ページが Safari で開か...

Nginx を使用してクロスドメイン Vue 開発環境を処理する方法

1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...

Linux でシステム ディスクを初期化した後にデータ ディスクを再マウントする方法

Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...

ソフトウェア 404 と 404 エラーとは何か、またそれらの違いは何ですか

まず、404 とソフト 404 とは何でしょうか? 404: 簡単に言えば、ユーザーが存在しないペー...