与外部系统进行身份认证的解决方案

需求:

    因项目中需要嵌入别的系统的页面,打算是用iframe方式,来嵌入别的系统页面。但是用户要求将本系统登录名用GET方式绑在iframe的采用url上带过去,以免去用户再次登录的麻烦。

解决方案:

    将登录名绑在url上,用明文肯定是不行,要是被的用户发现了,可以URL上的登录名改成别人的登录名,就可以以别人身份进入到别的系统,所以采用DES加密算法身份,对登录名进行加密,注意,DES加密算法的KEY,是写在配置文件中,定期进行更改。这样就解决了别人冒用登录用户名的风险,但问题是,万一用户在别人的机器上打开过页面,则别的用户可通过复制iframe的url方式,来冒用他的身份,所以我们还需要将登录名和服务器上系统时间连接在一起,然后再进行加密,绑定在iframe的URL上,那边系统在获取登录名和时间后,需要判断获取的时间,与它的系统时间是不是一致或者系统时间指定的上下时间段中,如果不在它系统时间指定的时间段中,则需要提示登录失败,这样就防止了用户在别人的机器上打开页面后,别的用户通过复制URL的方式来冒用他的身份。因为URL上的时间已经过了,它系统的当前时间或指定时间段。(注:这样就要求我们系统服务器的时间必须与别的系统服务器的时间是同步的,或在指定误差内,这个需要系统管理员来维护。)

我给出明文的URL示例:TestUser1+"||"+"20100501120000";

www.yoursite.com/default.aspx?AuthID=745wnHJTeKynyO2eZ/RDl5BnsYKnW0Af

别的用户如果在2010-05-01 12:00:00 之后拿到这个链接,也是登录不进系统的。

可能有人会想,密文就是登录名+时间后,再加密,我也可以用DES加密算法来仿制,但是DES加密算法的KEY,你并不知道,而且

我们系统DES加密算法的KEY,是写在配置中文件中的,并且定期变化。这样就基本上解决了与别的系统相互共用登录信息安全性的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值