web-dev-qa-db-ja.com

コピー貼り付けを無効にする方法(ブラウザ)

私は2つの選択肢を試しています:

  • 右クリックを無視
  • 無視する ctrlC、 ctrlA

これは私のコードです:

_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()は機能していません。

11
Rys

できません。

いくつかのベクトルをブロックしようとすることができます(右クリックをより困難にするためのハックなど) ctrl+c、テキストの選択が困難になります)…しかし、それらは一種の作業であり、すべてのベクトルをブロックすることは不可能です(編集->コピー?ソースを表示?wget?など…)。

あまり技術的でないユーザーからコンテンツを保護しようとしている場合、これらの方法は問題ないかもしれません…しかし、ここでのコメントが示唆するように、技術的なユーザーがいらだちます。

保護する必要がある機密コンテンツがある場合は、Flash blobまたはDRM化されたPDFに埋め込むことを検討してください。これらは引き続きリバースエンジニアリングすることが可能ですが、攻撃者は少しインテリジェントになります。

17
David Wolever

ユーザーの主要なコマンドを制御しようとする代わりに(一部のブラウザーはこれを悪意のあるコードとして検出する可能性があります)、ページ上のテキストの選択を無効にすることができます。これは、コメントに記載されているようにデータがコピーされるのを防ぐことはできません。

<!-- Disable Copy and Paste-->
<script language='JavaScript1.2'>
function disableselect(e) {
    return false
}

function reEnable() {
    return true
}

document.onselectstart = new Function (&quot;return false&quot;)

if (window.sidebar) {
    document.onmousedown = disableselect
    document.onClick = reEnable
}
</script>

これをあなたの中に置きます

    <head> </head> 

タグとユーザーはページ上のテキストを選択できません。

http://myblog-log.blogspot.com/2007/06/disable-copy-and-paste.html にあります

10
Rich

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.
7
Phibinary

テキストを選択できないようにしてみませんか?

.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トリックで見つけた記事を読むことができます。

https://css-tricks.com/copy-paste-the-web/

3
user3806549

クリップボードに入れるテキストを制御できます。

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();
});

https://developer.mozilla.org/en-US/docs/Web/Events/copy

3
dramus

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>
1
harkirat1892
$('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

0
user393274

ウェブサイトの真のコピー防止

http://www.securebit.xyz/

これをスパムまたは広告として宣言する前に、サンプルページにアクセスして証拠を確認してください。サンプルページからコンテンツをコピーしてみてください。

http://www.securebit.xyz/

詳細および購入情報については、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"

0
Prem Acharya