Jquery 如何防止用户在控制台中获取密码字段值
我一直在帮助一些人修理电脑。其中一个人问我在自动表单字段中存储密码的安全性。我向他们展示了如何在控制台中通过简单的jQuery调用检索密码的快速技巧。在一些网站上工作时,我一直在试图找出一种方法,防止使用此技巧来找出保存的密码是什么 如果你不知道我在说什么,试试下面的方法Jquery 如何防止用户在控制台中获取密码字段值,jquery,security,console,Jquery,Security,Console,我一直在帮助一些人修理电脑。其中一个人问我在自动表单字段中存储密码的安全性。我向他们展示了如何在控制台中通过简单的jQuery调用检索密码的快速技巧。在一些网站上工作时,我一直在试图找出一种方法,防止使用此技巧来找出保存的密码是什么 如果你不知道我在说什么,试试下面的方法 使用jquery(或jQueryify站点)导航到一个网站,打开自动填写表单或填写密码字段 检查元素以显示密码id字段,或者使用jquery调用该字段 在控制台中运行类似于$('#password').val()的命令,并观察
$('#password').val()
的命令,并观察密码显示$jq('#pass').val()
之后,不做任何更改(为了安全起见,密码变黑)
用例
用户1位于公用计算机上,允许浏览器保存登录信息
用户1离开,用户2进入同一站点。浏览器自动填写登录信息
用户2运行该命令并获得对密码的访问权限。简短回答:否。从逻辑上讲,无法删除访问此字段中数据的功能并保留自动填充功能。密码框的值是密码,这就是您要提交的密码。您必须禁用自动填充以正确阻止这种情况发生 然而 您可以通过从
密码
输入框中获取值并用.val(“”
将其清空来隐藏该值。然后在提交时提交存储值的变量,而不是框中的内容。如果您使用许多模糊变量名的工具中的一种来收缩脚本,那么查找值会稍微困难一些(尽管肯定不是不可能的)。通过对值进行加密和解密,您可能会变得越来越疯狂,但在一天结束时,获取密码的所有密钥都将保存在脚本中,以便脚本本身能够在适当的时间访问它。你会停止少数有人尝试过,但没有一个有献身精神的人的情况
您还必须记住以下所有注意事项:
- 如果用户不更改密码变量,则必须确保仅提交密码变量。如果用户更新了密码框中的信息,您可能希望提交该信息。使用类似knockout.js的工具,您可能能够不断地获取和隐藏用户在该框中键入的任何内容,但这将是另一个复杂的层面
- 您希望用户清楚地了解正在发生的事情。如果他们的密码框突然变为空白,大多数用户会非常困惑
让我们现实一点。如果一个“黑客”可以直接访问某人的计算机,并且他们想要密码,他们就会得到它。在进入javascript之前,他们有上千种其他方法可以先获取密码(键盘记录器,在他们键入时站在他们后面,如果你没有使用HTTPS或加密数据,则使用数据包嗅探器,用钝器敲击他们,等等)。在某处有一个XKCD带。编辑:简短回答:否。从逻辑上讲,无法删除访问此字段中数据的功能并保留自动填充功能。密码框的值是密码,这就是您要提交的密码。您必须禁用自动填充以正确阻止这种情况发生 然而 您可以通过从
密码
输入框中获取值并用.val(“”
将其清空来隐藏该值。然后在提交时提交存储值的变量,而不是框中的内容。如果您使用许多模糊变量名的工具中的一种来收缩脚本,那么查找值会稍微困难一些(尽管肯定不是不可能的)。通过对值进行加密和解密,您可能会变得越来越疯狂,但在一天结束时,获取密码的所有密钥都将保存在脚本中,以便脚本本身能够在适当的时间访问它。你会停止少数有人尝试过,但没有一个有献身精神的人的情况
您还必须记住以下所有注意事项:
- 如果用户不更改密码变量,则必须确保仅提交密码变量。如果用户更新了密码框中的信息,您可能希望提交该信息。使用类似knockout.js的工具,您可能能够不断地获取和隐藏用户在该框中键入的任何内容,但这将是另一个复杂的层面
- 您希望用户清楚地了解正在发生的事情。如果他们的密码框突然变为空白,大多数用户会非常困惑
让我们现实一点。如果一个“黑客”可以直接访问某人的计算机,并且他们想要密码,他们就会得到它。在进入javascript之前,他们有上千种其他方法可以先获取密码(键盘记录器,在他们键入时站在他们后面,如果你没有使用HTTPS或加密数据,则使用数据包嗅探器,用钝器敲击他们,等等)。在某处有一个XKCD带。编辑:您可以简单地禁用自动完成,因此