公司僵尸帐号引发了一系列的入侵事件-细说密码强度验证的重要性

一、前言

每个公司几乎都会有一个公司的内部系统,每个员工的入职的的时候都会给开一个帐号,一般开帐号的这个人不会考虑帐号的安全性,用户名大多都是员工的姓名或者工号,密码也是姓名或者工号或者123456,如果可以输入123的话估计就设置123了,哈哈,那么问题就来了。如果这个员工不用这个系统不用这个系统或者不重置密码,很容易让别人登录的,导致公司内部的系统信息外泄,损失惨重。

最近公司的内部系统发现了异常,一些帐号在一些奇怪的地方登录,密码几乎大部分是弱密码,什么123456,123abc,654321,123654,自己姓名拼音,工号等等。

出现这样的问题一般是公司员工流动性大,负责人经常变动,开帐号和关闭帐号的人疏忽,员工自己没有安全意识,归根到底还是程序员没有把程序写好才造成的问题!!!

在网上经常看到密码的强度的验证的控件,感觉很好,下面这个控件可以借鉴基本效果如下:

 

二、基本实现

实现起来其实很简单,就是对输入的密码进行了验证,代码一个js文件,一个样式表,一个页面

checkIntensity.js

function CheckIntensity(pwd) {var mcolor, wcolor, scolor, colorHtml;//var pstrength = $(".passwordStrength");var m = 0;var modes = 0;var i;for (i = 0; i < pwd.length; i++) {var charType;var t = pwd.charCodeAt(i);if (t >= 48 && t <= 57) { charType = 1; }else if (t >= 65 && t <= 90) { charType = 2; }else if (t >= 97 && t <= 122) { charType = 4; }else { charType = 8; }modes |= charType;}for (i = 0; i < 4; i++) {if (modes & 1) { m++; }modes >>>= 1;}if (pwd.length < 6) { m = 0; }//if (pwd.length <= 0) { m = 0; }switch (m) {case 1://pstrength.find("span:first").addClass("bgStrength");wcolor = "pwd pwd_Weak_c";mcolor = "pwd pwd_c";scolor = "pwd pwd_c pwd_c_r";colorHtml = "弱";break;case 2://pstrength.find("span:lt(2)").addClass("bgStrength");wcolor = "pwd pwd_Medium_c";mcolor = "pwd pwd_Medium_c";scolor = "pwd pwd_c pwd_c_r";colorHtml = "中";break;case 3:case 4://pstrength.find("span:lt(3)").addClass("bgStrength");wcolor = "pwd pwd_Strong_c";mcolor = "pwd pwd_Strong_c";scolor = "pwd pwd_Strong_c pwd_Strong_c_r";colorHtml = "强";break;default://pstrength.find("span").removeClass("bgStrength");wcolor = "pwd pwd_c";mcolor = "pwd pwd_c pwd_f";scolor = "pwd pwd_c pwd_c_r";colorHtml = "";break;}document.getElementById('pwd_Weak').className = wcolor;document.getElementById('pwd_Medium').className = mcolor;document.getElementById('pwd_Strong').className = scolor;document.getElementById('pwd_Medium').innerHTML = colorHtml;if (m < 2) {$("#tdTip").show();} else {$("#tdTip").hide();}return m;
}

样式表文件pwdIntensity.css

.pwd {width: 40px;height: 16px;line-height: 14px;padding-top: 2px;
}.pwd_f {color: #BBBBBB;
}.pwd_c {background-color: #F3F3F3;border-top: 1px solid #D0D0D0;border-bottom: 1px solid #D0D0D0;border-left: 1px solid #D0D0D0;
}.pwd_Weak_c {background-color: #FF4545;border-top: 1px solid #BB2B2B;border-bottom: 1px solid #BB2B2B;border-left: 1px solid #BB2B2B;
}.pwd_Medium_c {background-color: #FFD35E;border-top: 1px solid #E9AE10;border-bottom: 1px solid #E9AE10;border-left: 1px solid #E9AE10;
}.pwd_Strong_c {background-color: #3ABB1C;border-top: 1px solid #267A12;border-bottom: 1px solid #267A12;border-left: 1px solid #267A12;
}.pwd_c_r {border-right: 1px solid #D0D0D0;
}.pwd_Weak_c_r {border-right: 1px solid #BB2B2B;
}.pwd_Medium_c_r {border-right: 1px solid #E9AE10;
}.pwd_Strong_c_r {border-right: 1px solid #267A12;
}.pwd_table {border-collapse: collapse;
}.pwd_table td {padding: 0;border: 0;text-align: center;border: 3px solid white;}

页面代码:

@{ViewBag.Title = "Index";
}<h2>http://www.cnblogs.com/yinrq/</h2>
<style>.updatePwd {padding: 10px 0;color: #666;}.updatePwd > p {margin-left: 20px;}.updatePwd dl dt {display: block;float: left;width: 100px;text-align: right;color: #333;}.updatePwd dl dd {margin-left: 120px;width: 250px;}.updatePwd dl {clear: both;display: block;padding: 8px 0;}.updatePwd dl:after {clear: both;content: ".";display: block;height: 0;visibility: hidden;}.updatePwd .input {box-sizing: border-box;border: solid 1px #d2d9e2;height: 25px;width: 200px;/*padding-left: 65px;*/border-radius: 3px;outline: none;font-size: 14px;color: #465767;/*margin-bottom: 20px;*/}.updatePwd .input:focus {border-color: #3db6e4;}
</style>
<link href="/css/pwdIntensity.css" rel="stylesheet" />
<script type="text/javascript" src="/Script/checkIntensity.js"></script>
<script type="text/javascript">function checkSubmit() {var grade = CheckIntensity($("#txtNewPassword").val());if (grade < 2) {alert("密码太简单!");} else {alert("密码够复杂的!提交成功!");}}
</script><div id="updatePwd" class="updatePwd"><p>您是首次登陆或密码已过期,请修改密码!</p><dl><dt>用户名:</dt><dd><input id="txtUser" name="txtUser" class="input" value="yinrq" /><span>&nbsp;</span></dd></dl><dl><dt>旧登录密码:</dt><dd><input id="txtOldPassword" name="txtOldPassword" class="input" type="password" /><span style="color: red">*</span></dd></dl><dl><dt>新登录密码:</dt><dd><input id="txtNewPassword" name="txtNewPassword" class="input" type="password" onkeyup="CheckIntensity(this.value)" /><span style="color: red">*</span><div style="margin-top: 10px;"><table class="pwd_table"><tr><td style="text-align: left;">密码强度</td><td id="pwd_Weak" class="pwd pwd_c">&nbsp;</td><td id="pwd_Medium" class="pwd pwd_c pwd_f">&nbsp;</td><td id="pwd_Strong" class="pwd pwd_c pwd_c_r">&nbsp;</td></tr><tr><td colspan="4" >强度为中或者强才可以提交!</td></tr></table></div></dd></dl><dl><dt>确认新密码:</dt><dd><input id="txtConfirmNewPassword" name="txtConfirmNewPassword" class="input" type="password" /><span class="Validform_checktip" style="color: red">*</span></dd></dl><dl><dt></dt><dd><input id="Sava" name="Sava" type="button" value="确认修改"  onclick="return checkSubmit();" /></dd></dl>
</div>

代码在下面会提供下载,可以研究学习下,

https://yunpan.cn/cqRpBdWjsVraU (提取码:4e2c)

三、总结

1、密码要加强度验证

2、密码要根据配置文件的过期时间定期强制用户修改

3、系统安全人人有责

最好在上一张强制修改密码的图

转载于:https://www.cnblogs.com/yinrq/p/5359651.html

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

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

相关文章

idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)

课程简介&#xff1a;课程目标&#xff1a;通过本课程学习&#xff0c;深入理解Java线程池&#xff0c;提升自身技术能力与价值。适用人群&#xff1a;具有Java多线程基础的人群&#xff0c;希望深入理解线程池底层原理的人群。课程概述&#xff1a;多线程的异步执行方式&#…

C# WPF MVVM开发框架Caliburn.Micro快速搭建③

01—启动项目打开Visual Studio创建一个名为“Caliburn.Micro.Hello”的新WPF应用程序添加对Caliburn.Micro Nuget包的引用,最新的版本是4.0.173&#xff0c;更新日期2021年5月9日 (2021/5/9)删除“MainWindow.xaml”并从“App.xaml”中删除StartupUri&#xff0c;使其如下所示…

中国院士最多的县:共走出26位院士,百位高校校长,一万名教授

全世界只有3.14 % 的人关注了爆炸吧知识本文由科研大匠&#xff08;Id:keyandajiang&#xff09;综合整理自学术志、网易新闻、算法与数学之美“昔孟母&#xff0c;择邻处&#xff0c;子不学&#xff0c;断机杼”&#xff0c;从孟母为了给儿子创造良好的读书环境&#xff0c;以…

linux下A免密码登录B

linux下A免密码登录B现在有两台linux服务器A&#xff1a;192.168.1.111&#xff0c;B&#xff1a;192.168.1.1121、在A&#xff08;192.168.123.111&#xff09;生成公钥私钥对&#xff0c;命令如下&#xff1a;ssh-keygen -t rsa -P ‘’,如图&#xff1a;-P表示密码&#xf…

mysql between 查询不出来_mysql的语句优化

(1)mysql避免全表扫描1、应尽量避免在 where 子句中对字段进行 null 值判断&#xff0c;否则将导致引擎放弃使用索引而进行全表扫描&#xff0c;如&#xff1a; select id from t where num is null,不能用null作索引&#xff0c;任何包含null值的列都将不会被包含在索引中。即…

大开眼界!终于等到这部每一帧都是壁纸的纪录片!

全世界只有3.14 % 的人关注了爆炸吧知识中国&#xff0c;拥有七大水系&#xff0c;超过2600个自然湖泊&#xff0c;299.7万平方公里海洋面积。生活在陆地&#xff0c;周遭的一切都是被水体所包裹。但还从来没有哪一部纪录片&#xff0c;系统探秘过中国水下。水面之上&#xff0…

Binary Search二分法搜索C++程序

二分法基本上学计算机的都听过&#xff0c;但是有人不知道的就是其实二分法是减治法的思想。 所谓减治法和分治法有一个主要差别就是减治法是减去一般&#xff0c;就是分治之后只需要解决原问题的一半就可以了得到全局问题的解了。所以速度很快。 下面是二分法的递归程序和非递…

.NET 6新特性试用 | Nuget包验证

前言我们常常需要将.NET类库打包成Nuget包&#xff0c;以便多个项目公用。一旦修改类库&#xff0c;尽管代码可以运行&#xff0c;并成功打包成新版本&#xff0c;看起来一切正常&#xff0c;但是你无法保证该更改是安全且兼容的。而在.Net 6中&#xff0c;提供了包验证工具&am…

SSIS package 更新 variable

在Package中声明一个variable&#xff0c;在package运行的过程中&#xff0c;SSIS如何update Variable&#xff1f; 第一种方法&#xff1a;使用 Script Task 来更新Variable的值 1&#xff0c;创建一个variable &#xff0c;VariableName是VarCode&#xff0c;并将变量传递到脚…

socket第三方库 AsyncSocket(GCDAsyncSocket)

为什么80%的码农都做不了架构师&#xff1f;>>> Socket描述了一个IP、端口对。它简化了程序员的操作&#xff0c;知道对方的IP以及PORT就可以给对方发送消息&#xff0c;再由服务器端来处理发送的这些消息。所以&#xff0c;Socket一定包含了通信的双发&#xff0c…

想给男友一个惊喜,没想到是这样的结局......

1 想给男友一个惊喜&#xff08;via.澎湃新闻&#xff09;▼2 花10w买了副画&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 台北温馨一幕▼4 把土豆切成丁&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼5 你为何如此自信&#xff1f;&#xff08;素材…

Android之怎么隐藏EditText光标和自动显示键盘

不废话,先爆照 让EditText不现实光标 关键代码: android:focusable="true" android:focusableInTouchMode="true" 写这个父视图里面 下面是全部代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"…

基于事件驱动架构构建微服务第14部分:查询API

原文链接&#xff1a;https://logcorner.com/building-micro-services-through-event-driven-architecture-part14-query-api/在本教程中&#xff0c;我将展示如何构建一个查询API&#xff0c;使用命令查询职责分离(CQRS)模式在微服务架构中实现查询。读取模型的目标是构建一个…

​“北斗女神”徐颖,32岁成为中科院最年轻的博导!

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;学术志被誉为“北斗女神”的徐颖研究员在32岁就成为了中科院最年轻的博士生导师&#xff0c;真是羡煞旁人。一分耕耘一分收获&#xff0c;我们要向为国家做出巨大贡献的科学家学习。徐颖、颜值、气质、才华、幽默集于一身…

通过jQuery源码学习javascript(三)

序承接上两篇继续写下去。我尽量把我明白的地方给大家说清楚。有些大家的提问我也有点搞不明白&#xff0c;如果有人能解答&#xff0c;再好不过了。疑问第一篇中有位博友提出了以下的问题&#xff0c;我也不太明白&#xff0c;如果有明白的&#xff0c;能否告知一、二。var st…

链表之单链表的反转总结

单链表的反转是常见的面试题目。本文总结了2种方法。 1 定义 单链表node的数据结构定义如下&#xff1a; class ListNode {int val;ListNode next;ListNode(int x) {val x;next null;} }2 方法1&#xff1a;就地反转法 2.1 思路 把当前链表的下一个节点pCur插入到头结点dummy…

封神!Win11内置杀软被评为免费最佳

微软 Windows Defender 预装在 Windows 10 和 Windows 11 操作系统上。根据最新报告显示&#xff1a;Windows Defender 是 2021 年最好的防病毒软件&#xff08;杀毒软件&#xff09;之一。近日&#xff0c;位于德国的 IT 安全研究机构 AV-TEST 发布了针对 Windows 10 操作系统…

redis协议

为什么80%的码农都做不了架构师&#xff1f;>>> 利用gdb调试redis-server 在客户端redsi-cli&#xff0c;输入 gdb在下面函数处打入断点&#xff1a; 执行read函数后&#xff0c;查看buf中的内容&#xff0c;如下&#xff1a; 可见&#xff0c;客户端发送的指令&am…

佛门重地,不适合搞这种事!!

1 快教教我&#xff01;▼2 佛门重地&#xff0c;不适合搞这种事&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 来自中国的圣诞老人&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 有被内涵到&#xff0c;谢谢▼5 江山代有才人出&#xff08;素材来…

Git之如何解决sourceTree已经pull全部下来但是本地没有更新的问题

今天用sourceTree好奇怪&#xff0c;我pull下来了同事的代码&#xff0c;但是本地项目没有&#xff0c;如下图 日志上面是显示已提交了同事的代码。 然后下面是本地的UserDao.java文件 死活也找不到 解决方法&#xff1a; 我先是从git 上面clone一份代码下来&#xff0c; 发现这…