私は2つの選択肢を試しています:
これは私のコードです:
_function noMenu() {
return false;
}
function disableCopyPaste(Elm) {
// Disable cut/copy/paste key events
Elm.onkeydown = interceptKeys
// Disable right click events
Elm.oncontextmenu = function() {
return false
}
}
function interceptKeys(evt) {
evt = evt||window.event // IE support
var c = evt.keyCode
var ctrlDown = evt.ctrlKey||evt.metaKey // Mac support
// Check for Alt+Gr (http://en.wikipedia.org/wiki/AltGr_key)
if (ctrlDown && evt.altKey) return true
// Check for ctrl+c, v and x
else if (ctrlDown && c==67) return false // c
else if (ctrlDown && c==86) return false // v
else if (ctrlDown && c==88) return false // x
// Otherwise allow
return true
}
_
そしてこれは私のHTMLです:
_<body class="node88" oncontextmenu="return noMenu();" onkeydown="return disableCopyPaste();">
_
noMenu()
関数は機能していますが、disableCopyPaste()
は機能していません。
できません。
いくつかのベクトルをブロックしようとすることができます(右クリックをより困難にするためのハックなど) ctrl+c、テキストの選択が困難になります)…しかし、それらは一種の作業であり、すべてのベクトルをブロックすることは不可能です(編集->コピー?ソースを表示?wget
?など…)。
あまり技術的でないユーザーからコンテンツを保護しようとしている場合、これらの方法は問題ないかもしれません…しかし、ここでのコメントが示唆するように、技術的なユーザーがいらだちます。
保護する必要がある機密コンテンツがある場合は、Flash blobまたはDRM化されたPDFに埋め込むことを検討してください。これらは引き続きリバースエンジニアリングすることが可能ですが、攻撃者は少しインテリジェントになります。
ユーザーの主要なコマンドを制御しようとする代わりに(一部のブラウザーはこれを悪意のあるコードとして検出する可能性があります)、ページ上のテキストの選択を無効にすることができます。これは、コメントに記載されているようにデータがコピーされるのを防ぐことはできません。
<!-- Disable Copy and Paste-->
<script language='JavaScript1.2'>
function disableselect(e) {
return false
}
function reEnable() {
return true
}
document.onselectstart = new Function ("return false")
if (window.sidebar) {
document.onmousedown = disableselect
document.onClick = reEnable
}
</script>
これをあなたの中に置きます
<head> </head>
タグとユーザーはページ上のテキストを選択できません。
http://myblog-log.blogspot.com/2007/06/disable-copy-and-paste.html にあります
Javascript:
//disable mouse drag select start
document.onselectstart = new Function('return false');
function dMDown(e) { return false; }
function dOClick() { return true; }
document.onmousedown = dMDown;
document.onclick = dOClick;
$("#document").attr("unselectable", "on");
//disable mouse drag select end
//disable right click - context menu
document.oncontextmenu = new Function("return false");
//disable CTRL+A/CTRL+C through key board start
//use this function
function disableSelectCopy(e) {
// current pressed key
var pressedKey = String.fromCharCode(e.keyCode).toLowerCase();
if (e.ctrlKey && (pressedKey == "c" || pressedKey == "x" || pressedKey == "v" || pressedKey == "a")) {
return false;
}
}
document.onkeydown = disableSelectCopy;
//or use this function
$(function () {
$(document).keydown(function (objEvent) {
if (objEvent.ctrlKey || objEvent.metaKey) {
if (objEvent.keyCode == 65 || objEvent.keyCode == 97) {
return false;
}
//}
}
});
});
CSS:
//disable selection through CSS for different browsers
#document, #ctl00_MasterPageBodyTag{
user-select: none;
-ms-user-select: none;
-o-user-select:none;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-webkit-touch-callout: none;
}
//where #document is the div for which select needs to be disabled and #ctl00_MasterPageBodyTag is the id of the body tag.
テキストを選択できないようにしてみませんか?
.unselectable {
-webkit-user-select: none; /* Chrome all / Safari all */
-moz-user-select: none; /* Firefox all */
-ms-user-select: none; /* IE 10+ */
user-select: none; /* Likely future */
}
/*Mobile*/
-webkit-touch-callout: default /* displays the callout */
-webkit-touch-callout: none /* disables the callout */
私もすぐにこの回答を編集します。私は同じ問題を見ています。しかし、私は上書きする方法に関するいくつかの情報を見つけました。ユーザーがクリップボードをコピーしたときに上書きされるJS関数を書いています。とにかく、完了したらそれを投稿します。まだ実験中です。私がcssトリックで見つけた記事を読むことができます。
クリップボードに入れるテキストを制御できます。
document.addEventListener('copy', function(e) {
e.clipboardData.setData('text/plain', 'Please do not copy text');
e.clipboardData.setData('text/html', '<b>Please do not copy text</b>');
e.preventDefault();
});
CSSを使用してテキストを選択できないようにすることができるため、テキストがコピーされる可能性はありません。
以下のCSSとJSを本文に追加します。
CSS:
<style>
.unselectable
{
-moz-user-select:none;
-webkit-user-select:none;
cursor: default;
}
html
{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
</style>
JS:
<script id="wpcp_css_disable_selection" type="text/javascript">
var e = document.getElementsByTagName('body')[0];
if(e)
{
e.setAttribute('unselectable',on);
}
</script>
$('some.selector').bind('cut copy paste', function (e) {
e.preventDefault();
});
これは、Chrome、Firefox、Safari、IE11、およびEdgeで機能します。私のテストでは、<div contenteditable>
。ソース記事:
https://www.codexworld.com/disable-mouse-right-click-cut-copy-paste-using-jquery
ウェブサイトの真のコピー防止
これをスパムまたは広告として宣言する前に、サンプルページにアクセスして証拠を確認してください。サンプルページからコンテンツをコピーしてみてください。
詳細および購入情報については、websecurecontent @ protonmail.comまでご連絡ください。
利点
すべての言語(英語、ヒンディー語、タミル語、マラヤーラム語など)のサポートWordpress、Drupal、Joomlaなどを含むすべてのCMSのサポートコンテンツはページソースからコピーできません。コンテンツは、開発者ツールを使用してコピーできません。ブラウザーのアドオン/拡張機能を使用してコンテンツをコピーすることはできません。 javascriptを無効にして内容をコピーすることはできません。
特定の要素でCOPYおよびPASTEを無効にする単純なHTMLを探している場合は、以下のコードを使用してください。 bodyタグに配置することで、ページ全体をブロックすることもできます。
<div oncontextmenu="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"></div>
oncontextmenu = "return false" onkeydown = "if((arguments [0] || window.event).ctrlKey)return false"