题记:
偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了。
正文:
对于安全性问题,我们如何解决呢?
解决方案:
1、避免sql注入问题。
2、用户登录密码加密。
3、使用https安全访问方式。
4、使用第三方设备,像银行一般使用的密码口令。
5、...
前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网银那样,需要动态口令,才可以登录进入系统。根据需求,公司使用的第三方设备,ESS设备,需要实现在CAS的基础上实现动态口令密码验证功能。也就是又要去改动CAS源码了,不能说CAS在功能的扩展方面做的不是十分的好,但是在代码的可扩展上还是可以的。
具体需求:
1、可以动态的切换页面,客户需要使用ESS动态密码安全,就切换到ESS页面,用户不需要使用ESS设备就切换到无动态密码口令的页面。
2、在添加用户的时候,如用户需要使用ESS设备,则显示,无需则用户不用看到相关的设备信息,也无须添加与之对应的设备信息。
具体的解决方案:
为了不去修改更多的源码而引起他的问题,让CAS与ESS设备结合,解决步骤如下。
1、动态切换页面
A 实现页面动态切换,首先需要两个登录页面,以便切换,复制cas的登录页面一份cas\WEB-INF\view\jsp\ 复制default文件夹,重命名为ess,我们将其改名后再放进来。
B复制并改名cas\WEB-INF\classess下的default_views.properties,在这里改名为ess_views.properties
,打开我们添加的这个文件,将所有default的路径改为ess的路径,也就是修改成我们新建的文件夹的名称。
C然后打开cas\WEB-INF下的cas.properties,修改cas.viewResolver.basename=ess_views
2、动态密码验证
加上动态密码字段,和加入systemId过程一致:http://blog.csdn.net/lovesummerforever/article/details/38023385,当然在向数据库这验证用户名和密码是否正确之后,需要调用验证ESS设备的接口,来验证动态密码(ESS设备的动态密码验证,是他的客户端和服务器采用一致的算法,这样每一分钟生成相同的动态口令,调用接口来和服务器做匹配验证)
3、对于控制输入框的隐藏和显示
把修改配置的变量放到xml文件中或者放在.properties文件中,通过读取配置文件,写入到application或者session中,再界面通过EL表达式或者jstl表达式,取到session或者application中的数据,来判断隐藏或显示。
总结:
相信没有解决不了的问题,只要你想解决!办法总比问题多!