防止浏览器记住密码的技术方案
创作时间:
作者:
@小白创作中心
防止浏览器记住密码的技术方案
引用
1
来源
1.
https://www.cnblogs.com/younghxp/p/18588003
在Web开发中,如何防止浏览器记住密码是一个常见的需求。本文将从问题分析、解决方案到具体实现,详细介绍如何通过CSS和JavaScript等技术手段,实现密码输入框的自定义样式,从而避免浏览器自动填充密码。
一、问题引入
在某些场景下,用户可能不希望浏览器记住密码,例如在公共电脑上登录时。然而,浏览器通常会捕捉并记录用户的密码输入,这可能会带来安全风险。因此,我们需要找到一种方法来阻止浏览器自动保存密码。
二、问题分析
问题的根源在于浏览器会捕捉用户的密码输入记录,并以最后一次输入为节点进行存储。这意味着,只要密码输入框被触发,浏览器就有可能记录下密码。因此,我们需要找到一种方法来避免浏览器捕捉密码输入。
三、解决方案
使用CSS属性-webkit-text-security模拟密码展示与隐藏
-webkit-text-security是一个CSS属性,可以用来控制文本的显示方式。其属性值包括:
none:文本不进行任何处理,显示原始文本。disc:将文本替换为实心圆点(•)。circle:将文本替换为空心圆圈(○)。square:将文本替换为空心方块(□)。disclosure-closed:将文本替换为实心三角形(▶)。disclosure-open:将文本替换为倒三角形(▼)。
页面登录表单示例
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="login_form" @keyup.enter.native="submitForm('ruleForm')">
<el-form-item label="" prop="userName" style="margin-bottom: 28px">
<el-input placeholder="请输入账号" type="text" prefix-icon="el-icon-user" v-model="ruleForm.userName" @blur="checkUserHasFreeApi"
clearable>
</el-input>
</el-form-item>
<el-form-item label="" prop="password">
<el-input :class="showPassword?'':'pwd'" :disabled="Boolean(timeStr)" placeholder="请输入密码" type="text"
prefix-icon="el-icon-lock" v-model="ruleForm.password" clearable>
</el-input>
<i class="show_password" @click="showPassword = !showPassword"
:class="showPassword?'font_family icon-biyanjing':'font_family icon-yanjing1'"></i>
</el-form-item>
</el-form>
CSS样式
.pwd {
/deep/ .el-input__inner {
-webkit-text-security: disc !important;
}
}
四、兼容性
目前,
-webkit-text-security属性仅在基于WebKit引擎的浏览器中进行兼容,包括Google Chrome、Safari等。然而,该属性在其他主流浏览器中并不被支持,如Mozilla Firefox、Microsoft Edge等。因此,在使用-webkit-text-security属性时,应注意浏览器的兼容性问题。为了解决兼容性问题,可以使用其他解决方案,如JavaScript或服务器端加密。JavaScript可以用来在所有浏览器中实现文本掩盖效果。而服务器端加密可以在后端处理敏感信息的显示,从而降低前端CSS属性的依赖性。
<input type="password" id="password-input" />
<script>
const passwordInput = document.getElementById('password-input');
passwordInput.addEventListener('input', () => {
passwordInput.value = '*'.repeat(passwordInput.value.length);
});
</script>
- 参考库text-security,实现了
-webkit-text-security的效果。text-security是一个精巧的字体集合,仅由三种字符形状构成:圆盘、圆形和方形,类似于传统密码字段中的掩码符号。通过设定特定的字体家族(如font-family: "text-security-disc")。实测结果:placeholder也会被加密,其他表现与-webkit-text-security: disc一致。
五、记住密码样式
记住密码默认样式可修改
/deep/ input:-webkit-autofill {
// -webkit-box-shadow: 0px 0px 0px 20px rgb(32, 85, 104) inset;
-webkit-box-shadow: 0px 0px 0px transparent inset !important;
// background: transparent !important;
-webkit-text-fill-color: transparent !important;
}
热门推荐
国庆打卡界山:泉港最美拍摄点推荐
泉港文化周:一场体育与文化的完美邂逅
泉港深度游:从湄洲湾到樟脚古村
山腰盐场摄影大赛:捕捉最美泉港瞬间
波音MAX危机:空客成赢家?
波音737MAX再曝安全问题,空客技术创新引领行业新标准
正泰居家教你选对插座,安全用电不踩雷!
如何让你的Android锁屏焕然一新?教你调整锁屏,打造个性主题
冬季抑郁的光线调节指南:从自然光到智能照明
OLED电视亮度调节全攻略:不同场景下的最佳设置
自然光调节,让办公室亮起来!
孟非:从重庆山城走出的主持人
泉州古城:宋元世界遗产的活化之路
海峡两岸青年打卡泉州世遗点,用镜头定格最美瞬间
从古典到现代:旋律的演变与革新
新英格兰医学杂志推荐:健康睡眠10妙招
色氨酸助眠全攻略:这些食物帮你睡得更好
洗衣机自己怎么清洗?洗衣机清洗正确方法
赵雅芝71岁逆龄不老的秘密:健康生活大揭秘!
赵雅芝直播带货走红:71岁仍美如少女,她的保养秘诀是什么?
赵雅芝再现白蛇传:经典魅力与文化传承
赵雅芝的护肤秘诀:70岁依旧保持少女肌
中朝边界的未解之谜:出海权、环境变化与历史遗留问题
图们江与鸭绿江:中朝边界的百年变迁
白素贞原来就是个女妖精?中国人硬是把妖怪变成了侠女
新白娘子:旧版VS新版,同是白素贞坦白身份,一个抱头痛哭,一个僵硬面瘫
农用三轮车灯光使用指南:从规范到实战
【光影故事】各个版本《上海滩》冯程程对比 赵雅芝,孙俪,宁静你喜欢哪一个?
大理洱海绝美拍照攻略:轻松拍出大片!
相声界的大讨论:谁是真正的推动者?