第2章 登录系统
2010-05-08 21:06 通用C#系统架构 阅读(5270) 评论(5) 编辑 收藏 举报很多年前听别人讲,印度软件公司中有软件开发人员可能一直负责开发系统登录功能而且只做登录功能,当时觉得不就是一个登录系统的功能嘛?把用户名、密码输入好后按一下登录按钮不就可以了?哪里有什么那么多好做的功能?后来随着对大型管理软件的深入理解、接触过很多高要求的客户后才真正体会到,真正做好一个登录窗体也的确不是那么容易的事情,一个软件的质量是否好?设计开发者是否想得足够周到?行家从登录窗体上也能知道个一二。
例如有多个系统,这些系统是否支持单点登录?只用一套用户名密码可以登录多个系统?系统登录是否可以进行灵活配置?离职人员的处理、临时授权用户的登录系统问题、一个职员的多个系统账户功能、系统账户的密码策略等等、输入错误密码时的登录限制等等都能体现出设计、开发人员的真正水平。
2.1请用登录不要登陆
登录系统大家经常犯的一个错误是写成“登陆系统”,曾经向资深人事咨询过此事,都觉得写成“登录系统”才是正确的,所以建议大家用正确的写法“登录系统”。而不是打仗时军队登陆岛屿,很多人会忽视这个用词、有些细节我们的确是应该注意的,有错就改、马上就改。
2.2系统登录
小型信息系统的登录,直接可以选用户名、输入密码就可以登录了很简单。但是大型信息系统,可能还需要区分是哪个公司?哪个用户登录,当然单点登录实施得好的单位还可以是要用户名,密码就可以了。一般系统都不是崭新开发的,很多是经过重构、优化、迭代等等,如何跟原有系统保持兼容、如何平稳过渡等等。原有的历史数据往往是混沌的、凌乱的、不规范的、用户名重复、手机号码重复、缺失关键数据等等,当然也会有各种不符合数据库设计规范的情况,在这样的情况下需要新系统能自动纠错、自动自我修复、能适应各种不合理的显示情况,经过一年半年的运行后、数据就逐步清晰、整洁、都合理收集整顿好了,就是很棒的信息系统了。
图2-1登录窗体
用户登录系统后,不管是什么账户什么时候登录系统,都应该记录登录日志、就像平时管理严格的单位一样,有前台记录外来人员、出入门需要刷门禁系统一样,系统登录成功后应该更改账户的在线状态,若登录失败的,都应该记录失败日志。
2.3系统安全相关
黑客无处不在、只要有利益、出名了、黑客就容易盯上了,各种信息的盗窃、诈骗等就有容易留下漏洞。
同一个用户在用各种不同的密码在反复登录? 限制同一个用户的重复登录行为。
通一个密码按不同的用户账户在反复登录? 限制同一个密码的重复登录行为。
不同的设备上在登录? 限制mac地址等,不需要多个电脑上登录行为。
异常时间、异常地点登录,限制登录时间、限制登录IP。
连续输入多次密码错误? 锁定账户、短信激活账户、微信激活账户、防止黑客暴力破解、还不能影响系统的正常使用。
同一个用户名密码、是否允许多次登录? 看公司的安全限制。
一周没登录或者一个月没登录的账户自动锁定、需要管理员开启等,防止僵尸账户被黑客利用。
核心信息被修改的及时审核审计、例如手机号码等被篡改的、可能与用户提现等有关系、需要严格防范。
若是客户端登录、连续输入多次密码错误的,必须强制退出系统,不允许无限循环允许尝试密码。
登录传输的信息需要加密、被拦截也看不到密码原文、保护数据传输安全。
登录需要走Https通道、防止信息被篡改、被截取。
用户账户是否允许登录等,后台都能控制,有些账户虽然是有效的,但是不允许登录系统。
用户的所有登录日志、失败原因、登录ip、登录的服务器都需要有详细的日志记录。
用户密码的复杂度要求、密码长度、数字、文字、特殊符号的要求检查。
登录系统后必须修改密码的功能要求。
最近连续3次密码不允许重复等的要求。
登录时强制收集用户必须的信息、例如手机号码、身份证号码等等。
用户名、密码是否允许大小写?演示严格大小写的约定。
登录日志推送给安全审计团队、推送给合作伙伴例如菜鸟安全团队等等,协助加强系统安全。
需要把账户同步到AD等就更多复杂的问题产生了、同步到OA、同步到邮件等等。
IP黑名单管理、黑名单中的IP不允许登录。
MAC地址黑名单、黑名单中的MAC不允许登录。
按工号、按用户名、按手机号码等登录功能实现。
忘记密码,发邮件、发手机短信、发微信信息的功能实现。
几十万账户时、性能效率也是问题、加一层防护性能要求就提高一个等级、各种防护都加上后、性能就显著下去了,还需要能提供高性能的登录接口。
所有系统的异常、任何异常都有效的记录、方便排查、改进优化系统、提高系统的健壮性、努力让系统没任何异常。
登录接口的健康检查、缓存服务器是否健康?数据库服务器是否健康?登录接口是否健康?
压力测试、高并发下系统是否稳定?能经得起多少并发用户的压力?
道高一尺魔高一丈、不断完善改进、永无止境、知道的越多就越累、越难前进越难提高、什么都不知道时还很容易。
大型核心系统防止破坏分子用暴力方式猜测密码,需要对暴力猜测密码等行为设置障碍,防止入侵系统行为发生,保障系统的安全稳定,也可以有专门的安全团队进行审计、审核、改进维护、日志行为分析等等。
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级授权
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限