0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Seleniumでreferer偽装をする

Posted at

自作したホームページをSeleniumで検証していた時に、refererの違いによる動作チェックをしたかったのですが、Seleniumでrefererを書き換える方法が見つからなかったので、ちょっと実験してみました。

実験目的

自作したオフラインのホームページサイトhttp://hoge.hogeをSeleniumでアクセスした際に、refererに任意のURL(今回はhttp://test.test)を入れたい。

方法としては(Seleniumで簡単にrefererを設定できなかったので)一旦ダミーサイトにアクセスし、そこからページ遷移で自作したサイトに行きます。

なお、Seleniumやダミーサイトは同じubuntu上での動作を前提として作ってます。

ダミーサイトの構築

/etc/hostsファイルの最後に下の行のように、refererで使用するURLを追記します。
もし複数のrefererで検証したい場合は、そのrefererの分だけ追記します。

127.0.0.1        test.test

(どこでもいいのですが)~/Documents/に下のダミーページindex.htmlを作成します

index.html
<html>
 <head>
  <title>dummy-site<title>
 </head>
 <body>
  dummy-site
 </body>
</html>

先ほどのファイルindex.htmlを作成したフォルダ~/Documents/上で、下のコマンドを入れpythonのHTTPサーバを起動します。

sudo python3 -m http.server 80

ブラウザでhttp://test.testにアクセスし、ダミーサイトが見れることを確認します。
複数入れた場合は、全てのサイトで同様に見れるか確認します。

Seleniumのスクリプト

検証用スクリプトにreferer偽装部分を追記します。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://test.test")                                     #referer偽装部分
driver.execute_script("window.location.href='http://hoge.hoge'")   #referer偽装部分
...

これでオフライン環境下で、好きなrefererを入れて動作検証ができると思います。

上記の例ではURLのPATHまで入れてませんが、ダミーページを作り込めばPATH等も入れることはできると思います。

おわりに

本当はhostsを書き換えずにreferer偽装をしたかったので、もっといい方法があれば教えてください。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?