禁用复制和粘贴

Disable copy and paste

我使用了以下代码来禁用复制粘贴

onpaste="return false;" oncut="return false;" oncontextmenu="return false;" oncopy="return false;".

一切正常。我已经在 Google Chrome 中安装了 "easy-copy" 扩展,并且仍然可以复制粘贴。有没有一种方法也可以禁用扩展程序的复制和粘贴?

我试图捕获所有事件以查看即使是该扩展程序也会触发粘贴但它甚至不会触发任何粘贴。

对于事件捕获,我在 chrome 控制台中使用了以下代码:

monitorEvents([=11=])

简而言之,如何禁用浏览器扩展的复制粘贴功能?为什么我需要这个?我有一个聊天应用程序,有些人将粘贴复制到垃圾邮件。

嗯,这里只是一些一般性的想法。试图阻止这种操作永远不会完全奏效,因为浏览器的行为不同,最终无论您做什么都可以规避这种行为。

但就让它变得更尴尬而言,为什么不限制他们在给定时间范围内按下提交按钮的频率。或者限制文本框的最大文本大小。更好的是,根据之前对服务器的评论限制它,这将为您提供没有客户端验证的安全性。任何客户端验证只能阻止尝试,而不能真正阻止它。

实际上,您可以做的另一件事是使用拦截 javascript 函数来检查重复的文本。

In short, how to disable copy paste from browser extension?

我认为在页面 Javascript 中不可能做到这一点,因为扩展程序 运行 的信任级别高于网页。他们可以做网页不能做的事情,比如改变浏览器自身的行为。

我认为处理此问题的最佳方法是服务器端。给每个 post 一个垃圾邮件分数,该分数由相关因素决定,例如来自同一用户的 posts 的频率、posts 中的重复内容、仅外部链接、其他用户的反对票...如果 post 超过垃圾邮件分数限制,请不要将其显示给其他用户。如果您想让垃圾邮件发送者更难确定他们的垃圾邮件是否真的通过了,您仍然可以亲自向 post 用户展示它。

对所有用户禁用复制粘贴对我来说似乎很麻烦。

Testing it on Chrome

您可以尝试使用

* {
  user-select: none;
  -webkit-user-select: none;/*IE,etc*/
  -moz-user-select: none; /*Mozzila Firefox*/
}
<h2>Copy Me if you Can </h2>

在我这边,这个有效,尝试将其删除 user-select: none;,看看是否有任何效果。