如何有选择地禁用粘贴阻止程序


37

随着越来越多的网站在电子邮件和密码字段中添加一种或另一种类型的粘贴阻止代码,并且越来越多的人使用密码管理器,这两种冲突越来越多。

虽然有一些扩展程序,例如“ 不要为Chrome浏览器粘贴粘贴 ”或“ 禁用剪贴板操作禁用”以及对FireFox 的dom.event.clipboardevents.enabled偏好设置,但所有这些扩展程序都有一个问题,即网站可能有正当理由onpaste(例如Google文档富文本格式)支持或Facebook的链接处理),因此我不希望该功能完全禁用。

†转到about:config并搜索,dom.event.clipboardevents.enabled然后双击以进行切换。

另一个选择是用令人讨厌的代码手动破解找到的每个页面,但这很麻烦,并且并非在每种情况下都有效(例如,使用此页面)。关于此操作的一种建议可以在Internet页面上的Martin Brinkmann的“将密码粘贴到阻止的表单字段中”中找到。

理想情况下,我只是想说出“重新启用此页面上所有字段上的粘贴”作为该页面的按钮或上下文菜单选项,那么有什么办法可以做到这一点?

我发现的最接近的东西是Derek Prior 在烦人的Web窗体上重新启用密码粘贴功能,但这使用了与手动方法相同的方法,因此无法处理我遇到问题的特定页面,并且我不知道有多少个页面其他方法可能可用。


这些网站是否还会阻止浏览器的内置密码保存(例如firefox)?也许会做任何事情?
Xen2050

1
Don't fuck with paste确实允许您选择要禁用操作的特定网站
Ruslan

感谢@Ruslan,我已验证此扩展程序现在可以解决我的问题,并添加了一个答案来反映这一点。
Mark Booth

Answers:


11

具有此粘贴阻止程序功能的Web窗体可以通过使用文本框的onpaste属性或通过JavaScript或jQuery绑定事件来声明性地实现它

与您所说的相反,我能够获得Derek Prior的小书签在Chrome(Windows 上为Ver 39)上具有在密码文本框中具有属性(type =“ password” onPaste =“ return false”)的页面的工作

您也可以尝试Chris Bailey的小书签,该小书签可打破通过JavaScript实现的粘贴阻止程序。

这有点麻烦,但是另一种选择是暂时禁用该页面的JavaScript,这将关闭JavaScript粘贴阻止程序。对于Chrome,打开开发工具的键盘快捷键是F12,进入“设置”面板的快捷键是F1,在“常规”部分中,您将找到“禁用JavaScript”复选框。

在此处输入图片说明


谢谢mvmark。进一步调查,看来我在使用其他方法时遇到问题的特定页面。我已经更新了我的问题,我认为可能需要一个堆栈溢出问题来提出可能方法的确定列表,因此可以编写一个涵盖所有方法的书签。
Mark Booth 2014年


@MarkBooth在Chrome中,您可以暂时禁用该页面的JavaScript,这反过来将使用F12-F1快捷方式关闭JavaScript粘贴阻止程序。请在上方查看我的最新答案。
mvark

1
谢谢mvark,这是Chrome的绝佳解决方法。对于Firefox,我已经安装了“ 禁用剪贴板操作”并固定了“ 附加组件管理器”,因此可以轻松启用或禁用它。
Mark Booth

1
@annan与存档文章链接更新死链接web.archive.org/web/20170908125754/http://prioritized.net/blog/...
mvark

7

对于使用jquery的页面(基本上是所有网页)。您可以将以下javascript网址粘贴到地址栏中

javascript:void($('input').attr('onpaste', ''));

2

1 .---这可能会使至少几个站点的问题消失: 投诉,并让这些站点知道它们正在破坏,而不是增强用户的安全性。 也许他们只是还没想通...。

这是我刚从克里斯·贝利(Chris Bailey)的博客中复制的文本,其中包含他的书签。(提示:将此保留在书签中)
->我建议您可以将以下部分内容发送到任何需要重新培训的网站:

在烦人的Web窗体上重新启用密码粘贴(v2)

安全性不能轻描淡写,因此最近几天,我变得越来越沮丧,因为一些公司坚持要求禁用将密码粘贴到登录表单中的功能。宁可提高安全性,也不能使用KeePass,[LastPass]或1Password等密码管理器来破坏我们这些人,因为不能随意将漂亮的长期随机生成的密码粘贴到密码字段中。相反,用户被迫手动输入密码,这将促进使用较短的密码(从而削弱安全性)。

我发现这种情况发生在Apple,Vodafone和Nestlé等公司。

值得庆幸的是,我找到了一个书签形式的解决方案。最初的想法来自Derek Prior的博客文章“在烦人的Web表单上重新启用密码粘贴”。不幸的是,他的方法只是直接删除了onpaste属性,但是如果网站使用的是事件处理框架(如jQuery),则该方法将无效。我已经采用了Derek的原始代码并对其进行了修改,以使其更好地与这些框架一起使用。

2 .-->尝试在此处使用 Chris的小书签,但当页面未使用JQuery时,仅在Chrome,Opera或Vivaldi中可用

3 .-->让某人为所有浏览器编写一个全面的插件。 首先,以下是他的评论和来自Chris页面的参考资料:

要使用小书签,请将以下链接拖动到浏览器的书签栏。

兼容性说明:由于很难在Firefox中读取剪贴板数据,因此Bookmarklet仅在Chrome和Safari中可用。尽管我没有Windows系统可以对此进行测试,但可以轻松地将其扩展为包括IE。还可以通过chrome扩展名的形式来解决此问题(例如,尽管我尚未测试它们,但粘贴了ITC密码和允许粘贴到字段文本),并且我认为其他浏览器也可以使用类似的插件。我个人喜欢小书签的简单性。如果您想使用该代码,请将该代码托管在pastebin上:
(ED:他的来源也在其摘录的链接页面上也列出来。)


2

请注意,某些浏览器会静默删除javascript:部分代码。因此,请确保地址栏中的代码与下面的代码完全相同(手动键入javascript:),否则它将无法正常工作

对于您在问题中提到的特定网站,请使用以下代码

javascript:void($('#pwd, #pwd2').unbind('paste'));

对于几乎所有其他网站,将以下JavaScript代码粘贴到地址栏中

javascript:void(document.querySelectorAll("input").forEach(function(element){element.setAttribute("onpaste","")}));

1
您是否在我遇到问题的页面上尝试了您的建议?我刚刚做过,当您尝试粘贴到密码字段时,它仍然弹出“请输入密码”对话框。
Mark Booth

对于网站而言,使用下面的代码javascript:void($('#pwd, #pwd2').unbind('paste'));
托马斯·埃切韦里巴伦西亚

我已使用适用于该特定网站的代码段(上面的先前注释)更新了答案。但这可能在其他任何地方都行不通
Tomas Echeverri Valencia

Chrome会删除javascript:您粘贴在地址栏中的部分代码。您需要确保您运行的代码段与我上面分享的代码段完全相同,否则将无法正常工作
Tomas Echeverri Valencia

1
我已经更新了答案,所以人们知道javascript:粘贴到地址栏中时需要手动添加
Tomas Echeverri Valencia

0

看来,自从我问了这个问题以来,雅各布·斯旺纳(Jacob Swanner)最初的《不要用粘贴扩展名他妈的》就有了很大的改进,而亚伦·拉伊姆斯特(Aaron Raimist)则将其移植到了Firefox上

现在两者都允许在每个站点上启用此功能,尽管它不能自动解决我提到的有问题的petplanet站点上的问题,但是手动启用它现在确实可以解决该站点上的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.