编程语言
首页 > 编程语言> > javascript – 如何禁用复制粘贴(浏览器)

javascript – 如何禁用复制粘贴(浏览器)

作者:互联网

我正在尝试两种选择:

>忽略右键单击
>忽略ctrl C,ctrl A.

这是我的代码:

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,难以选择文本)……但它们只会有点工作,并且不可能阻止所有向量(编辑 – &gt ;复制?查看源代码?wget?等…).

如果您试图保护您的内容免受技术较少的用户的影响,这些方法可能没问题……但正如这里的评论所暗示的那样,它们会让更多技术用户感到沮丧.

如果您的敏感内容必须受到保护,您可能需要考虑将其嵌入Flash blob或DRM’dPDF中.这些仍然可以进行逆向工程,但需要一个稍微聪明的攻击者.

标签:html,javascript,jquery,keyboard-shortcuts
来源: https://codeday.me/bug/20190917/1810040.html