最初に 直リンをアクセス禁止にする .htaccess
<Files ~ "\.(hogehoge)$">
SetEnvIf Referer "https?://example\.com/" allow_
order deny,allow
deny from all
allow from env=allow
</Files>
この設定をしてはならない理由
昔はノートンインターネットセキュリティーが
リファラの送出を止めるオプションをはじめました。
メジャーな有料ソフトであるものの、そう多くの問題はありませんでした。
リファラの送出を止めると、正しいアクセスでも画像等が表示されなくなります。
しかし、今では多くのブラウザに隠しオプション的に設定できるようになっています。
直リンさせない方法 - 利用規約
文書が書ければ誰でもできる方法です。
辻褄があえば、自由にあなたの主張を訴えることができます。
:::note info
著作権法上、リンクは禁止行為でありませんが、
利用規約に、直リンだめ!って書いておけば
された場合に民事訴訟であればもっていくこともできます
ただし、よほどのことをされないと弁護士さんが相手してくれませんので、そこはご注意
:::
直リンさせない方法 - HTML等を圧縮する
改行していないHTMLは少し読む気を失せさせますが、URLを抽出するのが不可能になるわけではありません。
直リンさせない方法 - 暗号化をしてJavaScriptでHTMLを表示させる
暗号化をしたからといって、いずれは復号されますが、
解析が大変な構造にしておけば、やる気を更に失せさせます。
直リンさせない方法 - スクリプトで右クリック等を禁止する
新しいタブを開くも阻止してしまいますが、主な目的は画像のURLのコピーの阻止、ブラウザソースの閲覧阻止になります。
詳しくはこちらで
view-source: もブロックする
より強力なブラウザソースの閲覧阻止になります。
詳しくはこちらで
HTML等コンテンツのみキャッシュの恩恵を受けられません
上記記事はそのまま使わず、数秒間使用するcookieを利用すると良いみたいです。
一応Windows 11でもInternet Explorerが動作しますが、
Internet Explorerのソース表示まではブロックできません
完全に動的に画像を出力する
HTML出力時に1分間~3分間だけ有効なcookieを発行し、
有効なcookieであればスクリプトが画像を出力する方法もあります。
この方法であれば100%直リンをブロックすることができます。
ただし、サーバーは過剰に負荷がかかり、キャッシュの恩恵を受けないので注意