HTTP Refererを使用する方法

リファラープロセスでできること

ウェブサイトに記載されている情報は、ウェブサーバーからユーザーのブラウザーに移動するとき、またはその逆のときに送信するデータの一部に過ぎません。 また、舞台裏でかなりの量のデータ転送が行われます。そのデータにアクセスする方法が分かっている場合は、面白く便利な方法でそのデータを使用することができます。 この記事では、このプロセス中に転送される特定のデータ(HTTPリファラー)を見ていきます。

HTTP Refererとは何ですか?

HTTP refererは、Webブラウザがサーバーに渡して、このページに来る前に読者がどのページにいるかを伝えるデータです。 この情報は、お客様のウェブサイトで追加のヘルプを提供したり、ターゲットユーザーに特典を提供したり、顧客を関連するページやコンテンツにリダイレクトしたり、訪問者があなたのサイトに来るのを妨げることさえできます。 JavaScript、PHP、ASPなどのスクリプト言語を使用して、参照元情報を読み込んで評価することもできます。

PHP、JavaScript、ASPによるReferer情報の収集

では、このHTTPリファラーデータをどのように収集しますか? 使用できる方法は次のとおりです。

PHPはリファラー情報をHTTP_REFERERというシステム変数に格納します。 refererをPHPページに表示するには、次のように記述します。

if(isset($ _ SERVER ['HTTP_REFERER'])){
エコー$ _SERVER ['HTTP_REFERER'];
}

これは、変数に値があるかどうかをチェックし、それを画面に表示します。 エコーの代わりに$ _SERVER ['HTTP_REFERER']; さまざまなリファラを確認するためのスクリプト行を配置します。

JavaScriptは、DOMを使用してリファラーを読み取ります。 PHPと同じように、リファラーに値があることを確認する必要があります。 ただし、その値を操作する場合は、最初に変数に設定する必要があります。 以下はJavaScriptを使用してリファラーをページに表示する方法です。 DOMはリファラーの別のスペルを使用し、そこに余分な "r"を追加します。

if(document.referrer){
var myReferer = document.referrer;
document.write(myReferer);
}

次に、変数myRefererを使用してリファラーをスクリプト内で使用できます。

PHPのように、ASPはシステム変数にrefererを設定します。 そのような情報を収集することができます:

if(Request.ServerVariables( "HTTP_REFERER")){
Dim myReferer = Request.ServerVariables( "HTTP_REFERER")
Response.Write(myReferer)
}

変数myRefererを使用して、必要に応じてスクリプトを調整することができます。

あなたはRefererを持っていれば、あなたはそれで何ができますか?

だから、データを取得するステップ1です。どのようにあなたの特定のサイトに依存して行くかについて行く。 次のステップはもちろん、この情報を使用する方法を見つけることです。

リファラーデータを取得したら、これを使用してさまざまな方法でサイトをスクリプト化することができます。 あなたができる簡単なことの1つは、訪問者が来たと思うところに投稿することです。 確かに、それはかなり退屈ですが、いくつかのテストを実行する必要がある場合は、それが作業するには良いエントリポイントかもしれません。

もっと興味深い例は、 どこから来たのかに応じて異なる情報を表示するためにリファラーを使用する場合です。 たとえば、次の操作を実行できます。

リファラーによる.htaccessのユーザーをブロックする

セキュリティの観点からは、ある特定のドメインからサイト上に多くのリファラースパムが発生している場合は、そのドメインをサイトから単にブロックすることができます。 mod_rewriteがインストールされたApacheを使用している場合は、数行でブロックすることができます。 .htaccessファイルに次の行を追加します

RewriteEngineをオンにする
#オプション+ FollowSymlinks
RewriteCond%{HTTP_REFERER} spammer \ .com [NC]
RewriteRule。* - [F]

spammer \ .comという単語をブロックするドメインに変更してください。 \をドメインの任意のピリオドの前に置いてください。

リファラーに頼らないでください

refererをスプーフィングすることは可能であることを覚えておいてください。セキュリティのためにrefererだけを使用するべきではありません 。 他のセキュリティのアドオンとして使うこともできますが、ページに特定のユーザーだけがアクセスできるようにするには、 htaccessで パスワード設定する必要があります