我一直在用计算机帮助一些人并修理它们。其中一个人问我在自动表单字段中存储密码的安全性。我向他们展示了如何从控制台中的简单jQuery调用中检索密码的快速技巧。在一些网站上工作时,我一直试图找出一种方法来阻止使用这个技巧来找出保存的密码是什么。
要了解我在谈论的内容,如果您不知道,请尝试以下方法。
$('#password').val()
的内容,并显示密码显示。我想知道作为网络开发人员是否有某种方法阻止在我的网站上使用它,但仍允许使用它来获取网站代码中字段的值。
感谢。
修改
从Facebook登录时自动填写(为安全起见黑色)
然后jackifying页面并在控制台中运行$jq('#pass').val()
而不更改任何内容(密码为安全性而黑屏)
使用案例
用户1在公共计算机上,它们允许浏览器保存登录信息
用户1离开,用户2进入同一站点。浏览器自动填写登录信息
用户2运行命令并获得密码
的访问权限答案 0 :(得分:3)
简答:不。逻辑上,没有办法删除访问此字段中的数据的能力和保留自动填充的功能。密码框的值是密码,这就是您要提交的内容。您可能必须禁用自动填充正确阻止这种情况发生。
...然而
您可以通过从password
输入框中取出值并使用.val("")
对其进行消隐来隐藏该值。然后提交存储值的变量,而不是提交框中的内容。如果使用混淆变量名称的许多工具之一缩小脚本,那么找到值会稍微困难(尽管肯定并非不可能)。您可以通过加密值并对其进行解密来获得越来越多的疯狂,但在一天结束时所有获取密码的密钥 将在脚本中以便脚本本身可以在适当的时间访问它。你会停止一些有人试一试的案例,但不是专门的人。
您还必须记住以下所有警告:
如果用户未更改密码,则必须确保仅提交密码变量。如果用户在其密码框中更新信息,则您需要提交该信息。使用像knockout.js这样的工具,您可以连续获取和隐藏用户输入的任何内容,但这将是另一层复杂化
您希望用户清楚了解发生了什么。如果他们的密码框突然空白,大多数用户会非常困惑。
让我们变得现实。如果“黑客”可以直接访问某人的计算机,并且他们想要密码,那么他们就会得到它。在点击你的javascript之前,他们还有其他一千种方法可以获得密码(键盘记录器,在他们输入时站在他们后面,如果你没有使用HTTPS或加密你的数据,使用钝器攻击他们等等,数据包嗅探器等等)。这个地方有一个XKCD条带。修改:Found it :)
答案 1 :(得分:1)
您只需禁用自动填充功能,即密码不会存储在输入字段中。
input type =“password”autocomplete =“off”