リファラープロセスでできること
ウェブサイトに記載されている情報は、ウェブサーバーからユーザーのブラウザーに移動するとき、またはその逆のときに送信するデータの一部に過ぎません。 また、舞台裏でかなりの量のデータ転送が行われます。そのデータにアクセスする方法が分かっている場合は、面白く便利な方法でそのデータを使用することができます。 この記事では、このプロセス中に転送される特定のデータ(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つは、訪問者が来たと思うところに投稿することです。 確かに、それはかなり退屈ですが、いくつかのテストを実行する必要がある場合は、それが作業するには良いエントリポイントかもしれません。
もっと興味深い例は、 どこから来たのかに応じて異なる情報を表示するためにリファラーを使用する場合です。 たとえば、次の操作を実行できます。
- 一般的なウェルカムメッセージ
あなたはページの上部にrefererのURLを一般的なウェルカムメッセージで印刷することができます。 私が上で述べたように、それはかなり退屈ですが、いくつかの基本的なパーソナライゼーションを提供します。
- ようこそ検索エンジンの訪問者
誰かが検索エンジンからあなたのサイトに到着したとき(refererがgoogle.comやbing.comやyahoo.comなど)、訪問者にもっと長く滞在してもらうための追加情報を提供したい場合がありますあなたのサイト。 あなたはあなたのニュースレターのURLを指摘したり、あなたのサイトの人気のあるページのいくつかへのリンクを与えることができます。 - フォームに情報を渡す
あなたのサイトにリンクがあり、人々がサイト自体の問題を報告することができる場合、リファラーを知ることは非常に便利です。 人々はしばしば、URLを示さずにウェブページの問題を報告するが、リファラー情報を使用して、彼らが何を報告しているかを推測することができる。 このスクリプトは隠されたフォームフィールドにrefererを追加し、サイト上で問題が発生した可能性のあるデータを提供します。
- 一部の訪問者向けに特別オファーを作成する
おそらく、あなたは特定のページから来た人々にあなたの製品やサービスに関する特別な取引をしたいと思うかもしれません。 これは、パーソナライゼーションのもう1つの例です。ユーザーエクスペリエンスとユーザーデータに基づいて表示されるコンテンツを形成している場合などです。たとえば、さまざまな製品を販売する場合は、既に行っていることに関連する取引を提供できますあなたのサイトを見ている。 - 他のページに訪問者を送る
また、特定のリファラーから別のページに人を送ることもできます。 Googleや他の検索エンジンはこれを誤解を招く恐れがあり、サイトにペナルティを科す可能性があるため、これには十分注意してください。
リファラーによる.htaccessのユーザーをブロックする
セキュリティの観点からは、ある特定のドメインからサイト上に多くのリファラースパムが発生している場合は、そのドメインをサイトから単にブロックすることができます。 mod_rewriteがインストールされたApacheを使用している場合は、数行でブロックすることができます。 .htaccessファイルに次の行を追加します 。
RewriteEngineをオンにする
#オプション+ FollowSymlinks
RewriteCond%{HTTP_REFERER} spammer \ .com [NC]
RewriteRule。* - [F]
spammer \ .comという単語をブロックするドメインに変更してください。 \をドメインの任意のピリオドの前に置いてください。
リファラーに頼らないでください
refererをスプーフィングすることは可能であることを覚えておいてください。セキュリティのためにrefererだけを使用するべきではありません 。 他のセキュリティのアドオンとして使うこともできますが、ページに特定のユーザーだけがアクセスできるようにするには、 htaccessで パスワードを設定する必要があります 。