Warning: include_once(/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/menu.php): failed to open stream: No such file or directory in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 29

Warning: include_once(): Failed opening '/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/menu.php' for inclusion (include_path='.:/usr/local/php/7.4/lib/php') in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 29
 
トップページ >  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から呼び出されました。

Warning: Use of undefined constant HTTP_REFERER - assumed 'HTTP_REFERER' (this will throw an Error in a future version of PHP) in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 120

Warning: Use of undefined constant HTTP_REFERER - assumed 'HTTP_REFERER' (this will throw an Error in a future version of PHP) in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 121
http://www.confrage.com/php/access/referer/referer.php


Warning: Use of undefined constant HTTP_REFERER - assumed 'HTTP_REFERER' (this will throw an Error in a future version of PHP) in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 128

Warning: Use of undefined constant HTTP_REFERER - assumed 'HTTP_REFERER' (this will throw an Error in a future version of PHP) in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 128

Warning: Use of undefined constant HTTP_REFERER - assumed 'HTTP_REFERER' (this will throw an Error in a future version of PHP) in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 131
自画面から呼ばれました!



・このページ自身から自画面を呼び出す場合は「実行」ボタンを押します。




Warning: include_once(/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/side_bar.php): failed to open stream: No such file or directory in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 151

Warning: include_once(): Failed opening '/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/side_bar.php' for inclusion (include_path='.:/usr/local/php/7.4/lib/php') in /home/users/2/moriya-h5/web/confrage/php/access/referer/referer.php on line 151