危险,不要随意让网站记住密码自动登陆!

news/2024/5/20 1:54:55/文章来源:https://blog.csdn.net/qing_gee/article/details/71514046

为了方便用户登录,几乎所有的网站都实现了“记住密码”、“自动登陆”这样似乎人性化的功能。
我也很喜欢这个功能,因为我自己的脑子实在是讨厌记东西。
为了安全起见,我的密码都设置的很复杂,满足“数字+特殊符号+英文字母大小写”。
但密码一复杂,我就总记不住,就想让网站替我记住。
但殊不知,这背后隐藏着巨大的风险。
我先劝大家一声:“危险,不要随意让网站记住密码自动登陆!”
要了解事情的真相,请随我来看一看如何利用cookie实现记住密码自动登陆。

第一步、构建form表单

<form class="form-signin required-validate" action="${ctx}/login?callbackType=forward">${token}<div class="form-group"><div class="row"><input class="form-control" type="text" autofocus name="username" value="${username}" placeholder="请输入会员编号" /></div></div><div class="blank10"></div><div class="form-group"><div class="row"><input class="form-control" type="password" name="password" value="${password}" placeholder="请输入登陆密码" /></div></div><div class="form-group"><div class="row"><div class="checkbox"><label> <input type="checkbox" value="1" <c:if test="${isSave == 'true'}">checked</c:if> name="isSave" /> 下次自动登录</label></div></div></div><div class="form-group"><div class="row"><button class="btn btn-lg btn-primary btn-block" type="submit">登录</button></div></div></form>

第二步、登陆时利用cookie记住密码

@RequestMapping("/login")
public ModelAndView login(HttpServletResponse response,@RequestParam(value = "username", required = false) String username,@RequestParam(value = "password", required = false) String password) {try {boolean isSave = getParaToBoolean("isSave", false);logger.debug("isSaved " + isSave);// 尝试获取cookieString cookieUser = CookieUtil.getCookieByName(request, Constants.COOKIE_USER);logger.debug("cookie的值为:" + cookieUser);// 验证用户信息Members user = memberService.selectByUsername(username);// 如果IP不同,则清除cookieif (cookieUser != null) {if (!user.getLastip().equals(request.getRemoteAddr())) {// 移除自动登录cookie信息CookieUtil.removeCookie(response, Constants.COOKIE_USER);// 删除cookie}}MembersValidator.checkPassword(password, user.getPassword());user.setLastip(request.getRemoteAddr());// 更新登录id 和最后登录时间memberService.updateLastvisit(user);checkToken();int max_age = Variables.cookie_expire * 3600 * 24;if (isSave) {// 将自动登录信息存入cookieCookieUtil.setCookie(response, Constants.COOKIE_USER,DesUtils.encrypt(username + "," + password + "," + isSave), max_age);} else {// 移除自动登录cookie信息CookieUtil.removeCookie(response, Constants.COOKIE_USER);// 删除cookie}logger.debug("登陆成功后跳转");return ajaxDoneSuccess(user.getUid().toString(), (String) getSessionAttr(Constants.BEFORE_LOGIN_URL));} catch (Exception e) {logger.error(e.getMessage());logger.error(e.getMessage(), e);return ajaxDoneError(Constants.SERVER_ERROR);}
}

这部分代码也很清晰明了,就不做多的解释。

附上CookieUtil.java类

/*** Cookie工具类* */
public class CookieUtil {/*** 添加cookie* * @param response* @param name* @param value* @param maxAge*/public static void setCookie(HttpServletResponse response, String name, String value, int maxAge) {Cookie cookie = new Cookie(name, value);cookie.setPath("/");if (maxAge > 0) {cookie.setMaxAge(maxAge);}response.addCookie(cookie);}/*** 删除cookie* * @param response* @param name*/public static void removeCookie(HttpServletResponse response, String name) {Cookie uid = new Cookie(name, null);uid.setPath("/");uid.setMaxAge(0);response.addCookie(uid);}/*** 获取cookie值* * @param request* @return*/public static String getCookieByName(HttpServletRequest request, String cookieName) {Cookie cookies[] = request.getCookies();if (cookies == null) {return null;}for (Cookie cookie : cookies) {if (cookie.getName().equals(cookieName)) {return cookie.getValue();}}return null;}
}

第三步、从cookie中取出登陆用户名、密码等关键信息

@RequestMapping("/initLogin")
public ModelAndView initLogin() {logger.debug("进入登陆页");try {ModelAndView initView = new ModelAndView("login");String cookieUser = CookieUtil.getCookieByName(request, Constants.COOKIE_USER);if (cookieUser != null) {String decode = DesUtils.decrypt(cookieUser);String[] cookieUsers = decode.split(",");initView.addObject("username", cookieUsers[0]);initView.addObject("password", cookieUsers[1]);initView.addObject("isSave", cookieUsers[2]);}createToken();return initView;} catch (Exception e) {logger.error(e.getMessage());logger.error(e.getMessage(), e);return error300(Constants.SERVER_ERROR);}}

这里写图片描述

当我输入了账号、以及密码后,勾选上“下次自动登陆”,那么系统在验证通过后,就会通过cookie记住我的用户名和密码,下次不用再输入账号和密码,直接点击登陆就进入系统。

到此为止,自动登陆的功能已经实现了。
那么,现在可以说一些负责任的话了。

这里写图片描述

在浏览器的开发者模式下,注意红色框中的“type=’password’”,此时我们将type修改为text。

这里写图片描述

注意,注意,你是不是已经发现了,密码不再是密码了,成了明文了。
你,此刻是否心惊肉跳了?

这里写图片描述

对,XX(这文章会被和谐吗,不至于吧,这早已经不是秘密了,是个程序员都知道)也这样!

所以,作为一个不务正业的IT狗来说,我奉劝各位,“危险,不要随意让网站记住密码自动登陆!”
假如你的电脑这会被我用,而你又选择让网站记住密码,那对不起了,你再复杂的密码也不过是一串明文而已!
当然了,放心了,我是不会去看你的密码了。
不过浏览器会不会看你的密码我就不敢保证了。
既然为了安全,设置了超长超复杂的密码,那么每次就手动输一下嘛,不麻烦,安全得很!

不务正业的IT狗,喜欢读书和写作!

微信扫一扫下方二维码即可关注 沉默王二 公众号:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_736315.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机网站form表单check神器——Validform

手机端的商城项目已经上线了很久&#xff0c;但一直留有令人耿耿于怀的问题——form表单没有找到合适的validate&#xff0c;也就是说项目的input标签check只是做在了后台&#xff0c;前端并没有进行验证&#xff0c;这显然给后台服务器平添了很多烦恼&#xff08;这活儿不应该…

使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能

前几天把网站部署到服务器上后发现访问速度和龟速差不多&#xff0c;内心感到非常焦虑——之前并未做过这方面的尝试&#xff0c;要解决问题实在有些头大。 但幸好之前做过一个项目&#xff0c;本地访问速度感觉奇慢&#xff0c;但正式环境下访问速度反倒快得飞起。虽然我期初…

推荐10个堪称神器的 Java 学习网站

经常有一些读者问我&#xff1a;“二哥&#xff0c;学习 Java 应该关注哪些网站&#xff1f;”&#xff0c;我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意&#xff0c;他们说&#xff0c;“我在问你&#xff0c;又不是问知乎&#xff0c;…

推荐10个堪称神器的学习网站

每天都会收到很多读者的私信&#xff0c;问我&#xff1a;“二哥&#xff0c;有什么推荐的学习网站吗&#xff1f;最近很浮躁&#xff0c;手头的一些网站都看烦了&#xff0c;想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦&#xff0c;梦到被老板辞退了。虽然说在我们公…

作为程序员的他,大学四年一直自学,全靠这些实用工具和学习网站!

二哥&#xff0c;你好&#xff0c;马上 6 月份就要毕业了。非常感谢这些年来二哥的鼓励&#xff0c;你的那些文章我基本上都看了&#xff0c;尤其是程序人生方面的文章给我启迪很大。大学四年&#xff0c;我没有白过&#xff0c;虽然专业不是程序员&#xff0c;但我喜欢这个行业…

超实用的工具、素材、学习网站分享

文章目录------------------------------学习教程篇-------------------------------bilibili哔哩哔哩网易云课堂siki学院&#xff1a;泰课在线&#xff1a;可汗学院&#xff1a;线性代数的本质 - bilibili计算机科学速成课 - bilibiliLearnOpenGL&#xff1a;The Book of Shad…

大学四年,因为这些网站,他顺利拿下字节跳动的offer!

回想起大学的日子&#xff0c;我不免觉得有些羞愧&#xff0c;因为我把它虚度了&#xff0c;除了谈了个女朋友&#xff0c;几乎一无所获&#xff0c;我是个彻彻底底的学渣。但我有一个读者&#xff0c;小王&#xff0c;他就是最佳的励志典范&#xff0c;大一还挂科了三门&#…

老板急坏了,公司网站的 HTTPS 过期了

端午出去玩的时候&#xff0c;老板打电话说公司网站的 HTTPS 过期了&#xff0c;访问不了&#xff08;见下图&#xff09;&#xff0c;要我立马升级一下。可惜我当时没带电脑&#xff0c;无能为力&#xff0c;可把老板急坏了。 没办法&#xff0c;急就先急着&#xff0c;只能等…

mfc之clistctrl导出excel_Excel函数:SEO这个站长帮手,你在用吗?

在SEO工作中&#xff0c;我们每天都会使用大量的站长工具&#xff0c;其中&#xff0c;Excel函数&#xff0c;是我们发现做一些SEO基础数据分析得力的站长帮手。 在以往的数据统计中&#xff0c;我们经常会利用到Excel排序、筛选、去重等一系列可使用的函数&#xff0c;但对于站…

企业网站 源码 mail:_分享一些好用的网站(二)

前言半年前写了一篇《分享一些好用的网站》记录了我之前常用的一些网站&#xff0c;现在过去半年&#xff0c;收藏夹也多了一些网站&#xff0c;特地记录下来&#xff0c;希望能对你有所帮助。由于这些网站都比较杂&#xff0c;我也懒得分类了。太长不看版临时邮箱 https://tem…

再见 HTTP?10 分钟手把手教会你将网站切换到 HTTPS,安全有保障,yyds!

CSDN 的小伙伴们&#xff0c;大家好&#xff0c;我是刚脱离险境的二哥呀&#xff01; 很久&#xff08;大概两年&#xff09;之前&#xff0c;我就搞了一个独立的个人博客网站&#xff0c;长下面这样。 大家有访问过的&#xff0c;可以在评论区扣 1 可惜一直没搞备案和 HTTPS…

3 年9.9元,网站从HTTP升级到HTTPS

上一次,我们完成域名解析后,发现浏览器地址栏里的域名被提示为不安全,就是因为它还是个宝宝,没有升级为 HTTPS 证书。 那怎么升级为 HTTPS 证书呢?可以直接通过阿里云购买 SSL 证书,但特么巨贵! 本来想尝试一下 AWS 的免费 SSL 证书,但卡到验证码这一步就是收不到信息…

完了,二哥网站的图片挂了

二哥的编程知识星球正式开放了&#xff0c;这是一个Java学习指南编程实战的学习宝地&#xff0c;可以帮助你提高编程能力、养成好的学习习惯、找到志同道合的学习伙伴、拿到更好的 Offer。详情戳链接&#x1f517;《Java程序员进阶之路》! 大家好&#xff0c;我是二哥&#xff…

mysql负载导致网站访问高_MySQL负载高导致网站访问慢解决实例

今日发现网站访问慢&#xff0c;一次进行了排查&#xff0c;开始思路混乱&#xff0c;下面来梳理下一、故障分析首先&#xff0c;判断访问慢现象&#xff0c;是个人还是集体&#xff1f;&#xff1f;&#xff1f;个人现象排查&#xff1a;检查个人网络&#xff0c;pc&#xff0…

网站被腾讯停止访问人工服务器,网站被腾讯屏蔽怎么办?实测多种解封方式

前两天不知道怎么搞的&#xff0c;腾讯把我的一个网站给报毒了&#xff0c;在 QQ 和微信里都进行了屏蔽&#xff0c;无法访问。给出的原因是“该网站有未经证实的境外博彩内容”。作为一个负责任的站长&#xff0c;我建站这么多年来一直都是兢兢业业&#xff0c;从未发布过任何…

seo网站自动发布链接工具_死链接是什么?会影响网站seo吗?检测方法与测试工具又有哪些?...

前些天基于企业网站seo需求&#xff0c;调整网站标题title及确定网站标题统一规范&#xff0c;顺便再检查了一下死链接。一检查&#xff0c;发现就有漏网之鱼。什么是死链接&#xff1f;先说一下什么是死链接。顾名思义&#xff0c;死链接就是死的链接嘛。当你点开一个链接&…

java使用token访问url一直携带token认证_SpringBoot入门建站全系列(十二)Spring Security使用token做认证...

SpringBoot入门建站全系列&#xff08;十二&#xff09;Spring Security使用token做认证Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。一般来说&#xff0c;Web 应用的安全性包括…

iframe src 不加载页面_五种方法延迟加载图像,以获得更好的网站性能

lazy-load由于图像是Web上最重要的内容之一&#xff0c;因此网站上的页面加载时间很容易成为问题。即使进行了适当的优化&#xff0c;图像也可能会很重。这会对访问者必须等待才能访问您网站上的内容的时间产生负面影响。除非您想出一种不会影响速度感知的图像加载解决方案&…

seo自动发外链_怎么找高质量外链资源(如何找发外链平台)

如今&#xff0c;搜索引擎越来越关注外部链接的质量。作为seo外部链接成员&#xff0c;我们如何获得高质量的外链资源&#xff1f; 我可以向您保证&#xff0c;大多数网站管理员在寻找高质量的外链资源时都会头疼。每天只知道要发布多少个大型平台&#xff0c;但这真的可以吗&a…

蓝科响应式网站模板php_简约现代风格的房地产响应式设计网站模板

哈喽&#xff01;大家好&#xff0c;这里公众号&#xff0c;Adobe素材助手。简约现代风格的房地产响应式设计网站模板&#xff0c;可以自定义无限的可能性。因为我们包含了UI准则来维护设计风格。因此&#xff0c;如果您想在部分&#xff0c;页面或其他内容上添加任何内容&…