我正在尝试2个替代方法:
ctrl
C
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()不起作用。
noMenu()
disableCopyPaste()
你不能
您可以尝试阻止某些矢量(例如,使右键单击更加困难的黑客,拦截ctrl+ c,使其难以选择文本)……但是它们只能起到某种作用,并且不可能阻止所有矢量(编辑->复制) ?查看源代码??wget等…)。
c
wget
如果您想保护内容免受技术含量较低的用户的侵害,则可以采用这些方法……但是,正如此处的注释所建议的那样,它们将使技术含量更高的用户感到沮丧。
如果您有必须保护的敏感内容,则可能需要考虑将其嵌入到Flash Blob或DRM的PDF中。这些仍然可以进行逆向工程,但是攻击者的智能程度将有所提高。