未经明确授权,请勿让网站覆盖 Firefox 中的剪贴板

未经明确授权,请勿让网站覆盖 Firefox 中的剪贴板

显然,网站可以使用 JavaScript 剪贴板 API 覆盖剪贴板,而无需向用户发出任何通知——正如 Reddit 帖子中所讨论的那样——这有点吓人。

有没有办法禁用程序剪贴板访问,除非用户通过扩展或某些配置设置授予权限?理想情况下,我正在寻找类似网站如何需要权限才能自动播放或访问音频或摄像头的东西。但如果这不可能,JavaScript Greasemonkey/Violentmonkey 脚本也可以阻止剪贴板访问并通知我任何剪贴板访问尝试。

在 Firefox 文档中,“MDN 剪贴板 API“ 它指出:

“对剪贴板内容的访问受权限 API 控制:当页面处于活动选项卡中时,会自动授予剪贴板写入权限。必须请求剪贴板读取权限,您可以通过尝试从剪贴板读取数据来执行此操作。”

禁用剪贴板 API 访问并不能安全地将命令复制粘贴到 shell 中,因为你仍然可以让用户使用 CSS 复制意外的文本,但这是一个开始。

答案1

Firefox 有一个about:config设置叫做dom.event.clipboardevents.enabled,它允许 Firefox 发出oncopyoncutonpaste事件,网站可以使用这些事件来修改剪贴板。您可以将其设置为false以禁用所有网站对剪贴板 API 的访问;您不能使用它逐个授予网站访问权限。将其设置为 会false破坏某些功能,例如在 Discord 上粘贴图像。

此外,网站可以使用已弃用的Document.execCommand() copy和命令。可以通过将首选项设置为来cut禁用对此的支持。about:configdom.allow_cut_copyfalse

还有一项about:config设置dom.events.asyncClipboard.dataTransfer,默认情况下处于禁用状态。如果启用,它将允许网站异步读取剪贴板(在获得用户许可后),并随时写入剪贴板,而无需等待oncopy//oncut事件onpaste

相关内容