2011/04/19

curl の基本的な使い方 -コマンド編- その2

前回、curlのごくごく基本的な使い方をまとめてみましたが、なかなかこの手の情報は少ないのか、調べてこのサイトに辿り着かれた方が多いようですね!
しばらくの間、私の把握している範囲で、curlの情報を備忘録的な意味も含めてまとめていこうと思います。




webサービスの生死を確認するのと、apacheの生死は違います。apacheの生死は、アクセスに対して適当なレスポンスを返していればOKですが、webサービスはHTML単品でできている訳ではないので、例えば会員領域にログインしてサービスが正常に動作しているかのチェックを行うのが一般的です。
それを人力でするのは、コストが掛かりますので、curlでやってしまおうという事です。
curl -d id=hoge -d pass=huga http:example.com/login.php
「-d」オプションは、POSTするデータを指定できます。こうすれば、ログインフォームも突破できますね。
でも、普通、ログインフォームはSSL通信だぜ?という場合は。
curl -d id=hoge -d pass=huga https:example.com/login.php
あ、まだSSLの証明書の設定はしてないんだよね。って場合は
curl -d id=hoge -d pass=huga -k https:example.com/login.php
「-k」オプションで、SSLエラーを無視します。JavaScriptを利用したログイン制御が行われている場合はお手上げなんですが、クッキーくらいならcurlにも扱えます。
curl -c cookie.txt -d name=hoge -d pass=huga http://example.com/login.php
上記の例は、サイトから送られてきたクッキーを受け入れてcookie.txtに書きこむようにします。書き込んだクッキーは、次のようにして送信します。
curl -b cookie.txt http://example.com/login.php
これで色んなサイトに潜り込めそうですね! ああ、忘れてた。curlは、basic認証も安々と突破します。
curl -u username:password http://example.com/login.php
curl http://username:password@example.com/login.php
「-u」オプションでユーザー名とパスワードを指定できます。通常basic認証では、ユーザー名とパスワードをBASE64形式に変換して送信しますが、その辺りはcurlでやってくれます。ちなみにbasic認証の突破の仕方は上下どちらでもOKです。
curlとサーバーのやり取りを細かく追っていきたい時は、「-v」オプションで詳細なやり取りを表示します。
curl -v http://example.com/login.php

今回は以上で終わります。今回のオプションはスイッチ的なオプションが多かったので、指定した場合の意味するところさえ分かれば使うのは簡単かなと。割とサンプルも少なめにしました。

ではまた次回に!

see also
wget vs curl - コマンドラインダウンロードツール頂上決戦
curl の基本的な使い方 -コマンド編-
curl の基本的な使い方 -設定編-


0 件のコメント:

コメントを投稿