リファラーとは何か?

リファラーとは、あるWebサイトのページのリンクをクリックして別のページに移動したときの、リンク元のページのことを言います。

つまり、ユーザーが、あるサイトにたどり着く前に閲覧していたサイトです。

Webサーバーのアクセスログに記録される項目の1つで、リファラーをたどっていくことで、ユーザーがどのサイトから訪問したか、サイト内でどんな軌跡をたどったかなどについて調べることができます。

リファラーは貴重なソース

リファラーを調べることで、ユーザーがなぜ自分たちのWebサイトにやって来たのかあたりを付けられるようになります。

※なぜ自分のWebサイトに来たのかは、結局本人しかわかりません。もしくはWebサイトにやってきたユーザー本人も分からないかもしれません。

また、ユーザーがどこから来たのかがわかれば、さらにもう少し多くのことを知ることができます。

 

その結果、ユーザーにとって有益なコンテンツを考え出すことができるかもしれません。

 

今はGoogleは検索キーワードは公開していないので、リファラー情報は貴重なソースだと言えます。

リファラーのアクセス元URLが残る

アクセスログにはリファラー(アクセス元URL)が残ります。

当サイトの場合はこんな感じで残ります。

www.go-journey.club 60.36.xxx.xxx - - [10/May/2017:08:12:55 +0900] "GET /archives/1430 HTTP/1.1" 200 101078 "https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&ved=0ahUKEwjIy6_x9-PTAhVIkJQKHY70AEo4ChAWCEEwBA&url=https%3A%2F%2Fgo-journey.club%2Farchives%2F1430&usg=AFQjCNH3cPynAYet1JwXkpuvOwuxDsiidg&sig2=BPPq22A5UFpFjjzOUYgY3A" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"

 

リフアラはクリック以外でも記録される

リンク元がアクセスログにリファラーとして残ります。

しかし、リンクをクリックした時だけ記録されるものかというと違います。

実は、画像を読み込んだときにも記録されます。

HTMLでは画像は<img>タグで表現されますが、画像のあるページを表示する時、ブラウザは要求されたURLについてHTMLを解析し、Webページとして表示しようとします。。

しかしimgタグを見つけると、要求されたURLとは別に画像のURLを要求し、返ってきた画像をページの中に埋め込んで表示します。

つまり、画像はその画像を含んでいるペー ジから呼ばれていることになり、画像を含んでいたページがリフアラとして記録されるのです。

ここから何が分かるかというと、黙って画像の「直リンク」をしている場合、どのサイトで画像の直リンクをしているのかバレてしまいます。

リファラーは偽造することが可能

リファラーはブラウザが自己申告している値なので偽造もできます。

Linuxならtelnetでリファラーを偽造することができます。

試しにリファラーを偽造してみましょう。

 

構成

Webサーバー:さくらVPS(xxx-xxxx-34861.vs.sakura.ne.jp)

クライアント:自宅Linux(centos7 )

 

自宅Linuxからインターネット上にあるさくらVPSの80番ポートにtelnetアクセスします。

telnetで接続したら、ドキュメントルートのindex.htmlをリクエストして、更にリファラーを設定します。

その後、サーバーのaccess.logに手動で設定したリファラーが残っていることを確認し、リファラーが偽造できることを確認します。

 

まずはtelnetをインストールします。

[root@centos7 ~]# yum install telnet
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ telnet.x86_64 1:0.17-60.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

============================================================================================
 Package             アーキテクチャー    バージョン                 リポジトリー       容量
============================================================================================
インストール中:
 telnet              x86_64              1:0.17-60.el7              base               63 k

トランザクションの要約
============================================================================================
インストール  1 パッケージ

総ダウンロード容量: 63 k
インストール容量: 113 k
Is this ok [y/d/N]: y ←yを入力します。
Downloading packages:
telnet-0.17-60.el7.x86_64.rpm                                        |  63 kB  00:00:25
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:telnet-0.17-60.el7.x86_64                                 1/1
  検証中                  : 1:telnet-0.17-60.el7.x86_64                                 1/1

インストール:
  telnet.x86_64 1:0.17-60.el7

完了しました!

 

次に偽造したリファラーでHTTPリクエストをサーバーへ送ります。

[testuser@centos7 ~]$ telnet xxx-xxxx-34861.vs.sakura.ne.jp 80 ← telnetで、さくらVPSサーバーの80番ポートへアクセスします。
Trying 160.16.217.115...
Connected to tk2-250-34861.vs.sakura.ne.jp.
Escape character is '^]'.
GET / HTTP/1.0 ← 「GET / HTTP/1.0」と入力して「Enter」を押下します。
Referer: http://test.com/test/test/test ← 「Referer: http://test.com/test/test/test」と入力して「Enter」を押下します。
← 再度「Enter」を入力します。
HTTP/1.1 200 OK
Date: Thu, 11 May 2017 13:47:23 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Mon, 01 May 2017 07:17:23 GMT
ETag: "12-54e7136f50d8d"
Accept-Ranges: bytes
Content-Length: 18
Connection: close
Content-Type: text/html; charset=UTF-8

test
Hello World!
Connection closed by foreign host.
[testuser@centos7 ~]$

 

ここまで実行したらhttpdのログを確認します。

[root@xxx-xxx-34861 ~]# cd /var/log/httpd
[root@xxx-xxx-34861 httpd]# tail access_log
126.xx.xxx.202 - - [11/May/2017:22:47:23 +0900] "GET / HTTP/1.0" 200 18 "http://test.com/test/test/test" "-" ← 手動で設定したリファラーがログに残っていることを確認します。
[root@xxx-xxx-34861 httpd]#

リファラースパムとは

レンタルサーバーでWebサイトを運用していると、「リファラースパム」という用語を聞いたことがあるかもしれません。

今までのtelnetで手動でリファラーを偽造する手順を見て、「リファラースパム」の仕組みが分かったと思います。

リファラースパムとは、httpdのログにリファラーが記録されることを利用して、多数のWebサイトにリファラーを残し、アクセスログをチェックするWebサイトの管理人にクリックをさせることを言います。

Webサイトの管理人なら、どこから自分のサイトにアクセスしてきてくれたのかは、大変興味があるところです。

ついついクリックしてしまうでしょう。

何のためにリファラースパムをするのか?

何のためにリファラースパムをしているのかというと、Webサイトの管理人がクリックするリンクにウィルスを仕込んでおくとか、広告を貼っておくとかいろいろな目的があります。

ただその目的は「悪用」のためなのでリファラースパムと思われるリンクはクリックしないようにしましょう。

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。