【问题标题】:Secure way to disable copy paste in blogger/website在博客/网站中禁用复制粘贴的安全方法
【发布时间】:2022-10-15 04:39:38
【问题描述】:

我有这个 Blogspot 使用博客, https://xiaogushiofficial.blogspot.com/2022/10/deliberately-contaminated-chapter-3.html 我已经输入了javascript来禁用右键单击和复制粘贴功能。

    <script language=javascript>
<!--
//Disable right mouse click Script
var message="Function Disabled!";
///////////////////////////////////
function clickIE4(){
if (event.button==2){
alert(message);
return false;}}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;}}}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}document.oncontextmenu=new Function("alert(message);return false")
// -->
</script>

还有这个javascript

js'></script><script type='text/javascript'> if(typeof document.onselectstart!="undefined" )
{document.onselectstart=new Function ("return false" ); } else{document.onmousedown=new Function ("return false" );
document.onmouseup=new Function ("return false"); } </script>

可悲的是,通过使用插件并禁用 javascript,我编写的这些功能很容易被禁用。

然后我去了另一个网站, https://chrysanthemumgarden.com/novel-tl/ks/ks-3/

该网站可以禁用复制粘贴,如果您能够绕过 javascript 并复制和粘贴,内容会有所不同。粘贴了一些随机文本。

如何实现这一点,有人有任何想法吗?我也想把这个安全性放在我的网站上,谢谢。

【问题讨论】:

    标签: javascript html copy-paste blogger


    【解决方案1】:

    据我所知,该网站正在使用两件事来防止复制粘贴:

    • 文本容器上的 user-select: none 样式

    • 以下代码行防止复制:

      $('#novel-content').bind('copy paste cut drag drop', function (e) {
        e.preventDefault();
      });
      

    粘贴了一些随机文本。

    由于.preventDefault,不会复制任何内容 - 剪贴板上的内容将保持您尝试复制之前的状态。

    如果您通过浏览器的开发人员工具删除这两个,复制文本就没有进一步的障碍。

    如果你想自己实现它,你需要做的就是上面的两个步骤——容器上的user-select: none,再加上一个copy事件监听器,它在事件上无条件地调用preventDefault

    也就是说,没有万无一失的方法可以完全阻止用户在您的网站上复制文本。最终,如果您将文本发送到客户端的计算机,客户端将能够对它做任何他们想做的事情,并且如果他们足够坚定,将能够绕过您拥有的任何保护机制。您可以改为发送图像,但也存在 OCR 工具。

    【讨论】:

    • 嗨,谢谢你的回答,但是这些代码放在哪里?在javascript中,它不起作用。抱歉,我对编码还是很陌生。
    • user-select: none 作为 CSS 规则放在要防止在其中选择文本的元素上。将 JavaScript 放入 &lt;script&gt; 标记中,并将选择器替换为您想要阻止复制的任何选择器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多