トップページ >  PHP >  リファラーの確認
初版2008/11/20: 最終更新日2008/11/20
リファラーの確認
目次
リファラーの確認
サンプルコード
サンプル
リファラーの確認
Webブラウザで直前に閲覧していたページのURL情報を「リファラー」といいます。

PHPでは、スーパーグローバル変数「$_SERVER[HTTP_REFERER]」、
あるいはグローバル変数「HTTP_SERVER_VARS[HTTP_REFERER]」を使うことにより、
そのPHPファイルがどのファイルから呼び出されたかを知ることができます。

呼び出し元のURLが必ず同じになる仕組みになっているなら、
呼び出し元のURLとリファラーを比較することによって不正アクセスかどうかを確認できます。

以下がサンプルになります。

サンプルコード
(php部)
<?php
print "このPHPファイルは、次のURLから呼び出されました。";
// リファラーを取得して表示する。
if( $_SERVER[HTTP_REFERER] != NULL ){
	print $_SERVER[HTTP_REFERER];
}
else{
	print "※URL(リファラー)が取得できませんでした。";
}

// 呼び出し元のURLと比較して不正アクセスかどうか調べる。
if ($_SERVER[HTTP_REFERER] == "http://www.confrage.com/php/index.html" 
|| $_SERVER[HTTP_REFERER] == "http://www.confrage.com/php/") {
	print "正規ルートから呼ばれました!";
}
else if( $_SERVER[HTTP_REFERER] == "http://www.confrage.com/php/access/referer/referer.php" ){
	print "自画面から呼ばれました!";
}
else{
	print "不正アクセスです!";
}
?>
(html部)
<form method="post">
	<input type="submit" value="実行">
</form>
サンプル
このPHPファイルは、次のURLから呼び出されました。