ASP.NET MVC中Chrome弹出密码数据泄露提示如何解决
问题根因
这个弹窗和你使用FormsAuthentication.SetAuthCookie维护会话的逻辑没有任何关联,不需要在会话认证逻辑上浪费排查时间。
这是Chrome浏览器内置的安全浏览功能触发的提示:Chrome会对用户在登录框输入的密码做哈希校验,和它内置的公开数据泄露密码库做比对,只要用户输入的密码命中过已知的公开数据泄露记录,就会弹出这个安全提醒,和网站用什么认证方案、什么技术栈没有关系。
对应解决方法
分两类场景处理:
生产环境面向真实用户的场景
- 不要尝试用站点代码屏蔽这个提示:这个提示是浏览器系统级弹出的安全提醒,网站前端、后端代码都没有权限拦截或者关闭,所有改Cookie属性、加JS屏蔽的方案都无效。
- 最根本的解决方式是在注册、修改密码的环节增加密码安全校验:拦截已经出现在公开泄露密码库的弱密码/风险密码,引导用户设置未在泄露事件中暴露过的、符合强度要求的密码,从源头避免用户输入高风险密码触发提示。
- 当用户触发这个提示时,可以在你自己的站点改密页做对应引导,提醒用户及时更换高风险密码,降低账号被盗概率,这个提示本身是帮用户规避账号风险的,不建议引导用户关闭浏览器的安全检测功能。
本地开发调试场景
如果是你自己开发测试的时候被弹窗干扰,可以选以下任意一种方式处理:
- 直接点击弹窗上的关闭按钮即可,不会影响你本地调试登录、会话相关的功能逻辑。
- 更换本地测试用的账号密码,不要用
123456、admin123、password这类已经被收录进泄露密码库的常见测试密码,换随机生成的复杂字符串作为测试密码,就不会触发校验提示。 - 临时关闭Chrome的密码泄露检测开关:打开Chrome设置→隐私和安全→安全,在安全浏览板块下找到密码泄露检测选项关闭即可,注意这个是浏览器全局设置,仅建议本地调试时使用,不要引导真实用户关闭这个安全功能。
常见误区提醒:修改
FormsAuthentication.SetAuthCookie的Cookie有效期、域名、HttpOnly等属性,或者给登录接口加特殊响应头,都不会影响这个提示的弹出,不要在这些方向做无用功。
内容的提问来源于stack exchange,提问作者Mehmet
相关产品推荐
相关产品推荐

