多用户网站自动登录器及其实现方法

文档序号:7770565阅读:305来源:国知局
多用户网站自动登录器及其实现方法
【专利摘要】本发明公开了一种多用户网站自动登录器及其实现方法,包括证书组装模块、Cookies信息池、用户信息存取模块和模版信息读取模块;其中,所述证书组装模块,用于获取用户信息、网站本身的域名信息和模版信息来组装证书;所述Cookies信息池,为一个映射(map)结构,其键(key)为网站域名,数值(value)为一个个的子map结构,所述子map结构每条记录的key是用户的用户名和密码的哈希值,所述value为一个cookie信息的字符串;用户信息存取模块,用于从数据来源读取需要用户的用户名和密码信息;及模版信息读取模块,用于从数据来源读取所需要的信息。利用本发明,能够支持批量用户以占用系统资源尽可能少的情况下快速登录新站点并实现多用户自动登录。
【专利说明】多用户网站自动登录器及其实现方法
【技术领域】
[0001]本发明涉及互联网通信【技术领域】,尤其涉及一种多用户网站自动登录器及其实现方法,使用计算机语言java进行的系统实现,其作用不仅限于将携带用户认证信息、特殊请求信息、异步post数据请求,自动登录指定站点,而且还专注于cookie信息有效性验证,信息池的建立和维护。
【背景技术】
[0002]在大数据时代,有很多需要获取网络信息的应用场景,网站也需要越来越多的注册用户来体现自己的价值,要求站点信息或者资源需要用户登录后才能看到。现在比较常用的方法是模拟浏览器实现post请求。这是最基本的实现思路,也是比较费时的一种做法,并且无法实现批量的用户登录。

【发明内容】

[0003]有鉴于此,本发明的主要目的在于提供一种多用户网站自动登录器及其实现方法,能够支持批量用户以占用系统资源尽可能少的情况下快速登录新站点并实现多用户自动登录。
[0004]为达到上述目的,本发明的技术方案是这样实现的:
一种多用户网站自动登录器,主要包括证书组装模块、Cookies信息池、用户信息存取模块和模版信息读取模块;其中,
所述证书组装模块,用于获取用户信息、网站本身的域名信息和模版信息来组装证
书;
所述Cookies信息池,为一个映射map结构,其键key为网站域名,数值value为一个个的子map结构,所述子map结构每条记录的键key是用户的用户名和密码的哈希值,所述value为一个cookie信息的字符串;
用户信息存取模块,用于从数据来源读取需要用户的用户名和密码信息;及 模版信息读取模块,用于从数据来源读取所需要的信息。
[0005]其中,所述用户信息包括登录网站用的用户名和密码信息。
[0006]所述数据来源为文件或数据库。
[0007]一种多用户网站自动登录方法,包括如下步骤:
A、进入系统前先查看需要的cookie信息,并判断cookie信息池是否为空;若为空,则执行步骤G ;否则,执行步骤B ;
B、加载相应网站的登录模版,以映射map结构放在内存中,键key为网站域名,数值value为模版的字符串信息,然后执行步骤C ;
C、从用户信息的数据源读取数据,用户的网站用户名,密码以及网站本身的域名信息,并将其放入队列中等待被调用;
D、根据用户信息和模版信息批量组装证书; E、拿到证书后,若为Form表单方式的登录,则按照需要还要根据模版从登录页面提取一些信息,然后发送一次post请求,得到网站服务器的响应,拿到cookie信息;
F、将批量的cookies信息放入到cookie池中;
G、系统结束。
[0008]其中,执行步骤F后,所述cookie池中具有所有用户的登录cookie。
[0009]步骤D所述根据用户信息和模版信息批量组装证书,具体为从用户信息队列批量取出记录,按照域名从模版内存map中拿到相应网站的模版信息。
[0010]步骤E进一步包括,拿到证书后,若为NTLM表单方式的登录则不需。
[0011]本发明所提供的多用户网站自动登录器及其实现方法,具有以下优点:
将本发明应用于爬虫爬取带有用户登录的系统中,在爬取企业网站系统时,自动携带用户的信息分别进行系统登录。同一个系统的登录方式一致,如果每个用户登录一次都要分析登录方式,存在大量的重复分析工作,不仅浪费了磁盘10,还会导致每次爬取的时等待认证时间加长。另外登录成功后查看各个页面,如果需要每个页面每次去请求登录,也是会造成大量的浪费,通过本发明的自动识别登录之后,不仅需要分析的工作少了,速度提升了,并且依然能够知道用户该以怎样的方式登录,用户登录查看其它页面时,最快速度的携带获取认证信息,为企业搜索的权限文件获取提供了支持。应用本发明,还能够解决这样一种需求:有些需要测试站点自动注册,注册有效性,可以通过本系统进行大量模拟真实的流程测试,节省人力成本,从而保证系统的承压及功能真实有效性。
【专利附图】

【附图说明】
[0012]图1为本发明的多用户网站自动登录器的功能框图;
图2为利用本发明进行多用户网站自动登录的实现过程示意图。
【具体实施方式】
[0013]下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
[0014]在需要登录的网站用户有很多的情况,我们做了如下改进:将一个站点登录需要的认证信息,及请求方式,记录为模版信息。然后在访问相同站点信息时,只需替换模版中的用户名和密码信息,组装为认证证书即可完成登录,这样就实现了一定的自动化。
[0015]当登录成功后,如果断开与目标网站的连接,你的会话在目标网站被删除,再次访问资源时会要求你重新登录,例如常见的浏览器。其实在登录之后,目标网站会分发给你一个cookies,当你的超文本传输协议(http)请求访问带着cookie时,就可以访问这些资源。但是浏览器对于一个目标网站只能缓存一个用户的信息。我们则需要将大量的cookies信息缓存,来做批处理数据,在我们的系统中会有一个cookie池来做这项工作。这里,所述Cookie是由服务器端生成,发送给User-Agent (—般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
[0016]本发明作为一种计算机系统的应用工具,其基于http请求,cookie信息池,主要解决Form表单验证和NTLM验证。Form表单验证是基于Post请求设计的,是当前较为普遍的一种验证方式,当前大部分浏览器/服务器(B/S)结构的网站注册登录注册都是通过这种方式提交到服务器。这里,NTLM是Windows NT早期版本的标准安全协议,是Windows2000内置三种基本安全协议之一本系统认证模版基于http请求。目前apache公司的httpclient也实现了两种验证的登录,但是对于批量的登录还是不够智能,不够效率。而且本系统不仅限于发送用户密码等数据到模版,针对一些特殊网站的登录需要请求时携带页面源码中的部分标识信息(ID),还有些需要当前时间戳等信息,通过模版智能学习实现更大范围的站点自动登录。
[0017]本发明为解决上述问题还采用了如下技术。
[0018]l、Form表单验证:基于http、安全超文本传输协议(https)定义了与服务器交互的不同方法,最基本的方法是GET和POST,Form表单验证数据属于敏感数据的传输,以POST请求为方式,将数据放置在HTML HEADER内提交,同时没有限制请求提交的数据长度。
[0019]2、NTLM验证:NTLM是以当前用户的身份向Telnet服务器发送登录请求的,而不是用你自己的帐户和密码登录。
[0020]3、业务逻辑设计:
(I)用户登录一个站点,首先去cookie信息池中查找认证缓存,若有直接访问,若无执行步骤2)。
[0021](2)读取配置好的登录模版,将登录认证模版放到一个内存map中,从数据库拿到批量的用户信息,组装批量认证证书,登录成功后,并将cookies值放入cookie池。
[0022](3)当继续访问该用户下的其它页面数据,直接从cookie池中取出认证缓存,实现访问信息。避免多次认证,同时不用相同认证模版多次组装。大大优化了性能。
[0023](4)当多用户分别登陆过站点后,cookie池中会保存各自的认证登录信息,当爬虫系统或者其他系统,再来访问该用户信息的时候,直接调用cookie池中的认证缓存信息,即可实现无登陆访问个人信息页面。
[0024]但是要注意的是,cookie池中的认证缓存,部分会有时效性。这样在调用cookie认证不成功的情况下,仅需重新执行访问操作,移出原有cookie,记录新的cookie。
[0025]图1为本发明的多用户网站自动登录器的功能框图。如图1所示,该多用户网站自动登录器主要包括:证书组装模块、Cookies信息池、用户信息存取模块和模版信息读取模块。其中,
所述证书组装模块,用于获取用户信息,主要是登录网站用的用户名和密码,以及模版信息(对于form表单验证来说,就是登陆页面需要提交的一些参数,这些参数可以通过一些网页解析工具来获取,但是相应的你要提供这些参数在页面的位置或者名字信息,对于NTLM验证来说,需要有它的域名城)来组装证书。
[0026]所述Cookies信息池,信息池是一个映射(map)结构,即一种计算机的键值对数据结构,他的键(key)为网站域名,数值(value)还是一个个的子map,这些子map每条记录的键是用户的用户名和密码的哈希(hash)值,value是一个cookie信息的字符串。信息池本身在磁盘上进行备份,能够满足宕机重启连续工作。
[0027]所述用户信息存取模块,从数据来源(文件或者数据库)读取需要用户的用户名和密码等信息。以及,
所述模版信息读取模块,从数据来源(文件或者数据库)读取需要的信息。
[0028]本发明的发现和配置登录认证模版及登录信息记录缓存,主要解决以下问题: I)在多个登录新站点尽可能快速以占用系统资源少的情况下实现多用户自动登录。现有技术在登录时,需要逐一单个站点多次分析请求,再加上一些的业务逻辑来实现,在分析站点登录方式和业务逻辑的设计上的欠妥都会造成,效率低下和系统资源重复占用等问题。本系统设计实现了以cookie共享池为基础的认证信息内存map结构,首先在分析相同站点登录方式时,做多种测试判断,结合成功登录系统时的数据包,系统学习形成该站点的登录认证模版。在相同站点下,不同用户,不同时机登录时,只需替换认证模版中的个人信息参数即可。
[0029]2)登录认证信息缓存。我们需要对用户下的所有页面进行访问。首先我们在首次登录一个新的站点的时候,自动分析登录系统的认证模版,然后将该站点的模版信息加入内存map,在不同用户来访问这个站点的时候,就不用再进行登录认证模版分析,直接从map集合中获取对应模版,实现登录。在用户登录完成时,记录cookie信息,放入cookie信息池中。当访问该用户下的其他页面数据时,直接从cookie池中取出cookie,即可实现其它用户页面数据的访问。当用户再次需要重新访问该站点的时候,首先去cookie池中去查,发现已经存在对应cookie信息,则直接访问(无须再次登录)。若不存在则执行从模版数据源读取站点模版。实现登录后,再将cookie信息记录在共享池中,极大地提高了多用户登录效率。
[0030]图2为利用本发明进行多用户网站自动登录的实现过程示意图。如图2所示,该过程包括如下步骤:
步骤21:当需要cookie信息时进入此系统。
[0031]步骤22:判断cookies信息池是否为空,如果是,则执行步骤28系统结束;否则,执行步骤23。
[0032]步骤23:加载相应网站的登录模版,以映射(map)结构放在内存中,键为网站域名,数值为模版的字符串信息,然后执行步骤24。
[0033]步骤24:从用户信息的数据源读取数据,用户的网站用户名,密码以及网站本身的域名信息。放在一个队列中等待被顺序调用。
[0034]步骤25:根据用户信息和模版信息组装证书。即从用户信息队列拿出一条记录,按照域名从模版内存map中拿到相应网站的模版信息,该组装证书的处理过程为批处理,即批量组装。
[0035]步骤26:拿到证书,如果是form表单方式的登录,按照需要还要根据模版从登录页面提取一些信息,然后发送一次post请求,得到网站服务器的响应,拿到cookie信息。如果NTLM方式则不需要。
[0036]步骤27:将批量的cookies信息放入到cookie池中。此时cookie池中具有所有用户的登录cookie,可以随便使用。
[0037]步骤28:系统结束。
[0038]下面列举2个应用本发明的具体实施例:
一、在爬虫应用方面,有时候一些需要登录的办公系统,在未登录时是不允许访问任何资源的,一个企业可能有很多办公系统以及很多员工,员工之间的权限并不相同,此时通过自动登录器我们可以自动克服登录验证,然后抓取不同的资源。因为是批量的登录,节约了时间,以后在访问可以直接从cookie池拿到需要的cookie直接访问。[0039]二、再例如我们需要对于一个网站很多注册用户进行一个一致的操作,从代码上进行升级修改可能成本高,时间周期也长。直接通过登录器进行批量登录,然后进行批量的操作。如果用户数以万计,人工进行修改明显是不现实的。
[0040]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【权利要求】
1.一种多用户网站自动登录器,其特征在于,主要包括证书组装模块、Cookies信息池、用户信息存取模块和模版信息读取模块;其中, 所述证书组装模块,用于获取用户信息、网站本身的域名信息和模版信息来组装证书; 所述Cookies信息池,为一个映射map结构,其键key为网站域名,数值value为一个个的子map结构,所述子map结构每条记录的键key是用户的用户名和密码的哈希值,所述value为一个cookie信息的字符串; 用户信息存取模块,用于从数据来源读取需要用户的用户名和密码信息;及 模版信息读取模块,用于从数据来源读取所需要的信息。
2.根据权利要求1所述多用户网站自动登录器,其特征在于,所述用户信息包括登录网站用的用户名和密码信息。
3.根据权利要求1所述多用户网站自动登录器,其特征在于,所述数据来源为文件或数据库。
4.一种多用户网站自动登录方法,其特征在于,包括如下步骤: A、进入系统前先查看需要的cookie信息,并判断cookie信息池是否为空;若为空,则执行步骤G ;否则,执行步骤B ; B、加载相应网站的登录模版,以映射map结构放在内存中,键key为网站域名,数值value为模版的字符串信息,然后执行步骤C ; C、从用户信息的数据源读取数据,用户的网站用户名,密码以及网站本身的域名信息,并将其放入队列中等待被调用; D、根据用户信息和模版信息批量组装证书; E、拿到证书后,若为Form表单方式的登录,则按照需要还要根据模版从登录页面提取一些信息,然后发送一次post请求,得到网站服务器的响应,拿到cookie信息; F、将批量的cookies信息放入到cookie池中; G、系统结束。
5.根据权利要求4所述多用户网站自动登录方法,其特征在于,执行步骤F后,所述cookie池中具有所有用户的登录cookie。
6.根据权利要求4所述多用户网站自动登录方法,其特征在于,步骤D所述根据用户信息和模版信息批量组装证书,具体为从用户信息队列批量取出记录,按照域名从模版内存map中拿到相应网站的模版信息。
7.根据权利要求4所述多用户网站自动登录方法,其特征在于,步骤E进一步包括,拿到证书后,若为NTLM表单方式的登录则不需。
【文档编号】H04L9/32GK103490896SQ201310420969
【公开日】2014年1月1日 申请日期:2013年9月16日 优先权日:2013年9月16日
【发明者】李勋, 李大鹏, 张楠, 陈朋辉, 刘秀磊 申请人:北京鹏宇成软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1