在 HTML 输入字段中禁用复制粘贴? [复制]

Posted

技术标签:

【中文标题】在 HTML 输入字段中禁用复制粘贴? [复制]【英文标题】:Disable copy paste in HTML input fields? [duplicate] 【发布时间】:2012-09-30 03:00:03 【问题描述】:

可能重复:Disable Copy/Paste into html form using javascript

My bank 似乎已禁用用户名和密码的复制粘贴。

它是如何完成的?它会提高安全性吗?

【问题讨论】:

复制和粘贴该网站上的作品,无论如何都在 chrome 中。 它几乎没有提高安全性,因为您可以查看源代码,并且执行此操作的方法因浏览器而异。 它提高了安全性,因为它使用户烦恼到他们不再使用该网站的地步。 它不会提高安全性(相反,因为它鼓励轻松输入密码)并且有时用于用户必须重复先前输入以防止复制和粘贴拼写错误的确认字段。实际上,它只会让用户的生活更加艰难,特别是如果他们想从密码管理器中复制/粘贴安全的随机密码/代码。对于 chrome,有一个很好的扩展可以防止这种废话。搜索“Chrome dont f with paste”。 感谢@timm 的提示。我使用密码管理器和 28 个字符的乱码密码,刚拿到一张新信用卡,银行用 Paste 刷卡了!我尝试在 Brave 的代码检查器中手动输入值,但他们的脚本智取了我。但这个扩展名胜过他们。 【参考方案1】:

您可以在输入中禁用粘贴,如下所示:

html:

<input type="text" value="" id="myInput">

javascript:

window.onload = () => 
 const myInput = document.getElementById('myInput');
 myInput.onpaste = e => e.preventDefault();

谈到安全性,我不会说这会产生任何影响。您通常会使用客户端和服务器端验证用户提交的数据。

【讨论】:

它确实改善了安全过程,但不是直接-> 因此必须再次重置它的成本和时间。更广泛地说,显然需要进行所有正常的验证... +1 表示直接、明确的答案和 可选 警告(不像其他用户(不是这里!),他们开始无休止的讨论而不给出答案)。 PS:这不必与安全性有关。禁用粘贴有助于防止用户复制和粘贴错误的数据,例如电子邮件地址 - 这是为了用户的利益(我遇到过这种情况,我们的一位大企业客户希望他们不会意外粘贴错误的信息)。 @StanE:这可以防止用户粘贴错误的数据,但这也可以防止用户粘贴正确的数据。我使用密码管理器并让它生成一个非常强大的密码。然后我复制/粘贴它,因为它需要很长时间才能正确输入所有特殊字符。 防止复制和粘贴是愚蠢的,它对安全性的影响为零,并且在某些情况下还加剧了使用密码管理器创建强密码的问题。 这不会提高安全性,只会降低安全性,因为它使人们不太可能使用强密码和密码管理器。

以上是关于在 HTML 输入字段中禁用复制粘贴? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

上下文感知复制和粘贴到反应应用程序

Flutter Web - TextFormField 禁用复制和粘贴

禁用复制,在 UITextfield 中粘贴在 iOS 9.x 中不起作用

Chrome:输入文本元素在复制/粘贴后失去垂直对齐

如何在 Cordova Android 应用程序中禁用复制粘贴、拼写检查、自动完成

为啥没有在请求正文中发送禁用的输入字段? [复制]