Webサイトの内容によってはブラウザに直接URLを入力してアクセスされたくないページや外部のサイトからリンクされたくないページが存在する場合があります。 SetEnvIf Referer を設定すると指定ディレクトリ以下のページ(画像等を含む)への直リンクを禁止することが可能です。 OS: RedHat EL 6.5(64-bit) Apache: 2.2.15
■httpd.confの最下行に追加
[root@centos65 ~]# tail /etc/httpd/conf/httpd.conf # Direct Link ban <Directory "/var/www/html/direct_ng"> SetEnvIf Referer "^http://192.168.77.149/" allow_ref # External Links ban # SetEnvIf Referer "^$" allow_ref order deny,allow deny from all allow from env=allow_ref ErrorDocument 403 /403.html </Directory> [root@centos65 ~]#SetEnvIf Referer の URLは「http://」から書き、先頭には半角で「^」(ハット)記号を加えた方が、アクセス制御レベルが高まります。
今回はコメントアウトしていますが、URL直入力は許可し外部サイトからのリンクを禁止する場合は、URLの部分を "^$" と記述します。
直リンクされた場合はステータスコード403が返るので、それに対応するページを準備します。
■動作確認
ブラウザに直接URLを入力して http://192.168.77.149/direct_ng/ にアクセスすると 403.html ページが表示されます。
403.html は5秒後に direct_ok ページに自動遷移するように設定しています。
http://192.168.77.149/direct_ok/ ページからリンクすれば http://192.168.77.149/direct_ng/ ページが表示されます。
■直リンクされたときのアクセスログ
[root@centos65 ~]# tail -f /var/log/httpd/access_log 192.168.77.13 - - [02/Apr/2014:23:33:04 +0900] "GET /direct_ng/ HTTP/1.1" 403 370 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36" 192.168.77.13 - - [02/Apr/2014:23:33:09 +0900] "GET /direct_ok/ HTTP/1.1" 200 338 "http://192.168.77.149/direct_ng/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36" 192.168.77.13 - - [02/Apr/2014:23:33:37 +0900] "GET /direct_ng/ HTTP/1.1" 200 284 "http://192.168.77.149/direct_ok/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"
■テストページhtmlサンプル
## 直リンクOKページ
[root@centos65 ~]# cat /var/www/html/direct_ok/index.html <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Direct Link OK</title> </head> <body bgcolor="#33ffcc"> <h1>Direct Link OK</h1> <h2>/var/www/html/direct_ok/index.html</h2> <a href="/direct_ng/">direct_ng</a><br /> </body> </html> [root@centos65 ~]#
## 直リンクNGページ
[root@centos65 ~]# cat /var/www/html/direct_ng/index.html <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Direct Link NG</title> </head> <body bgcolor="#ff6699"> <h1>Direct Link NG</h1> <h2>/var/www/html/direct_ng/index.html</h2> <a href="/direct_ok/">direct_ok</a><br /> </body> </html> [root@centos65 ~]#
## 403ページ
[root@centos65 ~]# cat /var/www/html/403.html <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="refresh" content="5; url=/direct_ok/"> <title>Forbidden</title> </head> <body bgcolor="#cccccc"> <h1>Forbidden</h1> <p>/var/www/html/403.html</p> <p>This page is not allowed to be Direct Link.</p> <a href="/direct_ok/">direct_ok</a><br /> </body> </html> [root@centos65 ~]#
こちらの情報が何かのお役に立てましたら幸いです。サイト継続ご協力のほどお願い申し上げます。m(_ _)m
0 件のコメント:
コメントを投稿