IT二刀流にはプロモーションが含まれています。

Webサイトでコピペを禁止するプログラムコード

私自身はあまりおすすめしない「コピペ禁止サイト」ですが、よく方法を聞かれます。

一定の需要はあるんだなと感じますので、プログラムコードを紹介します。

「右クリック」も「コピー(Ctrl + c)」も「F12(デベロッパーツール)」も防ぐ強固な手法です。

100%防ぐことはできませんが、90%くらいは対策できると思います。

右クリックを禁止するコード

コンテキストメニューといいますが、メニューの中に「コピー」や「ページのソースを表示」などがありますが、この項目を選択できないようにします。

bodyタグにオプションoncontextmenuを設定します。

<body oncontextmenu="return false">

JavaScriptのコードは下記です。

document.oncontextmenu = () => {
  alert('右クリック禁止');  // 右クリック時にアラートを出す
  return false;
}

右クリック時にアラートを出すことができます。

文字を選択させない

コピーをするときにコピー範囲を選択すると思います。

範囲選択を禁止する方法です。

bodyタグにonmousedownを設定します。

<body onmousedown="return false">

CSSで対策するなら下記になります。

body {
  user-select: none;
}

これでコピー範囲を選択することができなくなるので、コピー対策になります。

コピーの禁止

コンテキストメニューからコピーを選んだり、「Ctrl + C」でのコピーを禁止する対策です。

bodyタグにoncopyを設定します。

<body oncopy="return false">

JavaScriptのコードは下記です。

document.oncopy = () => {
  alert('コピーはダメです');  // 「Ctrl + c」コピー時にアラートを出す
  return false;
}

F12を禁止する

ChromeやEdgeなどのブラウザを使用時に「F12」を押すと開発者ツール(デベロッパーツール)が開きます。

HTMLが表示されるのでそこからコピーする強者も存在します。

JavaScriptで「F12」も対策します。

document.addEventListener('keydown', e => {
  if (e.keyCode == 123) e.preventDefault(); // 123:F12キーのコード、e.keyでF12を指定もあり
});

押したキーを判定してF12なら無効にするJavaScriptです。

同様のやり方で「Ctrl + U」の「ソースを表示する」も対策できます。(Ctrlキーを無効にする)

回避策

JavaScriptを無効にされるとコピーできてしまいます。

CSSの「user-select: none;」は効果あるので範囲選択ができないのでコピーは面倒ですが。

CSSも無効にされると打つ手なしです。

ただ、JavaScript無効もCSS無効も面倒くさいので、そこまでしてコピーしたいのかは微妙ですが。。

まとめ

当サイトではコピペを禁止にはしません。

ただし転載を許可しているわけではありません、禁止です。(ここ重要)

プログラムコードを1文字ずつ手打ちするのも大変なのでコピーブロックはしないです。

優しさです、私はバファリンの次にやさしいのです。

誰もがコピーして参考にしたくなる、そんな技術サイトになればいいなと思います。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

マイナビクリエイター

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集