CN115037507B - 用户访问管理的方法、装置和系统 - Google Patents
用户访问管理的方法、装置和系统 Download PDFInfo
- Publication number
- CN115037507B CN115037507B CN202210437380.XA CN202210437380A CN115037507B CN 115037507 B CN115037507 B CN 115037507B CN 202210437380 A CN202210437380 A CN 202210437380A CN 115037507 B CN115037507 B CN 115037507B
- Authority
- CN
- China
- Prior art keywords
- seed
- result
- calculation result
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims description 40
- 238000004364 calculation method Methods 0.000 claims abstract description 228
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000012795 verification Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 25
- 125000004122 cyclic group Chemical group 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 8
- 238000013524 data verification Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 110
- 230000008569 process Effects 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000000644 propagated effect Effects 0.000 description 8
- 230000009191 jumping Effects 0.000 description 6
- AIMMVWOEOZMVMS-UHFFFAOYSA-N cyclopropanecarboxamide Chemical compound NC(=O)C1CC1 AIMMVWOEOZMVMS-UHFFFAOYSA-N 0.000 description 5
- 239000000835 fiber Substances 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 239000013307 optical fiber Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了用户访问管理的方法、装置和系统,涉及计算机技术领域。该方法的一具体实施方式可应用于服务端,包括:响应于客户端的访问请求,向客户端发送种子参数和循环次数,接收客户端返回的结果清单;结果清单是由客户端根据种子参数和循环次数循环运行签名函数得到的计算结果生成的;向客户端发送待校验循环序号,接收客户端返回的与待校验循环序号对应的待校验计算结果和入参数据;根据入参数据运行签名函数得到运行结果,根据运行结果与待校验计算结果的一致性对访问请求进行校验。该实施方式通过将大量校验计算设置在客户端,能够降低服务端的资源消耗,进而降低服务端的校验成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用户访问管理的方法、装置和系统。
背景技术
目前网站中的爬虫占总页面浏览量或点击量的比例很高,现有技术中,客户端运行签名函数后在请求中携带签名,服务端通过校验签名来判断当前访问请求是否来自爬虫。然而,客户端执行签名函数的成本很低,甚至低于服务端的计算成本,而服务端则需要大量的CPU资源来校验签名,导致服务端的校验成本增加。
发明内容
有鉴于此,本发明实施例提供一种用户访问管理的方法、装置和系统,由客户端根据种子参数和循环次数循环运行签名函数,服务端仅根据客户端发送的与待校验循环序号对应的入参数据运行签名函数、根据运行结果与待校验计算结果的一致性对访问请求,因此服务端运行签名函数的次数远少于循环次数。本发明实施例中,通过增加客户端计算来增加爬虫程序的资源消耗,服务端只需要简单计算校验就可以甄别爬虫,从而降低服务端的资源消耗,进而降低服务端的校验成本。
为实现上述目的,根据本发明实施例的一个方面,提供了一种用户访问管理的方法,应用于服务端,包括:
响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;
向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的部分或全部元素是否与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;在向客户端发送种子参数和循环次数之前,还包括:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述结果清单为由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的所有计算结果形成的计算结果列表;或者,所述结果清单是由所述客户端依据所述计算结果列表生成的索引清单。
根据本发明实施例的第二方面,提供一种用户访问管理的方法,应用于客户端,包括:
向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,当所述运行结果中的部分或全部元素与所述待校验计算结果中的对应元素相同时,校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述种子参数是由所述服务端按照如下步骤生成的:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,根据运行得到的计算结果生成结果清单,包括:
根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第三方面,提供一种用户访问管理的装置,应用于服务端,包括:
请求响应模块,响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;
数据获取模块,向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
数据校验模块,根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,所述数据校验模块根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的每个元素是否均与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述请求响应模块还用于:
在向客户端发送种子参数和循环次数之前,随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述结果清单为由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的所有计算结果形成的计算结果列表;或者,所述结果清单是由所述客户端依据所述计算结果列表生成的索引清单。
根据本发明实施例的第四方面,提供一种用户访问管理的装置,应用于客户端,包括:
请求发送模块,向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
循环签名模块,根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
数据发送模块,接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,当所述运行结果中的部分或全部元素与所述待校验计算结果中的对应元素相同时,校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述种子参数是由所述服务端按照如下步骤生成的:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述循环签名模块根据运行得到的计算结果生成结果清单,包括:根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第五方面,提供一种用户访问管理的系统,包括客户端和服务端,其中:
所述客户端向所述服务端发送访问请求;所述服务端响应于所述访问请求,向所述客户端发送种子参数和循环次数;
所述客户端根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
所述服务端向所述客户端发送待校验循环序号,所述客户端向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,所述服务端根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的部分或全部元素是否与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述服务端还用于:在向所述客户端发送种子参数和循环次数之前,
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述客户端根据运行得到的计算结果生成结果清单,包括:根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第六方面,提供一种用户访问管理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一或第二方面提供的方法。
根据本发明实施例的第七方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一或第二方面提供的方法。
上述发明中的一个实施例具有如下优点或有益效果:由客户端根据种子参数和循环次数循环运行签名函数,服务端仅根据客户端发送的与待校验循环序号对应的入参数据运行签名函数、根据运行结果与待校验计算结果的一致性对访问请求,因此服务端运行签名函数的次数远少于循环次数。本发明实施例中,通过增加客户端计算来增加爬虫程序的资源消耗,服务端只需要简单计算校验就可以甄别爬虫,从而降低服务端的资源消耗,进而降低服务端的校验成本。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一些实施例中用户访问管理的方法流程示意图;
图2是本发明另一些实施例中用户访问管理的方法流程示意图;
图3是本发明还一些实施例中用户访问管理的方法流程示意图;
图4是本发明一些实施例中用户访问管理的装置模块示意图;
图5是本发明另一些实施例中用户访问管理的装置模块示意图;
图6是本发明实施例中用户访问管理的系统的主要组成示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
根据本发明实施例的一个方面,提供了一种用户访问管理的方法,该方法应用于服务端。
图1是本发明一些实施例中用户访问管理的方法流程示意图,如图1所示,本发明实施例的用户访问管理的方法包括步骤S101、步骤S102和步骤S103。
步骤S101,响应于客户端的访问请求,向客户端发送种子参数和循环次数,接收客户端返回的结果清单。
本发明实施例中,向客户端发送种子参数和循环次数之后,由客户端根据种子参数和循环次数循环运行签名函数。签名函数的函数形式可以选择性设置,本发明实施例对此不作具体限定。签名函数的出参即为计算结果,签名函数循环运行的次数等于上述循环次数,因此计算结果的数量等于上述循环次数。客户端根据种子参数和循环次数循环运行签名函数得到的所有计算结果形成的列表为计算结果列表。
种子参数是指用于计算加密签名的初始值。种子参数可以是由数字和/或字符组成的串或者数组。通常情况下,种子参数为字符串或字符串数组。种子参数的数量可以是一个、两个或更多个。在可选的实施例中,种子参数的数量为两个。在向客户端发送种子参数和循环次数之前,随机生成字符串,对该字符串进行散列处理后得到种子一;随机生成二维数组;分别以二位数组中每个元素和种子一中的一个字符作为入参运行种子加工函数,得到该二维数组中每个元素对应的标准字符串,以该二维数组中所有元素对应的标准字符串形成的数组作为种子二。种子加工函数是指用于加工产生种子的函数,具体函数形式可以选择性设定,例如散列处理、或者采用其他加密算法处理。
在一些可选实施例中,签名函数的入参包括种子参数,每次循环运行签名函数的过程是独立的。在另一些可选实施例中,签名函数的入参可以包括种子参数和循环序号,从而使得计算结果中携带循环序号以便区别各次的计算结果。当然,签名函数的入参也可以包括:种子参数、循环序号以及上一次计算结果,以进一步提高签名的安全性。
通常情况下,计算结果中包括的元素越多越复杂,校验安全性越高,但同时计算成本也越大,实际应用过程中可以根据实际情况确定事宜的元素组成和复杂程度。在可选的实施例中计算结果包括以下至少之一:根据种子参数和循环次数运行预设函数得到的出参数据,对出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
客户端根据该计算结果列表确定结果清单。实际应用过程中,客户端可以直接以该计算结果列表作为结果清单,也可以先依据计算结果列表生成索引清单,然后以该索引清单作为结果清单。索引清单中的每个元素均是该元素所对应计算结果的索引。例如按照设定规则从计算结果中提取特定位置的字符串作为索引,或者对计算结果或者从计算结果中提取的字符串进行变换(如散列处理)。
以下结合具体示例对结果清单的生成过程进行详细说明。
种子一是由32位小写随机字符组成的字符串,该字符串的生成逻辑为:随机生成若干个字符,通过md5(Message Digest Algorithm MD5,中文名为消息摘要算法第五版)后得到32位的小写字符串作为种子一。假设随机字符串为“abcdefg”,md5后的值为“4f084ead78e8bc70f28bc115b5e92b9c”。
种子二是一个二维数组,二位数组的长度可以选择性设定,例如长度默认为8。种子二生成逻辑为:生成由随机整数(随机整数的取值范围通常为1-数组长度,如1-8)组成的二维数组,如“[1,5,4,7,4,4,4,4]”,再通过GenerationCorrectAnswer函数加工,得到一组新的数组。通过GenerationCorrectAnswer函数加工的过程为:将二维数组中第m个元素对8取余,将取余结果与m、以及种子一中的一个随机字母或数字拼接得到第m个元素对应的字符串,以该字符串md5后的值作为二维数组中第m个元素对应的标准字符串,以二维数组中所有元素对应的标准字符串形成的数组作为种子二。以二维数组“[1,5,4,7,4,4,4,4]”为例,通过GenerationCorrectAnswer函数加工得到的种子二为:['71149d8d730099caae3b0ad93b6b93ae','d8a3db1331d1d85d2bf5d4e8823f0d80','9cf7d312748f4e6163ba65d1daa489ad','953c27f1232f63d3f23892ae8bafc094','30d2c1109139d2f14e57194d12394f01','92d19640d5111f21609dbfbf8567b688','bfc3302cdd3507722738629e71cdbca3','54190dbbc9cf2dd6e85e6f5c51ddce35']。
循环次数为100,签名函数的入参包括4个参数,分别为:种子一、种子二、循环序号、上一次计算结果。计算结果为一个二维数组,结构为[运行预设函数得到的出参数据的md5值,运行预设函数得到的出参数据,上一次计算结果中的种子二答案个数*循环序号,函数运行耗时,种子二答案个数]。具体地,
种子二答案个数的计算:第i(i为0-99的整数)次循环时,依据种子一中第j(j为0-31的整数)个字符和种子2数组中第m(m为0-7的整数)个元素拼接得到字符串“i%8+m+种子一中第j个字符得到的字符串”,判断字符串的md5值与种子二数组中第m个元素是否相同。若相同则“种子二答案个数”加1。循环遍历种子一和种子二中的每个元素,遍历结束后得到第i次循环得到的“种子二答案个数”;
运行预设函数得到的出参数据(即计算结果中的第二个元素):将第(i-1)次循环得到的计算结果转换为json并md5后得到标准字符串,取其中与序号j对应的字符,确定该字符的阿斯卡码值,得到拼接字符串“j+与序号j对应字符的阿斯卡码值+通过公式得到的字符串”。循环遍历种子一和种子二中的每个元素,遍历结束后得到第i次循环对应的832个拼接字符串。这832个拼接字符串形成的数组是第i次循环时运行预设函数得到的出参数据,也即第i次循环得到的计算结果中的第二个元素,其中记录了第i次循环的计算过程。上述公式为:(第一个值+第二个值+第三个值),其中,
第一个值:种子1字符串中第j个字符的阿斯卡码值;
第二个值:上一次计算证明中MD5值中第j个字符的阿斯卡码值;
第三个值:(上一次计算结果的第二个元素中所有数值之和/(i+1)*(j+1)*(m+1))。
客户端得到计算结果列表后,对于计算结果列表中的每条数据,取该条数据第一个元素的前8(该数字可以选择性设定)位字符串作为结果清单中的一条数据。计算证明列表中每条数据对应的前8位字符串形成索引清单,具体为:
运行结果为:
["16c76a7b","6ee7a42b","50c8b549","3ec0acd3","7ebe4d90","d3e35d4e","ac078be9","454cb520","6a28e6c7","7d99e508","584bc722","2af64fa0","1a454557","6e96b554","01660c30","980ed0cb","e4f3b6b7","22a5f3c0","86822c45","768e4384","9bc2604f","0499abcd","3caec205","6f0813c8","fd4e4c2f","6382f1bc","c75434b6","11a29e2c","66f6d9c9","3293c91e","36b52bc4","5dd9bb7c","6c5dde2c","2e2fb907","7d2e2908","28431a52","629c5d07","c3caf1b7","9c0ac575","48245113","0856449b","b0df413e","5f503999","20e6e6e2","9b9c56d0","65bbc214","2b8743b2","f68c157b","6ef49b1e","f0fea647","9835c5d7","16fd3bc6","9a1d86c5","5a788f5a","bfe27090","9963cd14","e0dd2645","b6c35c84","2f34c962","41c585e5","a8d8fe61","49063a09","ddeb03a4","16fa33f7","47ca521d","3b4c119a","da7c042a","bc4f1638","a6b26043","04d32fe7","4e7c9465","581f8570","3b3630d1","ab83a170","a3dabb57","0d9c5f52","3111f7b6","a656b941","97d839f5","b84865de","c59f9d9d","5babf0d7","85c9c81f","75c73c9b","01e954c0","9b057ff9","b1def2cc","72f8b543","7b0893d4","50b886e5","0a5e0f08","82f8169b","41516860","1a324f4b","19f44673","c52bbc2d","43d769a5","78e6dd20","b1bb59e1","0bc2ca23"]。
客户端将结果清单发送给服务端。服务端保存结果清单,用于校验。
步骤S102,向客户端发送待校验循环序号,接收客户端返回的与待校验循环序号对应的待校验计算结果和入参数据。入参数据是与待校验循环序号的上一个循环序号对应的计算结果相关的数据。
服务端可以根据循环次数确定待校验循环序号,也可以从客户端发送的结果清单中选择。待校验循环序号可以是一个或多个。相应地,步骤S102和步骤S101之间的先后顺序也可以选择性设定,例如同时执行或者先后执行。服务端接收到客户端返回的与待校验循环序号对应的入参数据之后,根据该入参数据运行签名函数。
示例性地,服务端收到结果清单后,随机生成1个需要校验的循环序号,该数字取值范围为0至(循环次数-1),服务端将需要校验的循环序号返回给客户端,客户端将本地对应计算结果和对应计算结果的上一次计算结果一起发送给服务端。例如,待校验循环序号为66,则客户端将65和66的计算结果发送至服务器端。
本发明实施例中,由客户端根据种子参数和循环次数循环运行签名函数,服务端仅根据客户端发送的与待校验循环序号对应的入参数据运行签名函数,因此服务端运行签名函数的次数远少于循环次数,从而能够大大降低服务端校验成本。
步骤S103,根据入参数据运行签名函数得到运行结果,根据运行结果与待校验计算结果的一致性对访问请求进行校验。当运行结果与待校验计算结果一致时,校验通过,否则校验不通过。
根据运行结果与待校验计算结果的一致性对访问请求进行校验时,可以对计算结果中的每个元素的一致性分别进行校验。示例性地,判断运行结果中的每个元素是否均与待校验计算结果中的对应元素相同,若是,则校验通过;否则校验不通过。当然,在根据运行结果与待校验计算结果的一致性对访问请求进行校验时,也可以仅对其中部分元素的一致性进行校验。示例性地,若计算结果包括5个元素,其中前2个元素需要进行一致性校验,则当且仅当计算结果中的第1个元素与运行结果中的第1个元素相同、且计算结果中的第2个元素与运行结果中的第2个元素相同时,校验通过,否则校验不通过。
通常情况下,运行结果的数据格式与计算结果的数据格式相同,因此,可以根据计算结果中的元素在计算结果中的位置序号,确定其在运行结果中所对应的元素。例如,计算结果中的第1个元素对应运行结果中的第1个元素、计算结果中的第2个元素对应运行结果中的第2个元素、计算结果中的第3个元素对应运行结果中的第3个元素,以此类推,即可确定计算结果中的每个元素在运行结果中所对应的元素。
此处以步骤S101中的具体示例为例,介绍服务端的校验过程。该示例中,计算结果包括四个元素,服务端需要进行4次校验,如果4次校验均通过,则对当前访问请求的校验通过:
一:分别校验待校验循环序号和上一次循环序号的结果索引是否与索引清单中的结果索引相同。如果相等,说明索引清单中的数据没有造假。例如,取“3b4c119a52228dd882650d714d8dff5f”前8位“3b4c119a”,判断其是否与索引清单对应索引值相同,如果不同则校验失败。
二:校验计算结果中的md5值。首先服务端将运行结果变为json字符串然后确定该字符串的md5值,将md5值与客户端发送的计算结果列表中对应计算结果中的md5值对比,如果相同,说明校验成功。
三:校验计算结果中的第三个参数。将上次计算结果中的种子二答案个数*待校验循环序号,与运行结果中的第三个参数对比,如果相同,说明校验成功。
四:校验种子二答案个数,通过种子一、种子二和待校验循环序号得到正确的种子数量,与客户端发送的计算结果清单中对应计算结果的种子二答案个数进行对比,如果相同,说明校验成功。
本发明实施例中,通过增加客户端CPU计算来增加爬虫程序的CPU资源消耗,服务端只需要简单计算校验就可以甄别爬虫,从而降低服务端的资源消耗,进而降低服务端的校验成本。
图2是本发明另一些实施例中用户访问管理的方法流程示意图。
如图2所示,用户访问管理的方法流程包括:
步骤S201,接收客户端的访问请求;
步骤S202,判断访问请求中是否携带令牌;若是,则跳转至步骤S203,否则跳转至步骤S204;
步骤S203,判断令牌是否有效;若是,则跳转至步骤S209,否则跳转至步骤S204;
步骤S204,向客户端发送种子参数和循环次数,接收客户端返回的结果清单;
步骤S205,向客户端发送待校验循环序号,接收客户端返回的与待校验循环序号对应的计算结果和入参数据;
步骤S206,根据入参数据运行签名函数得到运行结果;
步骤S207,运行结果与待校验计算结果是否一致;若是则跳转至步骤S209,否则跳转至步骤S208;
步骤S208,校验不通过;
步骤S209,校验通过。
本实施例中,当用户访问网站时,服务端先校验客户端发送的访问请求中是否携带令牌,如果携带令牌,验证令牌是否有效(如是否合法或是否过期)。若令牌效,则表明当前令牌可以继续使用,否则令牌不能继续使用。如果令牌不能继续使用、或者不存在令牌时,则服务端将种子参数和循环次数返回给客户端。
客户端拿到种子参数后,遍历调用循环次数次签名函数,将签名函数返回的计算结果保存,并将根据计算结果生成的结果清单返回给服务端。通常客户端运行签名函数的计算耗时大概是200毫秒左右,实际应用过程中可以通过调整循环次数来增加客户端的计算成本,以尽量防止爬虫。
根据本发明实施例的第二方面,提供一种用户访问管理的方法,应用于客户端。
图3是本发明还一些实施例中用户访问管理的方法流程示意图。
如图3所示,用户访问管理的方法包括:
步骤S301,向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
步骤S302,根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
步骤S303,接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,当所述运行结果中的部分或全部元素与所述待校验计算结果中的对应元素相同时,校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述种子参数是由所述服务端按照如下步骤生成的:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,根据运行得到的计算结果生成结果清单,包括:
根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第三方面,提供一种实现本发明实施例第一方面的方法的装置,应用于服务端。如图4所示,用户访问管理的装置400包括:
请求响应模块401,响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;
数据获取模块402,向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
数据校验模块403,根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,所述数据校验模块根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的部分或全部元素是否与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述请求响应模块还用于:
在向客户端发送种子参数和循环次数之前,随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述结果清单为由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的所有计算结果形成的计算结果列表;或者,所述结果清单是由所述客户端依据所述计算结果列表生成的索引清单。
根据本发明实施例的第四方面,提供一种实现本发明实施例第二方面的方法的装置,应用于客户端。如图5所示,用户访问管理的装置500包括:
请求发送模块501,向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
循环签名模块502,根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
数据发送模块503,接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,当所述运行结果中的部分或全部元素与所述待校验计算结果中的对应元素相同时,校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述种子参数是由所述服务端按照如下步骤生成的:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述循环签名模块根据运行得到的计算结果生成结果清单,包括:根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第五方面,提供一种用户访问管理的系统。如图6所示,用户访问管理的系统600包括客户端601和服务端602,其中:
所述客户端向所述服务端发送访问请求;所述服务端响应于所述访问请求,向所述客户端发送种子参数和循环次数;
所述客户端根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
所述服务端向所述客户端发送待校验循环序号,所述客户端向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
可选地,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
可选地,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
可选地,所述服务端根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的部分或全部元素是否与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
可选地,所述种子参数的数量为两个;所述服务端还用于:在向所述客户端发送种子参数和循环次数之前,
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二位数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
可选地,所述客户端根据运行得到的计算结果生成结果清单,包括:根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表;以所述计算结果列表作为所述结果清单,或者,依据所述计算结果列表生成索引清单、以所述索引清单作为所述结果清单。
根据本发明实施例的第六方面,提供一种用户访问管理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一或第二方面提供的方法。
根据本发明实施例的第七方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一或第二方面提供的方法。
图7示出了可以应用本发明实施例的用户访问管理的方法或用户访问管理的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例第一方面提供的用户访问管理的方法一般由服务器705执行,相应地,本发明实施例第三方面提供的用户访问管理的装置一般设置于服务器705中。本发明实施例第二方面提供的用户访问管理的方法一般由终端设备701、702、703执行,相应地,本发明实施例第四方面提供的用户访问管理的装置一般设置于终端设备701、702、703中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求响应模块、数据获取模块和数据校验模块,或者,一种处理器包括请求发送模块、循环签名模块和数据发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,请求响应模块还可以被描述为“根据所述种子参数和所述循环次数循环运行签名函数的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据,所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;或者,
向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;接收所述服务端发送的待验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
根据本发明实施例的技术方案,由客户端根据种子参数和循环次数循环运行签名函数,服务端仅根据客户端发送的与待校验循环序号对应的入参数据运行签名函数、根据运行结果与待校验计算结果的一致性对访问请求,因此服务端运行签名函数的次数远少于循环次数。本发明实施例中,通过增加客户端CPU计算来增加爬虫程序的CPU资源消耗,服务端只需要简单计算校验就可以甄别爬虫,从而降低服务端的资源消耗,进而降低服务端的校验成本。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (17)
1.一种用户访问管理的方法,应用于服务端,其特征在于,包括:
响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;
向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
2.如权利要求1所述的方法,其特征在于,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
3.如权利要求1所述的方法,其特征在于,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
4.如权利要求3所述的方法,其特征在于,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验,包括:判断所述运行结果中的部分或全部元素是否与所述待校验计算结果中的对应元素相同;若是,则校验通过;否则,校验不通过。
5.如权利要求1-4任一所述的方法,其特征在于,所述种子参数的数量为两个;在向客户端发送种子参数和循环次数之前,还包括:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二维数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
6.如权利要求1-4任一所述的方法,其特征在于,所述结果清单为由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的所有计算结果形成的计算结果列表;或者,所述结果清单是由所述客户端依据所述计算结果列表生成的索引清单。
7.一种用户访问管理的方法,应用于客户端,其特征在于,包括:
向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
8.如权利要求7所述的方法,其特征在于,所述签名函数的入参包括:种子参数,循环序号,以及上一次计算结果。
9.如权利要求7所述的方法,其特征在于,所述计算结果包括以下至少之一:根据所述种子参数和所述循环次数运行预设函数得到的出参数据,对所述出参数据进行散列处理得到的标准字符串,上一次计算结果中的种子校验结果,当前循环序号对应的种子校验结果。
10.如权利要求9所述的方法,其特征在于,当所述运行结果中的每个元素均与所述待校验计算结果中的对应元素相同时,校验通过;否则,校验不通过。
11.如权利要求7-10任一所述的方法,其特征在于,所述种子参数的数量为两个;所述种子参数是由所述服务端按照如下步骤生成的:
随机生成字符串,对所述字符串进行散列处理后得到种子一;
随机生成二维数组;分别以所述二维数组中每个元素和所述种子一中的一个字符作为入参运行种子加工函数,得到所述二维数组中每个元素对应的标准字符串,以所述二维数组中所有元素对应的标准字符串形成的数组作为种子二。
12.如权利要求7-10任一所述的方法,其特征在于,根据运行得到的计算结果生成结果清单,包括:
根据所述种子参数和所述循环次数循环运行签名函数得到所有计算结果形成的计算结果列表,并以所述计算结果列表作为所述结果清单;或者,依据所述计算结果列表生成索引清单,并以所述索引清单作为所述结果清单。
13.一种用户访问管理的装置,应用于服务端,其特征在于,包括:
请求响应模块,响应于客户端的访问请求,向所述客户端发送种子参数和循环次数,接收所述客户端返回的结果清单;所述结果清单是由所述客户端根据所述种子参数和所述循环次数循环运行签名函数得到的计算结果生成的;
数据获取模块,向所述客户端发送待校验循环序号,接收所述客户端返回的与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
数据校验模块,根据所述入参数据运行所述签名函数得到运行结果,根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
14.一种用户访问管理的装置,应用于客户端,其特征在于,包括:
请求发送模块,向服务端发送访问请求,接收所述服务端发送的种子参数和循环次数;
循环签名模块,根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
数据发送模块,接收所述服务端发送的待校验循环序号,向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据,以使所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据。
15.一种用户访问管理的系统,包括客户端和服务端,其特征在于,
所述客户端向所述服务端发送访问请求;所述服务端响应于所述访问请求,向所述客户端发送种子参数和循环次数;
所述客户端根据所述种子参数和所述循环次数循环运行签名函数,根据运行得到的计算结果生成结果清单,将所述结果清单发送至所述服务端;
所述服务端向所述客户端发送待校验循环序号,所述客户端向所述服务端发送与所述待校验循环序号对应的待校验计算结果和入参数据;所述入参数据是与所述待校验循环序号的上一个循环序号对应的计算结果相关的数据;
所述服务端根据所述入参数据运行所述签名函数得到运行结果、根据所述运行结果与所述待校验计算结果的一致性对所述访问请求进行校验。
16.一种用户访问管理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210437380.XA CN115037507B (zh) | 2022-04-22 | 2022-04-22 | 用户访问管理的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210437380.XA CN115037507B (zh) | 2022-04-22 | 2022-04-22 | 用户访问管理的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037507A CN115037507A (zh) | 2022-09-09 |
CN115037507B true CN115037507B (zh) | 2024-04-05 |
Family
ID=83119978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210437380.XA Active CN115037507B (zh) | 2022-04-22 | 2022-04-22 | 用户访问管理的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037507B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101040588B1 (ko) * | 2010-12-13 | 2011-06-10 | 한국기초과학지원연구원 | 익명성을 제공하는 효율적인 신원기반 환서명 방법과 그 시스템 |
CN105049453A (zh) * | 2015-08-26 | 2015-11-11 | 同济大学 | 一种签名验证方法 |
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
WO2017190641A1 (zh) * | 2016-05-03 | 2017-11-09 | 北京京东尚科信息技术有限公司 | 拦截爬虫的方法、装置、服务器终端以及计算机可读介质 |
CN107743133A (zh) * | 2017-11-30 | 2018-02-27 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和系统 |
CN112689014A (zh) * | 2020-12-24 | 2021-04-20 | 百果园技术(新加坡)有限公司 | 一种双全工通信方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9692598B2 (en) * | 2015-08-07 | 2017-06-27 | Terry L. Davis | Multi-use long string authentication keys |
-
2022
- 2022-04-22 CN CN202210437380.XA patent/CN115037507B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101040588B1 (ko) * | 2010-12-13 | 2011-06-10 | 한국기초과학지원연구원 | 익명성을 제공하는 효율적인 신원기반 환서명 방법과 그 시스템 |
CN105049453A (zh) * | 2015-08-26 | 2015-11-11 | 同济大学 | 一种签名验证方法 |
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
WO2017190641A1 (zh) * | 2016-05-03 | 2017-11-09 | 北京京东尚科信息技术有限公司 | 拦截爬虫的方法、装置、服务器终端以及计算机可读介质 |
CN107743133A (zh) * | 2017-11-30 | 2018-02-27 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和系统 |
CN112689014A (zh) * | 2020-12-24 | 2021-04-20 | 百果园技术(新加坡)有限公司 | 一种双全工通信方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115037507A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188645B2 (en) | Identifying whether an application is malicious | |
US20180374097A1 (en) | A distributed user profile identity verification system for e-commerce transaction security | |
CN110879903A (zh) | 证据存储方法、证据验证方法及装置、设备和介质 | |
US10740411B2 (en) | Determining repeat website users via browser uniqueness tracking | |
US11533330B2 (en) | Determining risk metrics for access requests in network environments using multivariate modeling | |
CN108933695B (zh) | 用于处理信息的方法和装置 | |
CN111104675A (zh) | 系统安全漏洞的检测方法和装置 | |
US11240228B2 (en) | Data security utilizing historical password data | |
CN113572763A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9398041B2 (en) | Identifying stored vulnerabilities in a web service | |
CN115037507B (zh) | 用户访问管理的方法、装置和系统 | |
CN107634942B (zh) | 识别恶意请求的方法和装置 | |
CN114036364B (zh) | 用于识别爬虫的方法、装置、设备、介质和系统 | |
CN113225348B (zh) | 请求防重放校验方法和装置 | |
CN112966286B (zh) | 用户登录的方法、系统、设备和计算机可读介质 | |
CN112910643B (zh) | 一种区块链中随机数的生成方法及装置 | |
CN111786936A (zh) | 用于鉴权的方法和装置 | |
CN113190812A (zh) | 一种登录方法、系统、电子设备及存储介质 | |
CN111598544A (zh) | 用于处理信息的方法和装置 | |
CN111885006B (zh) | 页面访问、授权访问方法和装置 | |
CN113221157B (zh) | 一种设备升级方法和装置 | |
CN115168831A (zh) | 访问权限的验证方法和装置 | |
CN114428967A (zh) | 数据传输方法、装置、设备以及存储介质 | |
CN115758376A (zh) | 威胁识别方法、装置、设备、介质和程序产品 | |
CN115459989A (zh) | 数据访问方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |