Sim*_*mon 16 security passwords clipboard
我们有一个Web应用程序的通用登录表单,没有什么花哨的东西,比如
...<input type="text" value="Username" /><input type="password" value="" />...
我的同事辩称,拒绝用户在登录表单中复制和粘贴将提高应用程序的安全性.我认为不然,因为密码输入已经受到浏览器本身的保护(您无法从输入元素复制密码).
但是,我们将以下JScripts添加到输入元素:
... onpaste="return false;" oncopy="return false;" ondrag="return false;" ondrop="return false;" ...
Run Code Online (Sandbox Code Playgroud)
测试人员批评说仍然可以使用CRT键"拖动"副本,当然它只会复制*字符而不是密码,但它仍然允许从表单中复制值,因此测试用例被返回失败了.
背景太多了.
我的问题:
在登录表单中否认任何类型的复制和粘贴是否值得额外努力,是否有任何安全性改进?
谢谢西蒙
bdo*_*lan 49
不.为什么要阻止用户复制粘贴自己的密码?
每当你看到这样的安全保护时,重要的是要问自己:我想要防范什么样的攻击?在这种情况下,即使您阻止了复制粘贴,用户也可以在他们真正想要的时候重新键入它.如果您担心Evil Spyware,那么这些东西可以直接安装浏览器扩展并直接查看DOM中的密码,或者安装一个键盘记录器并在键入时捕获它.
实际上,这甚至可以降低安全性.考虑用户是否使用密码管理程序,该程序可以将密码放入剪贴板,或显示它以进行重新输入.如果您阻止粘贴,这意味着用户必须在屏幕上显示密码才能让任何肩膀冲浪者看到.
我同意这里的共识:拒绝复制和粘贴意味着我真正复杂的密码(存储在1Password中)是无用的.所以我的回答是使用简短易记的密码(即弱密码).驱使人们使用弱密码是一个不好的想法.
另外,onpaste ="return false;" 我相信是DOM的一部分,而不是javascript附加组件.所以网站设计师真的应该停止这种糟糕的做法.
有没有人知道是否有充分理由使用"return false;" - 也就是说,剪贴板有什么危险吗?如果是这样,它会使1Password等程序的使用无效.
小智 6
我同意所有人的意见,令人遗憾的是大型公司现在开始采用这种做法,我不能粘贴在paypal,xbox live上,还有一些应用程序如圆形立方体默认阻止它.我认为它更安全,因为它迫使最终用户键入它意味着它要么必须是一个容易记住的,要么必须让它在某个地方可见以输入,像keeppass这样的优秀应用程序基于密码工作是不可见的但只是暂时复制到剪贴板.
防止复制/粘贴密码是一个可怕的想法 - 它几乎使得使用长的随机生成的安全密码变得不可能.想象一下,我想用"JFPEWm!QjVIdrFk8l | /%"作为密码 - 这是一个很好的密码,但是输入的噩梦很容易出错.