簡単に画像を「右クリック&ドラッグ&直接リンク」させない方法・対策
WordPress(ワードプレス)で作成している管理サイトで、/wp-content/uploads/ 以下の階層に保存されているフォルダの写真が、直接表示されていることがわかりました。
写真・画像に関しては、知識がある人であれば簡単に保存できるので、ある程度は致し方ないかな。とは思っていたのですが、権利のある画像を使用しているサイトや、フォトギャラリーとしてアップしている画像に関しては、やっぱり極力不正利用はされないようにしたいですよね。
ってことで、ほんの少し対策しておけば一般のユーザーの方からの不正利用やダウンロード等はかなり防げるかと思いますので、今回は『簡単に画像を「右クリック&ドラッグ&直接リンク」させない方法・対策』です。
目次
簡単に画像を「右クリック&ドラッグ&直接リンク」させない方法
プラグインを入れたら簡単やん!という方もおられるかと思いますが、プラグインを複数入れることで管理が大変にもなりますし、競合することも多々あり、トラブルの原因となることもありますよね。ですのでプラグインを使わなくてすむのであれば、極力使わない方がいいと思っています。
ということで、ここでもプラグインを使わず進めていきます。
ちなみに現在は以下の『1』と『2』を併用した対策をしていますが、環境は人それぞれ違うかと思いますので、以下ご参照の上、適宜自分の環境にあった記述にしてくださいね。
1 右クリック保存対策
まずはJavaScriptを使って右クリックできないようにする方法です。
<script type="text/javascript">
document.addEventListener('contextmenu', function (e) {
if (e.target.tagName === 'IMG') {
e.preventDefault();
}
});
</script>
これをWordPressで読み込んでいるjsファイルなり、footer.phpファイルの閉じる直前に記述するなりすれば、右クリックで画像を保存はできなくなります。
ちなみにこの記述は、ページ読み込み後に実行されるようにするなど、なるべく最後の方に記述することをオススメします。
2 ドラッグ保存対策
上記の設定で画像は右クリックできないようになったので、問題解決かな?と思っていたのですが、
実は簡単にドラッグしてパソコン内にドラッグできちゃったんですよね。
といわけで、以下のcssを追記します。
img {
-webkit-user-drag: none; /* Safari・一部のChromeで必要 */
-webkit-touch-callout: none; /* iOS長押し対策 */
user-drag: none; /* 仕様上はこれが標準だが、まだ対応ブラウザが少ない 20250705時点 */
}
これで画像をドラッグして保存できなくなります。
上記は現在(20250705時点)の最新バージョンなのですが、モダンブラウザの進化や、iOSでの長押しで画像保存できてしまうなど、トラブルにちょくちょく直面したりしていたので、少しづつバージョンアップしています。
以下もクリックをできないようにするものですが、これだと aタグのリンクで画像を使えないので、画像にhoverしてもクリックできない!できても最低限のaタグの高さや余白のあるスペースでしか反応しない!ので、削除しました。
img {
pointer-events: none;
}
ただ個別に設定等すれば、使いようによっては使えるかもですね。
3 直接リンク対策
上記設定をしても、一応リンクを直接打てば、画像は普通に表示されます。
ですので、念の為画像の不正利用等の対策のために、/wp-config/uploads/ 以下にある画像ファイルは、他の外部サイトからの直接リンクできないようにします。
まずは、 /wp-content/uploads/ディレクトリに.htaccessファイルを作成し、以下の記述をコピペします。
<FilesMatch "\.(jpg|jpeg|png|gif|avif|webp)$"> SetEnvIf Referer "^http(s)?://(www\.)?3stars\.life" local_referrer Order Allow,Deny Allow from env=local_referrer # セキュリティ強化のためのヘッダーを追加 Header set X-Content-Type-Options "nosniff" </FilesMatch>
これでOKです!と言っていたのですが、SNSでサムネが表示されていないことが確認されましたので、以下追記します。
追記:2024/8/4
上記の記述を追加すると、SNSでシェアされるはずのサムネイルが表示されなくなったので、それを避けるため、この対策(記述)は最終的にオフにしました。
冷静にに考えたら、外部サイトからの直接リンクをできないようにしたので、そらそうなりますよね。
というわけで、これはSNSとかでシェアされない、できなくても問題ない時に記述してくださいね。
併用して対策を
WordPressで制作したサイトで、画像を表示しつつ、右クリック等での保存を防ぐ方法は他にもいくつかありますが、完全に思い通りに画像のダウンロードを防ぐことは現状ではできません。どんなに対策をしても、この記事を見てるようなWebデザイナーやプログラマーの方等、知識をもった方であれば簡単に画像なんて保存できてしまいますよね。知識がない方であっても、スクリーンショットすることもできますしね。
また、3 直接リンク対策に追記したように、SNSでサムネイルが表示されないなどの弊害もでてきます。
ですので、このような対策をよく考えて併用しておくことで、画像をダウンロード保存するのに一手間も二手間もかかり、簡単に画像を保存できない、という状況を作ることができ、一定の効果は見込めますので、ぜひ不正利用の防止に役立ててください!
Google AdS
関連記事
-
-
WP-OGPの設定方法:WPの投稿記事のサムネイルをFBできちんと表示させる
この記事は前回からの続きなのですが、、、実は1年経ってます。。下書きを途中まで書いてたのですが、あまりにも大変で途中で終…
-
-
OGPをWP-OGPのプラグインを改変して設定する!!2015年のOGP最新設定
今度こそ。。。OGPの設定で何時間、というより何日?何ヶ月?かかってるんや。。。という感じなのですが、もう最初の投稿から…
-
-
WordPressのメニューを、footer等用に作成して追加する方法
WorPressのデフォルトでは、gnavi(グローバルナビ)にメニューを追加し、表示させることはできますが、foote…
-
-
IcoMoonでSVGスプライトを作ってSVGアイコンを使う方法:WordPress & html での設定方法
今までSVGアイコンはきちんと把握せず使ってきたので、少々トラブルがあっても『頻繁に使う訳ではないし、とりあえず使えてた…
-
-
『reCAPTCHA v3』を問い合わせページのみ&左側に表示させる方法:その2
前回書いた『reCAPTCHA v3』を問い合わせページのみ&左側に表示させる方法:その1の続きです! 今…



