一种用户登录方法、用户终端及服务器
技术领域
本申请涉及网络通信领域,尤其是涉及一种用户登录方法、用户终端及服务器。
背景技术
在各种网站或者应用中,用户往往需要通过用户登录信息进行登录操作后,才能对其个人信息进行查看、修改等。
但是,登录操作有时并不是用户主动实施的行为,而是由机器模拟实现的。例如,一些应用会通过账号、密码等用户登录信息,自动地登录银行网站等,从而能够获取到用户的银行流水数据等个人信息。显然,这种机器模拟登录的行为能够在用户不知情的情况下泄露用户的个人信息,因此存在很大的安全隐患。
为了防止这种机器模拟登录的行为,现有技术中会在登录界面采集用户的行为数据,例如鼠标移动的轨迹、点击的频率等等,从而在登录时根据用户的行为数据判断本次登录是否是用户的登录行为,而不是机器模拟的用户行为。
然而,由于现有技术中通常通过JavaScript脚本语言采集用户的行为数据,而JavaScript脚本语言是明文语言,能够轻易看到其源代码,因此通过对源代码的分析就能获知采集了哪些行为数据,通过修改源代码仍然能够实现机器模拟登录的行为。
发明内容
本申请解决的技术问题在于提供一种用户登录方法、用户终端及服务器,以实现在用户进行登录时,更好地防止机器模拟登录的行为,从而提高登录时的安全性。
为此,本申请解决技术问题的技术方案是:
本申请实施例提供了一种用户登录方法,用户终端获取登录标识;所述方法包括:
所述用户终端检测到用户进入登录页面时,将所述用户终端的当前时间作为登录时间;
所述用户终端在安全控件里利用私钥对所述登录时间进行加密,以生成加密信息;
所述用户终端将所述登录标识和所述加密信息发送至服务器,以使得所述服务器利用所述私钥对所述加密信息解密得到所述登录时间,以及若判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识;
当用户进行登录时,所述用户终端发送包括所述登录标识和用户登录信息的用户登录请求至所述服务器进行验证并根据验证结果执行登录操作;
其中,所述服务器存储的所述登录标识在失效时被所述服务器删除。
可选地,所述方法还包括:所述用户终端基于所述登录标识和所述登录时间生成登录信息;
所述用户终端在安全控件里利用私钥对所述登录时间进行加密,以生成加密信息具体为:
所述用户终端在安全控件里利用私钥对所述登录信息进行加密,以生成加密信息;
所述用户终端将所述登录标识和所述加密信息发送至所述服务器,以使得所述服务器利用所述私钥对所述加密信息解密得到所述登录时间具体为:
所述用户终端将所述加密信息发送至所述服务器,以使得所述服务器利用所述私钥对所述加密信息解密得到所述登录标识和所述登录时间。
可选地,所述用户终端获取登录标识具体包括:
判断所述用户终端是否存储有登录标识,如果是,则获取用户终端中存储的所述登录标识,如果否,则从所述服务器中获取分配的登录标识并存储在所述用户终端中。
可选地,所述用户终端发送所述用户登录请求至所述服务器进行验证并根据验证结果执行登录操作具体包括:
所述用户终端发送包括所述用户登录请求至所述服务器,以使得所述服务器若判断出存储有所述用户登录请求中的登录标识,基于所述用户登录信息执行登录操作。
可选地,所述服务器存储的所述登录标识在以下任一种情况时失效:
在所述服务器中存储达到第二预设时间或者所述服务器执行登录操作时。
可选地,所述方法还包括:
所述用户终端检测到用户退出登录页面时,向所述服务器发送删除标识请求,以使得所述服务器删除存储的登录标识。
可选地,所述安全控件具体为密码框安全控件或者FLASH安全控件。
本申请实施例提供了一种用户登录方法,所述方法包括:
服务器接收用户终端发送的登录标识和加密信息;其中,所述加密信息具体为所述用户终端检测到用户进入登录页面后,将所述用户终端的当前时间作为登录时间,并在安全控件里利用私钥对所述登录时间加密后生成的;
所述服务器利用所述私钥对所述加密信息解密得到登录时间;
若所述服务器判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识;
当用户进行登录时,所述服务器接收所述用户终端发送的用户登录请求;所述用户登录请求中包括所述登录标识以及用户登录信息;
若所述服务器判断出存储有所述用户登录请求中的登录标识,基于所述用户登录信息执行登录操作;
其中,所述服务器在存储的登录标识失效时,删除该存储的登录标识。
可选地,所述服务器接收用户终端发送的登录标识和加密信息具体为:
所述服务器接收用户终端发送的加密信息;所述加密信息为所述用户终端在安全控件里利用私钥对所述登录信息加密后生成的,所述登录信息为所述用户终端基于所述登录标识和所述登录时间生成的;
所述服务器利用所述私钥对所述加密信息解密得到所述登录时间具体为:
所述服务器利用所述私钥对所述加密信息解密得到所述登录标识和所述登录时间。
可选地,执行所述基于所述用户登录信息执行登录操作之前,所述方法还包括:
判断所述用户终端在预设时间内发送的用户登录请求是否小于预设阈值,如果是,则执行所述基于所述用户登录信息执行登录操作。
可选地,所述服务器存储的所述登录标识在以下任一种情况时失效:
在所述服务器中存储达到第二预设时间或者所述服务器执行登录操作时。
可选地,所述方法还包括:
所述服务器接收到删除标识请求,删除存储的登录标识;所述删除标识请求由所述用户终端检测到用户退出登录页面时向所述服务器发送。
可选地,所述安全控件具体为密码框安全控件或者FLASH安全控件。
本申请实施例提供了一种用户登录方法,用户终端获取登录标识,所述方法包括:
所述用户终端检测到用户进入登录页面时,将所述用户终端的当前时间作为登录时间;
所述用户终端在安全控件里利用私钥对所述登录时间进行加密,以生成加密信息;
所述用户终端将所述登录标识和所述加密信息发送至服务器;
所述服务器利用所述私钥对所述加密信息解密得到所述登录时间;
若所述服务器判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识;
当用户进行登录时,所述用户终端发送包括所述登录标识和用户登录信息的用户登录请求至所述服务器;
若所述服务器判断出存储有所述用户登录请求中的登录标识,基于所述用户登录信息执行登录操作;
其中,所述服务器在存储的登录标识失效时,删除该存储的登录标识。
本申请实施例提供了一种用户终端,所述终端包括:获取模块、检测模块、安全控件和发送模块;
所述获取模块用于获取登录标识。
所述检测模块用于检测到用户进入登录页面时,将所述用户终端的当前时间作为登录时间;
所述安全控件用于利用私钥对所述登录时间进行加密,以生成加密信息;
所述发送模块用于将所述登录标识和所述加密信息发送至所述服务器,以使得所述服务器利用所述私钥对所述加密信息解密得到所述登录时间,以及若判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识;以及,
当用户进行登录时,发送包括所述登录标识和用户登录信息的用户登录请求至所述服务器进行验证并根据验证结果执行登录操作;
其中,所述服务器存储的所述登录标识在失效时被所述服务器删除。
本申请实施例提供了一种服务器,包括:接收模块、解密模块、判断模块、存储模块和删除模块;
所述接收模块用于接收用户终端发送的登录标识和加密信息,以及当用户进行登录时,接收所述用户终端发送的用户登录请求;
其中,所述加密信息具体为所述用户终端检测到用户进入登录页面后,将所述用户终端的当前时间作为登录时间,并在安全控件里利用私钥对所述登录时间加密后生成的;所述用户登录请求中包括所述登录标识以及用户登录信息;
所述解密模块用于利用所述私钥对所述加密信息解密得到登录时间;
所述判断模块用于若判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,通过所述存储模块存储所述登录标识,以及在所述接收模块接收到所述用户登录请求之后,若判断出所述存储模块存储有所述用户登录请求中的登录标识,基于所述用户登录信息执行登录操作;
所述删除模块用于在所述存储模块存储的所述登录标识失效后,删除该存储的登录标识。
本申请实施例提供了一种用户登录系统,包括用户终端和服务器;
所述用户终端用于,检测到用户进入登录页面时将所述用户终端的当前时间作为登录时间、在安全控件里利用私钥对所述登录时间进行加密以生成加密信息、将所述登录标识和所述加密信息发送至所述服务器,以及当用户进行登录时,向所述服务器发送包括所述登录标识和用户登录信息的用户登录请求;
所述服务器用于,接收所述登录标识和所述加密信息、利用所述私钥对所述加密信息解密得到登录时间,若判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识、接收所述用户登录请求,若判断出存储有所述用户登录请求中的登录标识,基于所述用户登录信息执行登录操作、以及在存储的登录标识失效时,删除该存储的登录标识。
通过上述技术方案可知,本申请实施例中,当用户终端检测到用户进入登录页面后,会在安全控件里利用私钥对登录时间进行加密并发送至服务器,服务器判断出登录时间与服务器的当前时间的间隔小于预设时间,就会存储登录标识。由于安全控件采用密文的方式,破解难度很高,因此如果用户没有实际进入登录页面则无法生成加密信息,服务器端也无法保存登录标识。而且若用户进入登录页面的登录时间与服务器的当前时间小于预设时间,表示用户进入登录页面的时间不久,服务器才会存储登录标识,从而避免了人为登录一次以获取加密信息,每次都向服务器发送同一个加密信息以实现机器模拟登录的行为。当用户进行登录时,用户终端发送用户登录请求至服务器进行验证,若服务器验证出存储有用户登录请求中的登录标识,表示用户实际进入过登录页面,因此执行登录操作。其中服务器在存储的登录标识失效时删除该登录标识,以避免重复利用服务器存储的登录标识实现机器模拟登录的行为。可见,在本申请中,通过安全控件实现了密文的加密方式,并且用户进入登录页面的时间不久才允许执行登录操作,更好地防止了机器模拟登录的行为,提高了登录时的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的用户登录方法的第一实施例的流程示意图;
图2为本申请提供的用户登录方法的第二实施例的流程示意图;
图3为本申请提供的用户登录方法的第三实施例的流程示意图;
图4为本申请提供的用户登录方法的第四实施例的通信交互图;
图5为本申请提供的用户终端的具体实施例的结构示意图;
图6为本申请提供的服务器的具体实施例的结构示意图;
图7为本申请提供的系统的具体实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一
请参阅图1,本申请实施例提供了用户登录方法的第一实施例,本实施例应用于用户终端。
本实施例中,用户终端获取登录标识。在具体实现时,可以是判断用户终端是否存储有登录标识,如果是,则获取用户终端中存储的登录标识;如果否,则说明用户可能是第一次进入登录页面或者存储的登录标识被清空,此时从服务器中获取分配的登录标识并存储在用户终端中。例如,当用户第一次进入登录页面或者Cookies被清空时,向服务器发送分配标识请求,服务器为用户登录分配一个对应的登录标识,并发送至用户终端。此时用户终端可以保存该登录标识,例如保存在Cookies中,用户下一次进入登录页面时,用户终端可以直接从Cookies中获取登录标识。
登录标识具体可以为会话标识,例如由服务器当前时间、服务器MAC地址、服务器IP地址以及自增序列号中的一项或多项组成。当然登录标识也可以采取其他的设置规则,本申请实施例对此不做限定。
本实施例具体包括:
S101:用户终端检测到用户进入登录页面时,将所述用户终端的当前时间作为登录时间。
在该步骤中,用户终端可以通过浏览器等软件检测用户是否进入到登录页面。登录页面指的是用于登录的网页,例如,当用户在地址栏中输入银行等网站时,网页会自动跳转到银行页面上,银行页面上通常设置有用于输入用户登录信息的输入框,此时该银行页面就是一种登录页面。
S102:所述用户终端在安全控件里利用私钥对所述登录时间进行加密,以生成加密信息。
实际上,目前一些用于机器模拟用户登录的应用,也能够获取到登录标识。但是由于本申请实施例中在安全控件里实现密文加密,因此这些应用很难分析出安全控件的密文加密方式,从而无法生成正确的加密信息。也就是说,只有用户真正进入过登录页面,才能够在安全控件里生成正确的加密信息。
安全控件实际上是一种进程,可以使得当用户进入登录页面后,安全控件的进程开启,而当用户退出登录页面后,安全控件的进程关闭,从而进一步杜绝在登录页面关闭时,一些应用的模拟机器登录行为。安全控件具体可以为密码框安全控件或者FLASH安全控件。其中相比于FLASH安全控件,密码框安全控件的安全系数更高,破解难度更大。具体地,在使用WINDOWS系统下的IE浏览器时,密码框安全控件可以是ActiveX控件,而在MAC系统下密码框安全控件可以是Safari浏览器插件。目前很多银行网站都采用了上述密码框安全控件。
S103:所述用户终端将所述登录标识和所述加密信息发送至服务器,以使得所述服务器利用所述密钥对所述加密信息解密得到所述登录时间,以及若判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,存储所述登录标识。
服务器解密的方式与安全控件的密文加密方式相对应,并且所使用的密钥相同,因此服务器能够对加密信息解密得到登录时间。
服务器解密得到登录时间后,会进一步判断登录时间,也就是用户进入登录页面的时间与服务器的当前时间的间隔是否小于第一预设时间,如果是,则说明用户进入登录页面时间不久,例如设置第一预设时间为5分钟,此时服务器才会存储登录标识。这是为了避免有些模拟机器登录的应用,会先通过人为登录一次获取到加密信息,之后每次都利用同一个加密信息实现机器模拟登录的行为。
在该步骤中,用户终端还可以将用户终端的MAC地址一并发送至服务器,以使得服务器区分存储的是哪个用户终端的登录标识。
S104:当用户进行登录时,所述用户终端发送包括所述登录标识和用户登录信息的用户登录请求至所述服务器进行验证并根据验证结果执行登录操作。
在用户进行登录时,例如用户在用户终端输入了用户登录信息并且点击登录按钮时,用户终端会向服务器发送用户登录请求。其中,用户登录请求中包括有未加密的登录标识以及用户登录信息。用户登录信息为用户用于登录的账号、密码等信息,并且用户登录信息可以是用户手动输入的,也可以是预先保存的。
在该步骤中,用户终端向服务器发送了用户登录请求后,服务器会根据用户登录请求进行验证,并根据验证结果执行登录操作。具体操作时,可以是服务器判断是否存储有用户登录请求中的登录标识,如果有,则说明之前用户的确进入过登录页面,因此并不是机器模拟用户登录的行为,执行登录操作。否则,则说明用户并没有进入过登录页面,此时可以直接结束流程,或者也可以通知用户重新进入登录页面登录。
其中,为了保证服务器存储的登录标识具有一定的时效性,以避免重复利用服务器存储的登录标识实现机器模拟登录的行为,因此在本实施例中,服务器存储的所述登录标识在失效时被所述服务器删除。
其中,服务器存储的登录标识失效指的是该登录标识已经不能用于执行登录操作,具体可以包括以下任一种情况:登录出现异常情况,例如登录标识在服务器中存储达到第二预设时间,仍未执行登录操作,或者是已经根据该登录标识执行了登录操作。此时删除存储的登录标识,用户需要重新进入登录页面才能完成登录操作。
需要说明的是,本实施例中,可以是在以上任一种失效情况出现时,删除存储的登录标识。例如,当服务器执行登录操作时,以及存储登录标识达到第二预设时间时,均执行删除存储的登录标识。
通过上述技术方案可知,本申请实施例中,当用户终端检测到用户进入登录页面后,会在安全控件里利用私钥对登录时间进行加密并发送至服务器,服务器判断出登录时间与服务器的当前时间的间隔小于预设时间,就会存储登录标识。由于安全控件采用密文的方式,破解难度很高,因此如果用户没有实际进入登录页面则无法生成加密信息,服务器端也无法保存登录标识。而且若用户进入登录页面的登录时间与服务器的当前时间小于预设时间,表示用户进入登录页面的时间不久,服务器才会存储登录标识,从而避免了人为登录一次以获取加密信息,每次都向服务器发送同一个加密信息以实现机器模拟登录的行为。当用户想要登录时,用户终端发送用户登录请求至服务器进行验证,若服务器验证出存储有用户登录请求中的登录标识,表示用户实际进入过登录页面,因此执行登录操作。其中服务器在存储的登录标识失效时删除该登录标识,以避免重复利用服务器存储的登录标识实现机器模拟登录的行为。可见,在本申请中,通过安全控件实现了密文的加密方式,并且用户进入登录页面的时间不久才允许执行登录操作,更好地防止了机器模拟登录的行为,提高了登录时的安全性。
为了进一步避免异常登录,服务器在执行登录操作之前,还可以进一步判断用户终端在第二预设时间内发送的用户登录请求是否小于预设阈值,如果是,才会执行登录操作,否则不允许登录。
在本实施例中,可以不仅仅对登录时间进行密文加密以生成加密信息,而是同时对登录时间和登录信息进行密文加密。这是因为登录时间通常数据长度较短,通过对加密前的数据和加密后的数据的分析,有可能能够破解出密文加密算法,本实施例中可以将登录时间和登录标识组成登录信息,由于登录标识长度一般较长,因此组合后的登录信息的长度相比于登录时间有很大提高,几乎很难破解出加密算法,进一步保证了安全性。下面说明具体实现方式。
所述方法还包括:所述用户终端基于所述登录标识和所述登录时间生成登录信息。例如,用户终端将32位的会话标识+登录时间的秒数(10位)作为登录信息。
步骤S102中的所述用户终端在安全控件里利用私钥对所述登录时间进行加密,以生成加密信息具体为:所述用户终端在安全控件里利用私钥对所述登录信息进行加密,以生成加密信息。此时加密信息中不仅包括有登录时间,而且还有登录标识。
步骤S103中的所述用户终端将所述登录标识和所述加密信息发送至所述服务器,以使得所述服务器利用所述密钥对所述加密信息解密得到所述登录时间具体为:所述用户终端将所述加密信息发送至所述服务器,以使得所述服务器利用所述密钥对所述加密信息解密得到所述登录标识和所述登录时间。
在本实施例中,所述方法还可以包括:检测到用户退出登录页面,向服务器发送删除加密标识请求,以使得所述服务器删除存储的登录标识。
也就是说,当用户终端检测到用户退出登录页面后,如果此时还未登录则表示此次登录操作取消,因此删除在服务器中存储的登录标识,从而即使此时一些应用向服务器发送用户登录请求,服务器也会由于没有存储登录标识而禁止登录操作,进一步防止了机器模拟登录的行为。
上面从用户终端侧介绍了本申请实施例,下面从服务器侧进行说明。
实施例二
请参阅图2,本申请实施例提供了用户登录方法的第二实施例,本实施例应用于服务器。
本实施例具体包括:
S201:服务器接收用户终端发送的登录标识和加密信息;其中,所述加密信息具体为所述用户终端检测到用户进入登录页面后,将所述用户终端的当前时间作为登录时间,并在安全控件里利用私钥对所述登录时间加密后生成的。
在本申请实施例中,当用户终端检测到用户进入登录页面后,会将用户终端的当前时间作为登录时间,并在安全控件里利用私钥对登录时间进行加密以生成加密信息,将加密信息和登录标识发送至服务器。
其中,用户终端的登录标识具体可以是从服务器中获取的。例如用户终端在第一次进入登录页面或者Cookies被清空时,向服务器发送分配标识请求,服务器为用户终端的登录分配一个对应的登录标识,并发送至用户终端。此时用户终端可以保存该登录标识,例如保存在Cookies中,用户终端下一次登录浏览器时,可以直接从Cookies中获取登录标识。登录标识具体可以为会话标识,例如由服务器当前时间、服务器MAC地址、服务器IP地址以及自增序列号中的一项或多项组成。当然登录标识也可以采取其他的设置规则,本申请实施例对此不做限定。
用户终端可以通过浏览器等软件检测用户是否进入到登录页面,登录页面指的是用于登录的网页,例如,当用户在地址栏中输入银行等网站时,网页会自动跳转到银行页面上,银行页面上通常设置有用于输入用户登录信息的输入框,此时该银行页面就是一种登录页面。
实际上,目前一些用于机器模拟用户登录的应用,也能够获取到登录标识。但是由于本申请实施例中在安全控件里实现密文加密,因此这些应用很难分析出安全控件的密文加密方式,从而无法生成正确的加密信息。也就是说,只有用户真正进入过登录页面,才能够在安全控件里利用私钥加密以生成正确的加密信息。
安全控件实际上是一种进程,可以使得当用户进入登录页面后,安全控件的进程开启,而当用户退出登录页面后,安全控件的进程关闭,从而进一步杜绝在登录页面关闭时,一些应用的模拟机器登录行为。安全控件具体可以为密码框安全控件或者FLASH安全控件。其中相比于FLASH安全控件,密码框安全控件的安全系数更高,破解难度更大。具体地,在使用WINDOWS系统下的IE浏览器时,密码框安全控件可以是ActiveX控件,而在MAC系统下密码框安全控件可以是Safari浏览器插件。目前很多银行网站都采用了上述密码框安全控件。
S202:所述服务器利用所述私钥对所述加密信息解密得到登录时间。
其中,服务器解密的方式与安全控件的密文加密方式相对应,并且所使用的私钥相同,因此服务器能够对加密信息解密得到登录时间。
S203:若所述服务器判断出所述登录时间与所述服务器的当前时间的间隔小于第一预设时间,执行S204。
服务器解密得到登录时间后,会进一步判断登录时间,也就是用户进入登录页面的时间与服务器的当前时间的间隔是否小于第一预设时间,如果是,则说明用户进入登录页面时间不久,例如设置第一预设时间为5分钟,此时服务器才会存储登录标识。这是为了避免有些模拟机器登录的应用,会先通过人为登录一次获取到加密信息,之后每次都利用同一个加密信息实现机器模拟登录的行为。
如果服务器判断出所述登录时间与所述服务器的当前时间的间隔不小于第一预设时间,则说明此时可能是机器模拟登录的行为,因此可以直接结束流程,或者通知用户重新进入登录页面。
S204:服务器存储所述登录标识。
此时说明用户进入登录页面时间不久,因此在服务器中存储登录标识,例如具体可以将登录标识存储在服务器的缓存中。
其中服务器还可以接收用户终端的MAC地址,以区分存储的是哪个用户终端的登录标识。
在本实施例中,服务器中是否存储有正确的登录标识表示了用户是否进入过登录页面。例如,如果没有通过安全控件对登录时间进行加密,则服务器中不会存储有正确的登录标识,此时说明用户没有进入到登录页面,因此本次登录实际上很可能为机器模拟登录行为。
S205:当用户进行登录时,所述服务器接收所述用户终端发送的用户登录请求;所述用户登录请求中包括所述登录标识以及用户登录信息。
在用户进行登录时,例如用户在用户终端输入了用户登录信息并且点击登录按钮时,用户终端会向服务器发送用户登录请求。其中,用户登录请求中包括有未加密的登录标识以及用户登录信息。用户登录信息为用户用于登录的账号、密码等信息,并且用户登录信息可以是用户手动输入的,也可以是预先保存的。
S206:若所述服务器判断出存储有所述用户登录请求中的登录标识,执行S207。
当服务器接收到用户登录请求后,会判断是否存储有用户登录请求中的登录标识,如果有,则说明之前用户的确进入过登录页面,因此并不是机器模拟用户登录的行为,执行登录操作。否则,则说明用户并没有进入过登录页面,此时可以直接结束流程,或者也可以通知用户重新进入登录页面登录。
其中,为了保证服务器存储的登录标识具有一定的时效性,以避免重复利用服务器存储的登录标识实现机器模拟登录的行为,因此在本实施例中,所述服务器在存储的登录标识失效时,删除该存储的登录标识。
其中,服务器存储的登录标识失效指的是该登录标识已经不能用于执行登录操作,具体可以包括以下任一种情况:登录出现异常情况,例如登录标识在服务器中存储达到第二预设时间,仍未执行登录操作,或者是已经根据该登录标识执行了登录操作。此时删除存储的登录标识,用户需要重新进入登录页面才能完成登录操作。
需要说明的是,本实施例中,可以是在以上任一种失效情况出现时,删除存储的登录标识。
S207:所述服务器基于所述用户登录信息执行登录操作。
为了进一步避免异常登录,在该步骤中服务器执行所述基于所述用户登录信息执行登录操作之前,所述方法还可以包括:判断所述用户终端在预设时间内发送的用户登录请求是否小于预设阈值,如果是,则执行所述基于所述用户登录信息执行登录操作。也就是说,服务器还可以进一步判断用户终端在预设时间内发送的用户登录请求是否小于预设阈值,如果是,才会执行登录操作,否则不允许登录,可以结束流程或者通知用户重新进入登录页面。
在本实施例中,可以不仅仅对登录时间进行密文加密以生成加密信息,而是同时对登录时间和登录信息进行密文加密。下面具体说明。
步骤S201中所述服务器接收用户终端发送的登录标识和加密信息具体为:所述服务器接收用户终端发送的加密信息;所述加密信息为所述用户终端在安全控件里利用私钥对所述登录信息加密后生成的,所述登录信息为所述用户终端基于所述登录标识和所述登录时间生成的。
步骤S202中所述服务器利用所述私钥对所述加密信息解密得到所述登录时间具体为:所述服务器利用所述私钥对所述加密信息解密得到所述登录标识和所述登录时间。
在本实施例中,所述方法还可以包括:所述服务器接收删除加密标识请求,删除存储的登录标识;其中,所述删除标识请求由所述用户终端检测到用户退出登录页面时向所述服务器发送。
也就是说,当用户终端检测到用户退出登录页面后,如果此时还未登录则表示此次登录操作取消,因此删除在服务器中存储的登录标识,从而即使此时一些应用向服务器发送用户登录请求,服务器也会由于没有存储登录标识而禁止登录操作,进一步防止了机器模拟登录的行为。
上面通过两个实施例分别从用户终端和服务器侧说明了本申请实施例,下面从用户终端和服务器组成的系统侧,描述本申请实施例。
实施例三
请参阅图3,本申请实施例提供了用户登录方法的第三实施例。本实施例中,用户终端获取登录标识。
本实施例具体包括:
S301:用户终端检测到用户进入登录页面时,将用户终端的当前时间作为登录时间。
S302:用户终端在安全控件里利用私钥对登录时间进行加密,以生成加密信息。
S303:用户终端将登录标识和加密信息发送至服务器。
S304:服务器利用私钥对加密信息解密得到登录时间。
S305:服务器判断登录时间与服务器的当前时间的间隔是否小于第一预设时间,如果是,执行S306。
S306:服务器存储登录标识。
S307:当用户进行登录时,用户终端发送包括登录标识和用户登录信息的用户登录请求至服务器。
S308:服务器判断是否存储有用户登录请求中的登录标识,如果是,执行S309。
S309:服务器基于用户登录信息执行登录操作。
其中,服务器在存储的登录标识失效时,删除该存储的登录标识。
本实施例从用户终端和服务器组成的系统侧描述了本申请实施例,相关之处请参见用户终端侧和服务器侧的实施例,这里不再详述。
下面结合具体的应用场景,描述本申请实施例的优选实施方式。
实施例四
请参阅图4,本申请实施例提供了用户登录方法的第四实施例。在本实施例中,用户终端包括浏览器和安全控件。
本实施例具体包括:
S401:当浏览器检测到用户进入登录页面,向服务器发送分配标识请求,并将用户终端的当前时间作为登录时间。其中,分配标识请求具体可以为HTTPS请求。
S402:服务器为本次登录生成会话标识,并将该会话标识发送至浏览器。
其中,会话标识具体由服务器当前时间、服务器MAC地址、服务器IP地址以及自增序列号组成。
S403:浏览器将32位的会话标识+登录时间的秒数(10位)作为登录信息,通过JavaScript脚本语言发送HTTPS请求至安全控件。该HTTPS请求中包括有该登录信息。
S404:安全控件接收到浏览器发送的HTTPS请求后,通过私钥对HTTPS请求中的登录信息进行加密,以生成加密信息。
S405:安全控件通过HTTPS请求所述加密信息和用户终端的MAC地址发送至所述服务器。
S406:服务器通过所述私钥对加密信息解密得到登录时间和会话标识。
S407:服务器判断解密出的登录时间与所述服务器的当前时间的间隔是否小于第一预设时间(例如5分钟),如果是,则在缓存中存储所述会话标识和用户终端的MAC地址,如果否,则可以向浏览器返回重新登录提示。
S408:当用户进行登录时,浏览器向服务器发送用户登录请求;所述用户登录请求中包括服务器生成的会话标识、用户登录信息以及用户终端的MAC地址。
用户登录信息具体为用户输入的账号和密码。
S409:服务器判断缓存中是否存储有用户登录请求中的会话标识,如果有,则执行S310,如果否,则可以向浏览器返回登录失败提示。
S410:服务器基于用户的账号和密码进行登录,如果登录成功,向浏览器返回登录成功提示,如果登录失败,向浏览器返回账号密码错误提示。
S411:服务器删除缓存中的会话标识。结束流程。
本实施例中,若服务器判断出在缓存中存储会话标识达到第二预设时间,还可以删除存储的会话标识。
上面对本申请实施例中的用户登录方法的实施例进行了描述,下面将从模块化功能实体的角度对本申请实施例中的用户终端、服务器及系统的实施例进行描述。
实施例五
请参阅图5,本申请实施例提供了一种用户终端,本实施例的用户终端包括:获取模块501、检测模块502、安全控件503和发送模块504。
获取模块501用于获取登录标识。
在具体实现时,可以是由获取模块501判断用户终端是否存储有登录标识,如果是,则获取用户终端中存储的登录标识;如果否,则说明用户可能是第一次进入登录页面,此时从服务器中获取分配的登录标识并存储在用户终端中。例如,当用户第一次进入登录页面或者Cookies被清空时,向服务器发送分配标识请求,服务器为用户登录分配一个对应的登录标识,并发送至用户终端。此时用户终端可以保存该登录标识,例如保存在Cookies中,用户下一次进入登录页面时,用户终端可以直接从Cookies中获取登录标识。
登录标识具体可以为会话标识,例如由服务器当前时间、服务器MAC地址、服务器IP地址以及自增序列号中的一项或多项组成。当然登录标识也可以采取其他的设置规则,本申请实施例对此不做限定。
检测模块502用于检测到用户进入登录页面时,将用户终端的当前时间作为登录时间。
安全控件503用于利用私钥对登录时间进行加密,以生成加密信息。
安全控件实际上是一种进程,可以使得当用户进入登录页面后,安全控件的进程开启,而当用户退出登录页面后,安全控件的进程关闭,从而进一步杜绝在登录页面关闭时,一些应用的模拟机器登录行为。安全控件具体可以为密码框安全控件或者FLASH安全控件。其中相比于FLASH安全控件,密码框安全控件的安全系数更高,破解难度更大。具体地,在使用WINDOWS系统下的IE浏览器时,密码框安全控件可以是ActiveX控件,而在MAC系统下密码框安全控件可以是Safari浏览器插件。目前很多银行网站都采用了上述密码框安全控件。
发送模块504用于将登录标识和加密信息发送至服务器,以使得服务器利用私钥对加密信息解密得到登录时间,以及若判断出登录时间与服务器的当前时间的间隔小于第一预设时间,存储登录标识。
服务器解密得到登录时间后,会进一步判断登录时间,也就是用户进入登录页面的时间与服务器的当前时间的间隔是否小于第一预设时间,如果是,则说明用户进入登录页面时间不久,例如设置第一预设时间为5分钟,此时服务器才会存储登录标识。这是为了避免有些模拟机器登录的应用,会先通过人为登录一次获取到加密信息,之后每次都利用同一个加密信息实现机器模拟登录的行为。
发送模块504还可以将用户终端的MAC地址一并发送至服务器,以使得服务器区分存储的是哪个用户终端的登录标识。
发送模块504还用于当用户进行登录时,发送包括登录标识和用户登录信息的用户登录请求至所述服务器进行验证并根据验证结果执行登录操作。
发送模块504向服务器发送了用户登录请求后,服务器会根据用户登录请求进行验证,并根据验证结果执行登录操作。具体操作时,可以是服务器判断是否存储有用户登录请求中的登录标识,如果有,则说明之前用户的确进入过登录页面,因此并不是机器模拟用户登录的行为,执行登录操作。否则,则说明用户并没有进入过登录页面,此时可以直接结束流程,或者也可以通知用户重新进入登录页面登录。
其中,为了保证服务器存储的登录标识具有一定的时效性,以避免重复利用服务器存储的登录标识实现机器模拟登录的行为,因此在本实施例中,服务器存储的所述登录标识在失效时被所述服务器删除。
其中,服务器存储的登录标识失效指的是该登录标识已经不能用于执行登录操作,具体可以包括以下任一种情况:登录出现异常情况,例如登录标识在服务器中存储达到第二预设时间,仍未执行登录操作,或者是已经根据该登录标识执行了登录操作。此时删除存储的登录标识,用户需要重新进入登录页面才能完成登录操作。
需要说明的是,本实施例中,可以是在以上任一种失效情况出现时,删除存储的登录标识。
为了进一步避免异常登录,服务器在执行登录操作之前,还可以进一步判断用户终端在第二预设时间内发送的用户登录请求是否小于预设阈值,如果是,才会执行登录操作,否则不允许登录。
在本实施例中,可以不仅仅对登录时间进行密文加密以生成加密信息,而是同时对登录时间和登录信息进行密文加密。这是因为登录时间通常数据长度较短,通过对加密前的数据和加密后的数据的分析,有可能能够破解出密文加密算法,本实施例中可以将登录时间和登录标识组成登录信息,由于登录标识长度一般较长,因此组合后的登录信息的长度相比于登录时间有很大提高,几乎很难破解出加密算法,进一步保证了安全性。下面说明具体实现方式。
本实施例的终端还包括生成模块。
生成模块用于基于登录标识和登录时间生成登录信息。
安全控件503用于利用私钥对登录时间进行加密,以生成加密信息具体为:
安全控件503用于利用私钥对登录信息进行加密,以生成加密信息;
发送模块504用于将登录标识和加密信息发送至服务器,以使得服务器利用私钥对加密信息解密得到登录时间具体为:
发送模块504用于将加密信息发送至服务器,以使得服务器利用私钥对加密信息解密得到登录标识和登录时间。
本实施例中,检测模块502还可以用于检测到用户退出登录页面时,向所述服务器发送删除标识请求,以使得所述服务器删除存储的登录标识。
上面介绍了本申请实施例提供的用户终端,下面介绍本申请实施例提供的服务器。
实施例六
请参阅图6,本申请实施例提供了服务器的具体实施例。本实施例的服务器包括接收模块601、解密模块602、判断模块603、存储模块604和删除模块605。
接收模块601用于接收用户终端发送的登录标识和加密信息,以及当用户进行登录时,接收用户终端发送的用户登录请求。
其中,加密信息具体为用户终端检测到用户进入登录页面后,将用户终端的当前时间作为登录时间,并在安全控件里利用私钥对登录时间加密后生成的。在本申请实施例中,当用户终端检测到用户进入登录页面后,会将用户终端的当前时间作为登录时间,并在安全控件里利用私钥对登录时间进行加密以生成加密信息,将加密信息和登录标识发送至服务器。
用户登录请求中包括登录标识以及用户登录信息。在用户进行登录时,例如用户在用户终端输入了用户登录信息并且点击登录按钮时,用户终端会向服务器发送用户登录请求。其中,用户登录请求中包括有未加密的登录标识以及用户登录信息。用户登录信息为用户用于登录的账号、密码等信息,并且用户登录信息可以是用户手动输入的,也可以是预先保存的。
解密模块602用于利用私钥对加密信息解密得到登录时间。
其中,解密模块602解密的方式与安全控件的密文加密方式相对应,并且所使用的私钥相同,因此解密模块602能够对加密信息解密得到登录时间。
判断模块603用于若判断出登录时间与服务器的当前时间的间隔小于第一预设时间,通过存储模块604存储登录标识,以及在接收模块601接收到用户登录请求之后,若判断出存储模块604存储有用户登录请求中的登录标识,基于用户登录信息执行登录操作。
解密模块602解密得到登录时间后,判断模块603会进一步判断登录时间,也就是用户进入登录页面的时间与服务器的当前时间的间隔是否小于第一预设时间,如果是,则说明用户进入登录页面时间不久,例如设置第一预设时间为5分钟,此时判断模块603才会通过存储模块604存储登录标识。这是为了避免有些模拟机器登录的应用,会先通过人为登录一次获取到加密信息,之后每次都利用同一个加密信息实现机器模拟登录的行为。
如果判断模块603判断出所述登录时间与所述服务器的当前时间的间隔不小于第一预设时间,则说明此时可能是机器模拟登录的行为,因此判断模块603可以直接停止工作,或者通知用户重新进入登录页面。
当接收模块601接收到用户登录请求后,判断模块603会判断存储模块604是否存储有用户登录请求中的登录标识,如果有,则说明之前用户的确进入过登录页面,因此并不是机器模拟用户登录的行为,执行登录操作。否则,则说明用户并没有进入过登录页面,此时判断模块603可以直接停止工作,或者也可以通知用户重新进入登录页面登录。
删除模块605用于在存储模块604存储的登录标识失效时,删除该存储的登录标识。
其中,存储模块604存储的登录标识失效指的是该登录标识已经不能用于执行登录操作,具体可以包括以下任一种情况:登录出现异常情况,例如登录标识在服务器中存储达到第二预设时间,仍未执行登录操作,或者是已经根据该登录标识执行了登录操作。此时删除模块605删除存储模块604存储的登录标识,用户需要重新进入登录页面才能完成登录操作。
需要说明的是,本实施例中,删除模块605可以是在以上任一种失效情况出现时,删除存储模块604存储的登录标识。
为了进一步避免异常登录,在判断模块603执行所述基于所述用户登录信息执行登录操作之前,还用于判断所述用户终端在预设时间内发送的用户登录请求是否小于预设阈值,如果是,则执行所述基于所述用户登录信息执行登录操作。也就是说,判断模块603还可以进一步判断用户终端在预设时间内发送的用户登录请求是否小于预设阈值,如果是,才会执行登录操作,否则不允许登录,可以结束流程或者通知用户重新进入登录页面。
在本实施例中,可以不仅仅对登录时间进行密文加密以生成加密信息,而是同时对登录时间和登录信息进行密文加密。下面具体说明。
接收模块601用于接收用户终端发送的登录标识和加密信息具体为:接收模块601用于接收用户终端发送的加密信息;加密信息为用户终端在安全控件里利用私钥对登录信息加密后生成的,登录信息为用户终端基于登录标识和登录时间生成的。
解密模块602用于利用私钥对加密信息解密得到登录时间具体为:解密模块602用于利用私钥对加密信息解密得到登录标识和登录时间。
在本实施例中,,接收模块601还可以用于接收到删除标识请求时,通知删除模块605删除在存储模块604存储的登录标识;删除标识请求由所述用户终端检测到用户退出登录页面时向所述服务器发送。
也就是说,当用户终端检测到用户退出登录页面后,如果此时还未登录则表示此次登录操作取消,因此删除在服务器的存储模块604中存储的登录标识,从而即使此时一些应用向服务器发送用户登录请求,服务器也会由于没有存储登录标识而禁止登录操作,进一步防止了机器模拟登录的行为。
实施例七
如图7所示,本申请还提供了用户登录系统的具体实施例,本实施例的系统包括用户终端701和服务器702。
用户终端701用于,检测到用户进入登录页面时将用户终端701的当前时间作为登录时间、在安全控件里利用私钥对登录时间进行加密以生成加密信息、将登录标识和加密信息发送至服务器702,以及当用户进行登录时,向服务器702发送包括登录标识和用户登录信息的用户登录请求。
服务器702用于,接收登录标识和加密信息、利用私钥对加密信息解密得到登录时间,若判断出登录时间与服务器702的当前时间的间隔小于第一预设时间,存储登录标识、接收用户登录请求,若判断出存储有用户登录请求中的登录标识,基于用户登录信息执行登录操作、以及在存储的登录标识失效时,删除该存储的登录标识。
其中,用户终端701可以为本申请实施例提供的用户终端的任一实施例,服务器702可以为本申请实施例提供的服务器的任一实施例。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。