ログインを伴うURLの監視について
以下のような構造のURLを監視しようと検証を行っております。
>>>>>
①ログイン画面(ユーザーID、パスワード、ログインを入力)
②ログイン成功後、監視したいURLへ移動
③監視したいURLから異常時に含まれるbodyの検査
>>>>>
検証したところ、①のURLにてログイン情報を入力後、
ユーザーチェック用のURLにリダイレクトされるようでして、
チェック通過後に③のURLが表示される仕組みであることが判明しました。
PCのブラウザですとcookieにより一度ログインしてしまえば直接③のURLを取得できましたのでkompiraでもcookieを利用してどうにか直接アクセスできないかなと思っています。
マニュアルのurlopenのパラメータにcookies(辞書型)の記載があるのですが、
具体的にどのようなパラメータで設定すればよいのでしょうか。
初心者の為あまり理解できていないかもですがご教示いただけますと幸いです。
よろしくお願いいたします。
-
正式なコメント
フィックスポイントの高橋です。
まずご質問に「具体的にどのようなパラメータで設定すればよいのでしょうか。」とありますが、監視されたい URL のシステムの仕様が不明ですので分かりません。ここでは一般的に考えられるシナリオで考えてみたいと思います。
推測になりますが、①の GET の時点においてサーバからのレスポンスに Set-Cookie によるクライアントに対する何らかの Cookie 値の指定が返ってきていたりはしないでしょうか?
たとえば、サーバ側が①の POST の時点において、ユーザIDやパスワードの入力の他に、GET 時に渡した Cookie の値が POST リクエストにセットされているかをチェックする、というのはよくある動作かと思います。
urlopen() では、サーバから Set-Cookie によって渡されたクッキー値はレスポンス辞書の cookies フィールドに辞書型で持っています。
これを利用して、例えば以下のように ① の GET で得られたクッキー値を ① の POST時に urlopen() の cookies パラメータで渡すことで、ログインに成功するかもしれません。
[resp = urloepn(ログイン画面のURL)] ->
[resp = urloepn(ログイン画面のURL, data={ログイン情報...}, cookies=r.cookies] ->
...また、② のログイン成功した場合には、新たにセッションを区別するための別のクッキー値がサーバ側から渡されているかもしれません。以後の ③ などのアクセスにおいては、② で渡されたクッキー値をリクエストにセットする必要があるかもしれません。
参考になさってみてください。
コメントアクション
サインインしてコメントを残してください。
コメント
2件のコメント