小编典典

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

html

我正在尝试2个替代方法:

  • 忽略右键
  • 忽略ctrl+ Cctrl+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()不起作用。


阅读 733

收藏
2020-05-10

共1个答案

小编典典

你不能

您可以尝试阻止某些矢量(例如,使右键单击更加困难的黑客,拦截ctrl+
c,使其难以选择文本)……但是它们只能起到某种作用,并且不可能阻止所有矢量(编辑->复制) ?查看源代码??wget等…)。

如果您想保护内容免受技术含量较低的用户的侵害,则可以采用这些方法……但是,正如此处的注释所建议的那样,它们将使技术含量更高的用户感到沮丧。

如果您有必须保护的敏感内容,则可能需要考虑将其嵌入到Flash Blob或DRM的PDF中。这些仍然可以进行逆向工程,但是攻击者的智能程度将有所提高。

2020-05-10