cURLコマンドラインからコマンドでログインしようとしています
curl --data "ユーザー名=ユーザー&パスワード=パス&送信=ログイン"http://www.ip.com:8080/LoginApplication/Login.jsp
そしてその後、内部ページにアクセスしようとすると
curl http://www.ip.com:8080/LoginApplication/Success.jsp
しかし、ログインしていないため、エラー ページにリダイレクトされます。
セッションを維持するために最初のコマンドで何が欠けているのでしょうか?私は自分のウェブサイトをローカルにホストしています
答え1
そうですね、セッション データを Cookie に保存する必要があります。 を使用して-c cookie_filename
Cookie を作成できます (これをログイン コマンドに追加します)。その後、他のリクエストについては、 を使用して Cookie から読み取ることができます-b cookie_filename
。
例:
curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile
編集:
多くの場合loginpage
、ユーザー名とパスワードを入力するのは、Webブラウザで開いたページではないことに注意してください。フォームがデータをどこに送信しているかを確認する必要があります(ソース<form>
コード内のタグとaction=...
属性を検索します)。たとえば、https://criticker.com、loginpage
はhttps://www.criticker.com/authenticate.phpそしてそうではないhttps://www.criticker.com/signin.phpブラウザで開くものです。
ブラウザの改ざん防止プラグイン/拡張機能を使用すると、ブラウザloginpage
に投稿されている正しいデータやすべてのデータ(フォーム内の隠し入力フィールドなど)を見つけるのに役立つ場合があります。