javascript - 不允许在 JavaScript 中的 eyeIcon 上显示保存的密码
问题描述
在我的 Rails 应用程序中,我有注册表单,用户可以在单击眼睛图标时显示他的密码。
问题是,如果没有直接输入或根本没有输入,我不想允许在编辑页面中显示保存的密码(从浏览器的钥匙串中保存的密码)。在这种情况下是否可以禁用此功能?
eyeIcon.click(function(evt) {
var eye = $(this),
field = eye.closest(":has(div)").find('.vr-textfield'),
isInTextMode = field.attr('type') == 'text';
// update field and icon view
if (!isInTextMode) {
field.attr('type', 'text');
eye.attr('src', eyeIconSrc.active);
}
else {
field.attr('type', 'password');
eye.attr('src', eyeIconSrc.inactive);
}
});
编辑
更明确一点:用户(或他们最大的敌人)可以自由地从浏览器的钥匙串中恢复以前保存的密码,然后单击眼睛按钮,他们可以看到纯密码,暴露了一个漏洞,特别是如果他们使用相同的密码一切 - 请看这里
我想允许用户eyeIcon
仅在直接从浏览器中输入密码时才显示他的密码,并且不允许在上面的链接中提供密码时使用。
解决方案
很酷的问题,谢谢。专门解决通过眼睛图标操作使密码输入字段纯文本可见的问题,您是否考虑过在不合适时不渲染眼睛图标(以及您显示的相关 JS)?
该策略需要对您的视图进行一些调整,特别是如果您使用部分表单进行创建(您想要的行为)和编辑(您不想要的地方)。
一种方法是将条件逻辑放在部分中。另一种是将表单部分分解为重复使用的部分,并渲染不同的部分(重复使用部分)以进行创建和编辑。
这有帮助吗?
推荐阅读
- dataweave - 使用 dwl 2.0 展平具有可变深度的嵌套数组
- android - 如何使用firebase在android中的通知中发送图像?
- javascript - TypeError:无法读取未定义的属性“_alreadyWrapped”
- python - 如何为 Python 指定虚拟环境
- dictionary - Groovy List:按元素列表分组
- docker - 从 docker-compose 运行的 docker 容器的内存资源
- react-native - 反应 sectionList 周围的原生边界半径
- c - 为什么我的 fscanf 似乎什么也没读?
- shell - 停止在服务器上运行的循环脚本?
- jenkins - 在作业开始或作业之前重新启动 Windows Jenkins slave