当前位置:Linux教程 - Linux - 身份认证中需要注意的问题

身份认证中需要注意的问题



        

    首先,还是要先讨论一下安全的问题。我们虽然可以通过Cookie保存用户的任何信息。但需要注意的是,我们仍然不能通过cookie来保存敏感的信息。因为Cookie在用户的硬盘上是明文存放的,任何人都可以轻松地打开一个Cookie文件查看一个Cookie所保留的内容。因此,我们只是通过设置一个类似user=wind的明文Cookie1来作为电子身份标志,是非常不安全的。黑客只要通过在发往服务器的HTTP Header中人为地加入user=wind 的Cookie信息,就可以轻松地伪造wind的身份。
    我们需要用加密算法为用户生成一个特定的字符串,存储到Cookie中来标志用户的身份。这样即使有人看到了标识自己身份的Cookie,也无法推算出他人的Cookie。从而让他人因无法仿造Cookie而无法进行电子身份的伪造。
    另外,我们还需要对Cookie进行一个时间限制。如果超过了这个时间限制,即使用户发来了Cookie也要视为无效。这样可以防止他人盗用合法用户的Cookie,从而进行身份的盗用。
    我们上面介绍过了,可以通过设置expire参数来设置Cookie的失效时间,这样当浏览器发送Cookie的时候,会将超时的Cookie删掉,而不会发送给Web服务器。但是这并不是一个好办法,因为这样将Cookie的时间检查放在了用户一方进行,那么用户完全可以通过修改系统时间和存在本地硬盘上Cookie文件的时间而骗过浏览器,从而发来已经超时的Cookie
    因此在用户登录后,我们除了产生一个独一无二的Cookie,还要记录下这个Cookie的产生时间,也就是用户的登录时间。那么当下次用户发来Cookie的时候,就可以对Cookie进行的时间合法性的检验
    还需要注意的是,在服务器上除了需要保留用户登录的时间外,还应该保留用户登录时IP地址。当下次Cookie发送来的时候,除了进行时间合法性的检查外,也要进行IP地址的检查,这样做的目的也是为了防止Cookie被盗用。
    因此一个内容上独一无二,并且具有时间和空间唯一性的Cookie就可以基本保证电子身分论证中的安全要求。


    发布人:netbull 来自:奥索网