質問: ### やりたい事 SeleniumとPhantomJSでクッキーを使いログイン画面を省略したいと考えています。 ### 直面している問題 問題は2つあり。 1) 出力されるクッキーが複数あり、どれがログイン情報を格納しているかわかりません。 2) 複数のcookieを読み込んだ状態でアクセスしたいのですが、失敗してしまいます。 対象のクッキーのサンプル ``` [{:name=>"s_sess", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>nil, :secure=>false}, {:name=>"friedrice", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#, :secure=>true}, {:name=>"s_pers", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>#, :secure=>false}, {:name=>"riceball", :value=>"", :path=>"/", :domain=>"mainmenu.example.co.jp", :expires=>nil, :secure=>true}, {:name=>"shop", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}, {:name=>"sesame", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#, :secure=>true}, {:name=>"ginger", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}] ``` 対象のコード ``` get "mainmenu.example.co.jp" $selenium.manage.add_cookie([{:name=>"s_sess", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>nil, :secure=>false}, {:name=>"friedrice", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#, :secure=>true}, {:name=>"s_pers", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>#, :secure=>false}, {:name=>"riceball", :value=>"", :path=>"/", :domain=>"mainmenu.example.co.jp", :expires=>nil, :secure=>true}, {:name=>"shop", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}, {:name=>"sesame", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#, :secure=>true}, {:name=>"ginger", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}]) get "mainmenu.example.co.jp/aaaaa.html" screenshot ``` ### 備考 環境 Ruby Selenium PhantomJS クライアント アクセス先はIDとPWを入力する部分が2つあります。
回答: クッキーによるログイン管理に関しては、 基本的にIDやパスワードの文字列は絶対に持ちません。 クラッカーに抜かれた時点で大事になりますからね。 なので、今だけ使える一時的なログイン情報`セションID`というものを新規に発行して管理しています。 具体名はシステム毎に変わるので推測するしかないのですが、SIDとかSESS等のクッキー名が怪しいですね。 このことから「s_sess」が該当するんじゃないかと思います。 また、セッションを管理しているクッキーは大抵ログインする沢山のユーザーを捌く為に半角英数字の32文字くらいのハッシュ値です。 クッキーの実体をテキストエディタかなにかで開いて、意味のなさそうな英数字の羅列を探しましょう。 これで更に絞り込むことが出来るかと思います。 他にも、クッキーは設定されたドメインでしか使えないのでdomainがシステムと一致するものだけ抜き出しましょう。 また、クッキーには制限時間もあるので、ログインを行ってクッキーを持ち帰ることに特化したコマンドも必要です。