Carpe Diem

備忘録。https://github.com/jun06t

特定のファイルへのアクセス禁止(リファラ)

以前はリファラではない方法でアクセス制限を書きましたが、今回はリファラを使用します。 前に書いたように、.htaccessは極力使用しないというのがApacheの方針のようなので、それに基づいて今回もディレクティブ設定を使用します。 ではいつものように $ cd /etc/apache2/sites-available/ $ emacs -nw default-ssl 以前は         Alias /dav "/var/www/webdav"         <Directory "/var/www/webdav">                 SSLRequireSSL                 Order deny,allow                 Allow from all                 #AddType application/x-httpd-php .zip                 <Files ~ "\.zip$">                        deny from all                 </Files>         </Directory> だったと思いますが、今回はそれに次の設定を加えます         SetEnvIf Referer example\.com authoritative_site         SetEnvIf Referer example\.jp authoritative_site         <Files *.jpeg>                        order deny,allow                Deny from all                Allow from env=authoritative_site         </Files> ポイントはexample\.comexample\.jpの部分で、ここには自分のサイトを書くわけですが「.」ドットの前にエスケープ文字「\」をいれてください。上の記述のように、リファラー元を複数指定もできます。 複数ファイルに対してこれを使用したい場合は次のように書きます。 <FilesMatch "\.(gif|jpe?g|png)$">     order deny,allow     Deny from all     Allow from env=authoritative_site </FilesMatch> 以上です。 ただ以前も述べたように、リファラは偽装可能であり、それに対する有効な対処法は無いので気休め程度かもしれません。まぁそれでも効果は多少あると思います。 ソース: Refererを使った画像ファイルへの直リンク禁止