CN111478910B - 用户身份验证方法和装置、电子设备以及存储介质 - Google Patents
用户身份验证方法和装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN111478910B CN111478910B CN202010274162.XA CN202010274162A CN111478910B CN 111478910 B CN111478910 B CN 111478910B CN 202010274162 A CN202010274162 A CN 202010274162A CN 111478910 B CN111478910 B CN 111478910B
- Authority
- CN
- China
- Prior art keywords
- user
- access request
- address
- identity
- token
- 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
Images
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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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
- H04L63/101—Access control lists [ACL]
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本公开的实施例公开了一种用户身份验证方法和装置、电子设备以及存储介质,其中,用户身份验证方法包括:响应于基于程序的访问请求,获取所述访问请求对应的用户的授权信息;对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识;若检测出预设身份标识集合中未包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则将用户身份标识和令牌以键值的形式存储于所述预设身份标识集合中,并针对用户身份标识和令牌进行网络访问计数;若检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对访问请求进行拦截处理。本公开可以降低非法用户的网络访问对程序和数据安全的危害,有利于提高程序的鲁棒性。
Description
技术领域
本公开涉及互联网技术,尤其是涉及一种用户身份验证方法和装置、电子设备以及存储介质。
背景技术
在互联网技术中,网络访问可能会涉及到用户身份验证。用户身份验证可以实现对用户身份的确认。用户身份验证的目的包括:确认当前进行网络访问的用户的身份是否是其所声称的用户的身份。
在实现本公开的过程中,本公开发明人通过研究发现,一些为了实现数据采集等目的的非法用户的网络访问会造成一定的危害,例如,非法用户的网络访问可能会侵占网站的大量带宽资源,可能会危害用户隐私,并可能会侵犯知识产权等。如何实现用户身份验证,以尽可能的降低非法用户的网络访问造成的危害,是一个值得关注的技术问题。
发明内容
本公开实施例提供一种用于用户身份验证的技术方案,以降低非法用户的网络访问对程序和数据安全的危害,提高程序的鲁棒性。
本公开实施例的一个方面,提供了一种用户身份验证方法,该方法包括:响应于基于程序的访问请求,获取所述访问请求对应的用户的授权信息;对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识;若检测出预设身份标识集合中未包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则将所述用户身份标识和所述令牌以键值的形式存储于所述预设身份标识集合中,并针对所述用户身份标识和令牌进行网络访问计数;若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的方法中,所述响应于基于程序的访问请求,获取所述访问请求对应的用户的授权信息,包括:响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中包含有用户的授权信息,从所述访问请求中获取用户的授权信息。
可选地,在本公开任一实施例的方法中,所述方法还包括:响应于接收到的访问请求未包含有版本信息,放行所述访问请求;和/或,响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址属于基于小程序的请求地址白名单,放行所述访问请求;和/或,响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中未包含有授权信息,对所述访问请求进行拦截处理,并将所述访问请求中的用户IP地址添加于用户IP地址检测名单中。
可选地,在本公开任一实施例的方法中,所述对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识,包括:利用基于小程序的密钥对所述授权信息进行解密处理,获得解密后的授权信息;若检测出所述解密后的授权信息符合预定格式,则确定验证成功,从所述解密后的授权信息中获取用户身份标识;所述方法还包括:若检测出所述解密后的授权信息不符合预定格式,则确定验证失败,对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的方法中,所述方法还包括:若检测出预设身份标识集合中包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则根据所述预设身份标识集合中的所述用户身份标识对应的预设令牌,对所述访问请求中的令牌进行验证;若所述令牌的验证失败,则对所述访问请求进行拦截处理;若所述令牌的验证成功,则针对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的方法中,所述方法还包括:若检测出所述访问请求中未包含有用于身份验证的令牌或者所述访问请求中的用户IP地址属于用户IP地址检测名单,对所述访问请求进行拦截处理;和/或,若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址属于用户IP地址白名单或者用户IP段白名单,则对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;和/或,若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址不属于用户IP地址白名单或者用户IP段白名单,则将所述用户IP地址添加在用户IP地址检测名单,并对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的方法中,所述方法还包括:响应于接收到的访问请求包含有版本信息,且所述版本信息为基于非小程序的版本信息,判断所述访问请求当前是否不属于被拦截对象,若所述访问请求当前不属于被拦截对象,则获取所述访问请求的访问地址;若所述访问地址属于预设备案地址或者预设保护地址,针对所述访问请求的用户进行备案地址访问计数或者保护地址访问计数,若检测出所述用户的当前备案地址访问计数值或者当前保护地址访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的方法中,所述判断所述访问请求当前是否不属于被拦截对象,包括:若检测出所述访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象;或者,若检测出所述访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象。
可选地,在本公开任一实施例的方法中,所述用户的代理符合预定代理条件包括:所述用户的代理为非法用户,且所述访问请求所对应的域名属于域名白名单;和/或所述用户的代理不为非法用户,且所述用户的代理的长度小于预定长度;所述方法还包括:若用户的代理不符合预定代理条件,将所述访问请求的用户IP地址添加在用户IP地址检测名单中;或者,若用户的代理不符合预定代理条件,则将所述访问请求的用户电话号码添加在用户电话号码检测名单中。
本公开实施例的另一个方面,提供一种用户身份验证装置,包括:获取授权信息模块,用于响应于基于程序的访问请求,获取所述访问请求对应的用户的授权信息;获取身份标识模块,用于对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识;标识令牌处理模块,用于若检测出预设身份标识集合中未包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则将所述用户身份标识和所述令牌以键值的形式存储于所述预设身份标识集合中,并针对所述用户身份标识和令牌进行网络访问计数;第一拦截模块,用于若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的装置中,所述获取授权信息模块进一步用于:响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中包含有用户的授权信息,从所述访问请求中获取用户的授权信息。
可选地,在本公开任一实施例的装置中,所述装置还包括:第一放行模块,用于响应于接收到的访问请求未包含有版本信息,放行所述访问请求;和/或,第二放行模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址属于基于小程序的请求地址白名单,放行所述访问请求;和/或,第二拦截模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中未包含有授权信息,对所述访问请求进行拦截处理,并将所述访问请求中的用户IP地址添加于用户IP地址检测名单中。
可选地,在本公开任一实施例的装置中,所述获取身份标识模块进一步用于:利用基于小程序的密钥对所述授权信息进行解密处理,获得解密后的授权信息;若检测出所述解密后的授权信息符合预定格式,则确定验证成功,从所述解密后的授权信息中获取用户身份标识;所述装置还包括:第三拦截模块,用于若检测出所述解密后的授权信息不符合预定格式,则确定验证失败,对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的装置中,所述装置还包括:第四拦截模块,用于若检测出预设身份标识集合中包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则根据所述预设身份标识集合中的所述用户身份标识对应的预设令牌,对所述访问请求中的令牌进行验证;若所述令牌的验证失败,则对所述访问请求进行拦截处理;若所述令牌的验证成功,则针对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的装置中,所述装置还包括:第五拦截模块,用于若检测出所述访问请求中未包含有用于身份验证的令牌或者所述访问请求中的用户IP地址属于用户IP地址检测名单,则对所述访问请求进行拦截处理;和/或,第六拦截模块,用于若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址属于用户IP地址白名单或者用户IP段白名单,则对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;和/或,第七拦截模块,用于若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址不属于用户IP地址白名单或者用户IP段白名单,则将所述用户IP地址添加在用户IP地址检测名单,并对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的装置中,所述装置还包括:第八拦截模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为基于非小程序的版本信息,判断所述访问请求当前是否不属于被拦截对象,若所述访问请求当前不属于被拦截对象,获取所述访问请求的访问地址;若所述访问地址属于预设备案地址或者预设保护地址,针对所述访问请求的用户进行备案地址访问计数或者保护地址访问计数,若检测出所述用户的当前备案地址访问计数值或者当前保护地址访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
可选地,在本公开任一实施例的装置中,所述第八拦截模块判断所述访问请求当前是否不属于被拦截对象,包括:若所述第八拦截模块检测出所述访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象;或者,若所述第八拦截模块检测出所述访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象。
可选地,在本公开任一实施例的装置中,所述用户的代理符合预定代理条件,包括:所述用户的代理为非法用户,且所述访问请求所对应的域名属于域名白名单;和/或,所述用户的代理不为非法用户,且所述用户的代理的长度小于预定长度;所述装置还包括:检测名单维护模块,用于:若用户的代理不符合预定代理条件,将所述访问请求的用户IP地址添加在用户IP地址检测名单中;或者,若用户的代理不符合预定代理条件,将所述访问请求的用户电话号码添加在用户电话号码检测名单中。
本公开实施例的又一个方面,提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的用户身份验证方法。
本公开实施例的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开上述任一实施例所述的用户身份验证方法。
基于本公开上述实施例提供的用户身份验证方法和装置、电子设备和存储介质,通过针对基于程序的访问请求所对应的用户的授权信息进行验证,并从验证成功的授权信息中获取用户身份标识,有利于识别出使用虚假授权信息的网络访问。通过在预设身份标识集合中未包含有用户身份标识,且访问请求中包含有用于身份验证的令牌的情况下,将从访问请求中获得的用户身份标识和令牌以键值的形式存储于预设身份标识集合中,有利于准确的识别出初次使用该程序的用户,并有利于使该用户在后续可以顺利进行基于该程序的网络访问。通过针对用户身份标识和令牌进行网络访问计数,并在检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件时,对访问请求进行拦截处理,有利于实现对伪装较深的网络访问的拦截。由此可知,本公开实施例可以有效降低非法用户的网络访问对程序和数据安全的危害,有利于提高程序的鲁棒性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开实施例的用户身份验证方法一个实施例的流程图。
图2为本公开实施例的用户身份验证方法另一个实施例的流程图。
图3为本公开实施例的用户身份验证方法再一个实施例的流程图。
图4为本公开实施例的用户身份验证方法又一个实施例的流程图。
图5为本公开用户身份验证装置一个实施例的结构示意图。
图6为本公开电子设备一个应用实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机***、服务器等电子设备,其可与众多其它通用或专用计算***环境或配置一起操作。适于与终端设备、计算机***、服务器等电子设备一起使用的众所周知的终端设备、计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
终端设备、计算机***、服务器等电子设备可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
本公开的用户身份验证方法可以采用nodejs等前端语言实现。图1为本公开的用户身份验证方法一个实施例的流程图。如图1所示,该实施例的用户身份验证方法包括下述步骤:
S100、响应于基于程序的访问请求,获取该访问请求对应的用户的授权信息。
S100中的程序包括:小程序。即本公开的用户身份验证方法可以应用在小程序领域中。此时,S100中的基于程序的访问请求可以为基于小程序的访问请求。本公开中的小程序可以是指不需要下载安装即可使用的应用。本公开中的小程序通常为基于即时通信的小程序,例如,基于微信的小程序等。
本公开中的基于小程序的访问请求可以是指:基于运行的小程序而发送的用于访问相应网页的请求。该访问请求携带的信息可以包括:需要访问的网页的地址(如URL(Uniform Resource Locator,统一资源定位符)等)、用户的授权信息(authrization)以及用于用户身份验证的令牌(token)等。然而,在一些应用场景(如利用非法用户获取信息等应用场景)中,接收到的访问请求所携带的信息可能并不包括:授权信息以及用于身份验证的令牌等信息。本公开中的授权信息通常用于对访问请求进行验证。在访问请求携带的信息包括用户的授权信息的情况下,本公开可以从接收到的访问请求携带的信息中获取到用户的授权信息。
S101、对授权信息进行验证,并从验证成功的授权信息中获取用户身份标识。
本公开可以基于预先设置的密钥对授权信息进行验证处理。一个预先设置的密钥通常对多个用户的授权信息(如所有用户的授权信息)均适用。本公开的授权信息可以包括:用户身份标识(如openid(开放标识))、时间戳以及预定字符串(如小程序对应的商家名称)等。
通常情况下,在一个小程序中,一个用户具有一个唯一openid,不同用户所具有的openid不相同,且一个用户在不同小程序中所具有的openid可能并不相同。验证成功的授权信息通常为格式符合预定规范的授权信息,例如,授权信息所包含的各字段的字段长度均符合相应要求,再例如,授权信息所包含的字符串为预定字符串等。
S102、若检测出预设身份标识集合中未包含有上述用户身份标识,且访问请求中包含有用于身份验证的令牌,则将用户身份标识和令牌以键值的形式存储于预设身份标识集合中,并针对该用户身份标识和令牌进行网络访问计数。
本公开的预设身份标识集合可以包括多条记录,每一条记录均可以包括:用户身份标识以及用户的令牌。预设身份标识集合可以认为是以用户身份标识为键(key),以令牌为值(value)的信息集合。本公开可以利用从验证成功的授权信息中获取到的用户身份标识,在预设身份标识集合中进行匹配查找,如果未查找到匹配记录,则可以认为预设身份标识集合中未包含有从授权信息中获取到的用户身份标识。此时,有可能是因为用户第一次使用该小程序,因此,预设身份标识集合中未设置有该用户的用户身份标识和令牌。本公开中的预设身份标识集合可以为基于Redis(Remote Dictionary Server,远程字典服务)的一数据库。
在访问请求中包含有令牌的情况下,本公开可以将从授权信息中获取到的用户身份标识和从访问请求中获取到的令牌存储在预设身份标识集合中,以便于在用户非首次使用该小程序时,可以查找到该用户的用户身份标识和令牌。
本公开的预设身份标识集合的每一条记录中还可以包括:当前网络访问计数值,当前网络访问计数值可以表示出一个用户基于该小程序已经执行(如在预定时间范围内已经执行)的网络访问的次数。本公开中的针对该用户身份标识和令牌进行网络访问计数可以为:根据预定步长,更新预设身份标识集合中的该用户身份标识所对应记录中的当前网络访问计数值。例如,将预设身份标识集合中的该用户身份标识所对应记录中的当前网络访问计数值加1。
S103、若检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对访问请求进行拦截处理。
本公开中的预设计数条件可以包括:当前网络访问计数值不超过预定计数值等。本公开中的对访问请求进行拦截处理可以为对于未登录小程序的用户,向其发送登录页面,对于已经登录小程序的用户,向其发送预定页面(如预定静态页面),预定页面可以为包含有“sorry”等字样的静态页面等。
基于本公开上述实施例提供的用户身份验证方法,通过针对基于程序的访问请求(如基于小程序的访问请求)所对应的用户的授权信息进行验证,并从验证成功的授权信息中获取用户身份标识,有利于识别出使用虚假授权信息的网络访问。通过在预设身份标识集合中未包含有用户身份标识,且访问请求中包含有用于身份验证的令牌的情况下,将从访问请求中获得的用户身份标识和令牌以键值的形式存储于预设身份标识集合中,有利于准确的识别出初次使用该程序(如该小程序)的用户,并有利于使该用户在后续可以顺利进行基于该程序(如基于该小程序)的网络访问。通过针对用户身份标识和令牌进行网络访问计数,并在检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件时,对访问请求进行拦截处理,有利于实现对伪装较深的网络访问的拦截。由上述描述可知,本公开实施例可以有效降低非法用户的网络访问对程序(如小程序)和数据安全的危害,有利于提高程序(如小程序)的鲁棒性。
在一个可选示例中,本公开在接收到访问请求时,如果该访问请求满足下述四个条件,则本公开可以从该访问请求中获取用户的授权信息:
条件1、访问请求中包含有版本信息;
条件2、访问请求中包含的版本信息为小程序版本信息;
条件3、访问请求的请求地址不属于基于小程序的请求地址白名单;
条件4、访问请求中包含有授权信息。
在将上述四个条件应用在本公开的用户身份验证方法中时,本公开的用户身份验证方法的一个例子如图2所示。
图2中,S200、接收访问请求。
可选的,本公开接收到的访问请求可能是由于用户运行小程序而发出的访问请求(即基于小程序的访问请求,也即小程序类型的访问请求),也可能是非法用户(如爬虫等)发出的访问请求(即基于非法用户的访问请求,也即非法用户类型的访问请求),还可能是用户运行APP(应用,如平板电脑或者智能移动电话等终端设备中的APP)或者客户端应用(如计算机中的浏览器或者应用程序客户端等)等而发出的访问请求(如网页类型的访问请求)等。
S201、判断该访问请求中是否包含有版本信息,如果包含有版本信息,则到S202,如果未包含有版本信息,则到S206。
可选的,在通常情况下,访问请求中包含有版本信息。在小程序推出活动等场景下,用于访问活动的图片的访问请求可能会不包含有版本信息。
可选的,本公开中的版本(version)信息可以表示出该访问请求的类型,例如,在版本信息包含有与小程序(如微信小程序等)相关的字符串时,表示该访问请求为小程序类型的访问请求,再例如,在版本信息包含有与万维网相关的字符串时,表示该访问请求为网页类型的访问请求。具体不再一一详细说明。
S202、判断该版本信息是否为小程序版本信息,如果该版本信息为小程序版本信息,则确定该访问请求为基于小程序的访问请求,到S203,如果该版本信息不为小程序版本信息,则确定该访问请求为基于非小程序的访问请求,到S207。
可选的,本公开可以通过判断版本信息是否包含有与小程序相关的字符串(如微信等字符串),确定出该版本信息是否为小程序版本信息。
S203、判断访问请求的请求地址是否属于基于小程序的请求地址白名单,如果不属于基于小程序的请求地址白名单,则到S204,如果属于基于小程序的请求地址白名单,则到S206。
可选的,本公开中的请求地址可以是指被访问的对象的地址,如URL等网址。本公开中的基于小程序的请求地址白名单可以包括一个或者多个基于小程序的网址。本公开中的基于小程序的请求地址白名单可以是根据实际需求预先设置的。例如,本公开可以预先将允许任意访问的基于小程序的网址设置在基于小程序的请求地址白名单中。当然,基于小程序的请求地址白名单也可以为空。
S204、判断该访问请求中是否包含有授权信息,如果包含有授权信息,则到S205,如果未包含有授权信息,则到S208。
S205、从该访问请求携带的信息中获取用户的授权信息。在获取到用户的授权信息之后,本公开可以执行如后续图3所示的流程。
S206、放行该访问请求。
可选的,本公开放行该访问请求意味着:返回该访问请求所请求访问的对象的页面信息。即向用户显示正确的页面信息。在图2所示的流程中,未包含有版本信息的访问请求所对应的页面信息通常是允许任意用户(包括爬虫等非法用户)任意访问的页面信息。
S207、转入针对基于非小程序的访问请求的处理流程中。本公开提供的针对基于非小程序的访问请求的处理流程的一个例子可以参见下述针对图4的描述。
S208、对该访问请求进行拦截处理,并将该访问请求中的用户IP地址添加在用户IP地址检测名单中。
可选的,在一些应用场景中,本公开中的用户IP地址检测名单用于决定是否对接收到的访问请求进行拦截处理。例如,如果访问请求中的用户IP地址属于用户IP地址检测名单,则应决定对该反问请求进行拦截处理。
本公开通过利用访问请求中的版本信息,可以将用户身份验证处理流程区分为基于小程序的用户身份验证处理流程和基于非小程序的用户身份验证处理流程,从而有利于对不同形式的网络访问进行有针对性的处理。通过利用基于小程序的请求地址白名单,可以在开放一部分信息,允许任意用户(如爬虫等非法用户)访问的同时,实现对部分信息的保护。通过利用访问请求中的授权信息,有利于识别出部分非法用户,通过在对未包含有授权信息的访问请求进行拦截的同时,将访问请求中的用户IP地址添加在用户IP地址检测名单中,可以获得针对小程序的爬虫的IP地址特征,从而在后续的用户身份验证处理流程中,有利于快速的识别出针对小程序的非法用户。
在一个可选示例中,本公开的用户身份验证方法的一个例子如图3所示。
图3中,S300、利用基于小程序的密钥对访问请求中的授权信息进行解密处理,获得解密后的授权信息。该密钥可以是对称密钥,也可以是非对称密钥。
S301、判断解密后的授权信息是否符合预定格式,如果符合预定格式,则确定验证成功,到S302。如果不符合预定格式,则确定验证失败,到S303。
可选的,解密后的授权信息是否符合预定格式可以包括:解密后的授权信息的长度是否符合预定要求、解密后的授权信息中的时间戳是否符合预定要求、解密后的授权信息中的用户身份标识的长度是否符合预定要求、以及解密后的授权信息是否包含有预定字符串等。本公开对解密后的授权信息是否符合预定格式的具体实现方式不作限定。
S302、从解密后的授权信息中获取用户身份标识。到S304。
S303、对该访问请求进行拦截处理。
S304、判断该访问请求中是否包含有用于身份验证的令牌。如果未包含有令牌,则到S3041。如果包含有令牌,则到S305。另外,在判断出访问请求中未包含有令牌的情况下,本公开也可以直接到S3042或者直接到S303。
S3041、判断用户IP地址是否属于用户IP地址白名单或者是否属于用户IP段(即IP基段)白名单,如果用户IP地址属于用户IP地址白名单或者属于用户IP段白名单,则到S312。如果用户IP地址不属于用户IP地址白名单,同时也不属于用户IP段白名单,则到S3042。
S3042、在用户IP地址不属于用户IP地址检测名单的情况下,将用户IP地址添加在用户IP地址检测名单中。到S303。
S305、判断预设身份标识集合中是否包含有上述用户身份标识,如果预设身份标识集合中未包含有上述用户身份标识,则到S306。如果预设身份标识集合中包含有上述用户身份标识,则到S307。
S306、将访问请求中的用户身份标识和令牌写入预设身份标识集合中,并到S309。
S307、根据预设身份标识集合中的用户身份标识对应的令牌,对访问请求中的令牌进行验证。具体的,访问请求中的令牌可以记为authToken,预设身份标识集合中的用户身份标识对应的令牌可以记为authTokenRds,本公开可以比较authTokenRds和authToken是否相同。
S308、判断令牌验证结果,如果验证结果为验证失败,则到S303。如果验证结果为验证成功,则到S309。例如,如果authToken和authTokenRds相同,则验证成功,如果authToken和authTokenRds不相同,则验证失败。
S309、判断用户IP地址是否属于用户IP地址检测名单,且用户IP地址不属于用户IP地址白名单或者不属于用户IP段白名单,如果用户IP地址属于用户IP地址检测名单,且用户IP地址不属于用户IP地址白名单或者不属于用户IP段白名单,则到S303。如果用户IP地址不属于用户IP地址检测名单,或者用户IP地址属于用户IP地址白名单或者属于用户IP段白名单,则到S310。
S310、针对用户身份标识和令牌进行网络访问计数。
可选的,本公开可以根据预定步长,更新预设身份标识集合中的该用户身份标识所对应记录中的当前网络访问计数值。例如,将预设身份标识集合中的该用户身份标识所对应记录中的当前网络访问计数值加1。
S311、判断身份标识和令牌对应的当前网络访问计数值是否满足预设计数条件,如果不满足预设计数条件,则到S303。如果满足预设计数条件,则到S312。
可选的,本公开中的预设计数条件可以包括:当前网络访问计数值不超过预定计数值等。
S312、对该访问请求进行放行处理。
需要说明的是,图3中的部分步骤的先后顺序可以进行适当调整,例如,访问请求是否包含令牌的判断步骤(S304)与预设身份标识集合中是否包含用户身份标识的判断步骤(S305)的先后顺序可以颠倒,也可以合并在一个步骤中。在此不对图3的各种变形实现方式进行一一详细说明。
本公开通过在授权信息验证成功时,从授权信息中获取用户身份标识,并在预设身份标识集合中未包含该用户身份标识时,将用户身份标识和访问请求中的令牌添加在预设身份标识集合中,可以针对小程序的新用户自动维护预设身份标识集合。通过基于授权信息验证结果对访问请求进行拦截处理,通过基于令牌验证结果对访问请求进行拦截处理,通过基于用户IP地址检测名单、用户IP地址白名单和用户IP段白名单对访问请求进行拦截处理,通过基于网络访问计数对访问请求进行拦截处理,有利于避免伪装成各种形式的非法用户对小程序和数据安全的危害,从而有利于尽可能的降低非法用户的网络访问对小程序和数据安全的危害,有利于对小程序和数据进行较为全面的保护。
在一个可选示例中,本公开的用户身份验证方法中的针对基于非小程序的访问请求的处理流程的一个例子,可以如图4所示。
图4中,S400、接收访问请求,且该访问请求包含有版本信息,且该版本信息为基于非小程序的版本信息。
S401、判断该访问请求当前是否属于被拦截对象,如果该访问请求当前不属于被拦截对象,则到S402。如果该访问请求当前属于被拦截对象,则到S411。
可选的,本公开可以在S401中先判断该访问请求的请求地址(即访问地址)是否属于请求地址白名单(即访问地址白名单),如果属于请求地址白名单,则可以确定该访问请求当前不属于被拦截对象,此时,可以直接到S409。如果不属于请求地址白名单,再判断该访问请求当前是否属于被拦截对象。
可选的,本公开可以在S401中先判断该访问请求的请求地址(即访问地址)是否属于请求地址白名单,如果不属于请求地址白名单,本公开可以再判断该访问请求的用户IP地址是否属于用户IP地址白名单或者用户IP段白名单,如果属于用户IP地址白名单或者用户IP段白名单,则可以确定该访问请求当前不属于被拦截对象,此时,可以直接到S409。如果不属于用户IP地址白名单,也不属于用户IP段白名单,再判断该访问请求当前是否属于被拦截对象。
可选的,本公开可以在S401中先判断该访问请求的请求地址(即访问地址)是否属于请求地址白名单,如果不属于请求地址白名单,本公开可以再判断该访问请求的用户电话号码是否属于用户电话号码白名单,如果属于用户电话号码白名单,则可以确定该访问请求当前不属于被拦截对象,此时可以直接到S409。如果不属于用户电话号码白名单,再判断该访问请求当前是否属于被拦截对象。
在一个例子中,本公开在检测出访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单中的任一名单,且用户的代理符合预定代理条件,则可以确定该访问请求当前不属于被拦截对象,此时本公开可以直接到S402。
在一个例子中,本公开在检测出访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单中的任一名单,且用户的代理符合预定代理条件,则可以确定该访问请求当前不属于被拦截对象,此时本公开可以直接到S402。
可选的,如果检测出访问请求的用户IP地址属于用户IP地址黑名单,则可以确定该访问请求当前属于被拦截对象,本公开可以直接到S411。如果检测出访问请求的用户电话号码属于用户电话号码黑名单,则可以确定该访问请求当前属于被拦截对象,本公开可以直接到S411。
可选的,如果检测出访问请求的用户IP地址属于用户IP地址检测名单,且访问请求的来源页面的搜索引擎不存在异常,则确定该访问请求当前不属于被拦截对象,此时本公开可以直接到S402。如果检测出访问请求的用户电话号码属于用户电话号码检测名单,且访问请求的来源页面的搜索引擎不存在异常,则确定该访问请求当前不属于被拦截对象,此时,本公开可以直接到S402。
可选的,如果检测出访问请求的用户IP地址属于用户IP地址投毒名单,则可以直接对该访问请求进行投毒处理,如向用户返回不正确的数据。如果检测出访问请求的用户电话号码属于用户电话号码投毒名单,则可以直接对该访问请求进行投毒处理,如向用户返回不正确的数据。
可选的,本公开中的预定代理条件可以是针对域名和和代理长度设置的。例如,在用户的代理为非法用户(如爬虫等)的情况下,本公开可以对访问请求进行域名解析,例如,利用DNS(Domain Name System)实现域名解析。如果解析获得的域名属于域名白名单,则确定用户的代理符合预定代理条件。如果解析获得的域名不属于域名白名单,且解析获得的域名的长度小于预定长度(如小于8),则确定用户的代理不符合预定代理条件,则可以到S410。
S402、获取该访问请求的访问地址。
S403、判断访问请求的访问地址是否属于预设备案地址,如果不属于预设备案地址,则到S404。如果属于预设备案地址,则到S4031。
可选的,本公开中的预设备案地址可以是指需要进行一定程度保护的数据的地址。即保护等级较高的数据的地址。预设备案地址可以根据实际需求设置,例如,可以预先将网络中较为重要的数据的地址设置为预设备案地址。再例如,可以预先将网络中较为隐私的数据的地址设置为预设备案地址。
S4031、针对访问请求的用户进行备案地址访问计数,获得第一计数值。到S4032。
S4032、判断第一计数值是否满足第一预设计数条件,如果满足第一预设计数条件,则到S403,如果不满足第一预设计数条件,则到S410。
可选的,第一预设计数条件可以为第一计数值不超过第一预定计数值等。本公开通过在第一计数值不满足第一预设计数条件的情况下,跳转到S410,更新用户IP地址检测名单,并对该访问请求进行拦截处理,可以有效避免预设备案地址的数据被过多访问的现象,从而有利于保护较为重要的数据的安全性。
S404、判断访问请求的访问地址是否属于预设保护地址,如果不属于预设保护地址,则到S405。如果属于预设保护地址,则到S4041。
可选的,本公开中的预保护地址可以是指需要进行最大程度保护的数据的地址。即保护等级最高的数据的地址。预设保护地址的数量通常远远小于预设备案地址的数量。预设保护地址可以根据实际需求设置,例如,可以预先将网络中最为重要的数据的地址设置为预设保护地址。再例如,可以预先将网络中最为隐私的数据的地址设置为预设备案地址。
S4041、针对访问请求的用户进行保护地址访问计数,获得第二计数值。到S4042。
S4042、判断第二计数值是否满足第二预设计数条件,如果满足第二预设计数条件,则到S405,如果不满足第二预设计数条件,则到S410。
可选的,第二预设计数条件可以为第二计数值不超过第二预定计数值等。通过在第二计数值不满足第二预设计数条件的情况下,跳转到S410,更新用户IP地址检测名单,并对该访问请求进行拦截处理,可以有效避免预设保护地址的数据被过多访问的现象,从而有利于保护非常重要的数据的安全性。
S405、针对访问请求的用户进行网络访问计数,获得第三计数值。
可选的,本公开中的第三计数值可以包括多个计数元素,例如,第三计数值可以包括:基于不同计数周期的多个计数元素,例如,第三计数值可以包括:基于最近N分钟(如最近5分钟)计数周期的计数元素、基于最近N小时(如最近1小时)计数周期的计数元素、以及基于最近N天(如最近1天)计数周期的计数元素等。在该情况下,本公开获得的第三计数值可以包括3个数值,即最近5分钟该用户进行网络访问的次数,最近1小时该用户进行网络访问的次数,最近1天该用户进行网络访问的次数。
S406、判断第三计数值是否满足第三预设计数条件,如果满足第三预设计数条件,则到S407。如果不满足第三预设计数条件,则到S410。
可选的,第三预设计数条件可以为第三计数值中的每一个计数元素的数值均不超过相应的计数值等。具体的,在本公开中的第三计数值包括多个计数元素的情况下,只要其中任一计数元素的数值超过相应的计数值,则认为第三计数值不满足第三预设计数条件。例如,如果最近5分钟该用户进行网络访问的次数超过相应次数要求,而最近1小时该用户进行网络访问的次数和最近1天该用户进行网络访问的次数,均没有超过相应次数要求,则本公开认为第三计数值不满足第三预设计数条件。
S407、对访问请求的来源页面(reffer)进行计数,获得第四计数值。
可选的,本公开中的访问请求的来源页面可以表示出访问请求是从哪个页面链接过来的。访问请求中通常携带有其来源页面信息(如携带有reffer)。
S408、判断第四计数值是否满足第四预设计数条件,如果不满足第四预设计数条件,则到S409。如果满足第四预设计数条件,则到S410。第四预设计数条件可以为第四计数值不超过第四预定计数值等。
S409、对该访问请求进行放行处理。
S410、将该访问请求的用户IP地址添加在用户IP地址检测名单中,或者将访问请求的用户电话号码加入到用户电话号码检测名单中,并对访问请求进行拦截处理。
本公开通过设置多重判别逻辑,在有利于对基于非小程序的数据进行全面保护的情况下,可以对网络中的不同类型的数据进行差异化保护,不仅有利于提高数据的安全性,而且有利于提高数据保护的灵活性。
本公开实施例提供的任一种用户身份验证方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:设置于终端设备和提供数据服务(如基于小程序的数据服务或者基于非小程序的数据服务)的服务器之间的网络设备等。网络设备中的处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种用户身份验证方法。下文不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本公开的用户身份验证装置一个实施例的结构示意图。该实施例的用户身份验证装置可用于实现本公开上述各用户身份验证方法实施例。如图5所示,该实施例的装置主要包括:获取授权信息模块、获取身份标识模块、标识令牌处理模块和第一拦截模块。该装置还可以包括:第一放行模块、第二放行模块、第二拦截模块、第三拦截模块、第四拦截模块、第五拦截模块、第六拦截模块、第七拦截模块、第八拦截模块以及检测名单维护模块。
获取授权信息模块用于响应于基于程序的访问请求,获取所述访问请求对应的用户的授权信息。例如,响应于接收到的访问请求包含有版本信息,且版本信息为小程序版本信息,且访问请求的请求地址不属于基于小程序的请求地址白名单,且访问请求中包含有用户的授权信息,获取授权信息模块从访问请求中获取用户的授权信息。
获取身份标识模块用于对获取授权信息模块获得的授权信息进行验证,并从验证成功的授权信息中获取用户身份标识。例如,获取身份标识模块可以利用基于小程序的密钥对所述授权信息进行解密处理,获得解密后的授权信息,在检测出解密后的授权信息符合预定格式时,获取身份标识模块确定验证成功,获取身份标识模块从解密后的授权信息中获取用户身份标识。本公开中的第三拦截模块可以用于在获取身份标识模块检测出解密后的授权信息不符合预定格式时,确定验证失败,对访问请求进行拦截处理。
标识令牌处理模块用于如果检测出预设身份标识集合中未包含有用户身份标识,且访问请求中包含有用于身份验证的令牌,则将用户身份标识和令牌以键值的形式存储于预设身份标识集合中,并针对用户身份标识和令牌进行网络访问计数。
第一拦截模块用于在检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件时,对访问请求进行拦截处理。
第一放行模块用于响应于接收到的访问请求未包含有版本信息,放行该访问请求。
第二放行模块用于响应于接收到的访问请求包含有版本信息,且版本信息为小程序版本信息,且访问请求的请求地址属于基于小程序的请求地址白名单,放行该访问请求。
第二拦截模块用于响应于接收到的访问请求包含有版本信息,且版本信息为小程序版本信息,且访问请求的请求地址不属于基于小程序的请求地址白名单,且访问请求中未包含有授权信息,对访问请求进行拦截处理,并将访问请求中的用户IP地址添加于用户IP地址检测名单中。
第四拦截模块用于如果检测出预设身份标识集合中包含有用户身份标识,且访问请求中包含有用于身份验证的令牌,则根据预设身份标识集合中的所述用户身份标识对应的预设令牌,对访问请求中的令牌进行验证。若令牌的验证失败,则第四拦截模块对所述访问请求进行拦截处理;若令牌的验证成功,则第四拦截模块针对用户身份标识和令牌进行网络访问计数,在检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件时,对访问请求进行拦截处理。
第五拦截模块用于在检测出访问请求中未包含有用于身份验证的令牌或访问请求中的用户IP地址属于用户IP地址检测名单时,对访问请求进行拦截处理。
第六拦截模块用于在检测出访问请求中未包含有用于身份验证的令牌,且访问请求中的用户IP地址属于用户IP地址白名单或者用户IP段白名单时,对用户身份标识和令牌进行网络访问计数,在检测出身份标识和令牌对应的当前网络访问计数值不满足预设计数条件时,对访问请求进行拦截处理。
第七拦截模块用于在检测出访问请求中未包含有用于身份验证的令牌,且访问请求中的用户IP地址不属于用户IP地址白名单或者用户IP段白名单时,将用户IP地址添加在用户IP地址检测名单,并对访问请求进行拦截处理。
第八拦截模块用于响应于接收到的访问请求包含有版本信息,且版本信息为基于非小程序的版本信息,判断访问请求当前是否不属于被拦截对象,若访问请求当前不属于被拦截对象,获取访问请求的访问地址;若访问地址属于预设备案地址或者预设保护地址,针对访问请求的用户进行备案地址访问计数或者保护地址访问计数,在检测出用户的当前备案地址访问计数值或者当前保护地址访问计数值不满足预设计数条件时,对访问请求进行拦截处理。
可选的,第八拦截模块判断访问请求当前是否不属于被拦截对象的方式可以为:如果检测出访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单,且用户的代理符合预定代理条件,则第八拦截模块确定访问请求当前不属于被拦截对象。
可选的,第八拦截模块判断访问请求当前是否不属于被拦截对象的方式也可以为:如果检测出访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单,且用户的代理符合预定代理条件,则第八拦截模块确定访问请求当前不属于被拦截对象。
本公开中的用户的代理符合预定代理条件可以包括:用户的代理为非法用户,且访问请求所对应的域名不属于域名白名单。也可以包括:用户的代理不为非法用户,且用户的代理的长度小于预定长度(如8)。
检测名单维护模块用于若用户的代理符合预定代理条件,则将访问请求的用户IP地址添加在用户IP地址检测名单中;若用户的代理符合预定代理条件,则将访问请求的用户电话号码添加在用户电话号码检测名单中。
另外,本公开实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的用户身份验证方法。
另外,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开上述任一实施例所述的用户身份验证方法。
图6为本公开电子设备一个应用实施例的结构示意图。下面,参考图6来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
如图6所示,电子设备包括一个或多个处理器和存储器。
处理器可以是中央处理单元(CPU)或具有数据处理能力和/或指令执行能力的其他形式的处理单元,且可以控制电子设备中的其他组件以执行期望的功能。
存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现上文所述的本公开的各个实施例的用户身份验证方法以及/或者其他期望的功能。
在一个示例中,电子设备还可以包括:输入装置和输出装置,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
此外,该输入设备还可以包括例如键盘、鼠标等等。
该输出装置可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的用户身份验证方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的用户身份验证方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (15)
1.一种用户身份验证方法,其特征在于,包括:
响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中包含有用户的授权信息,从所述访问请求中获取用户的授权信息;
对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识;
若检测出预设身份标识集合中未包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则将所述用户身份标识和所述令牌以键值的形式存储于所述预设身份标识集合中,并针对所述用户身份标识和所述令牌进行网络访问计数;
若检测出所述身份标识和所述令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;
若检测出预设身份标识集合中包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则根据所述预设身份标识集合中的所述用户身份标识对应的预设令牌,对所述访问请求中的令牌进行验证;
若所述令牌的验证失败,则对所述访问请求进行拦截处理;
若所述令牌的验证成功,则针对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到的访问请求未包含有版本信息,放行所述访问请求;和/或
响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址属于基于小程序的请求地址白名单,放行所述访问请求;和/或
响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中未包含有授权信息,对所述访问请求进行拦截处理,并将所述访问请求中的用户IP地址添加于用户IP地址检测名单中。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识,包括:
利用基于小程序的密钥对所述授权信息进行解密处理,获得解密后的授权信息;
若检测出所述解密后的授权信息符合预定格式,则确定验证成功,从所述解密后的授权信息中获取用户身份标识;
所述方法还包括:
若检测出所述解密后的授权信息不符合预定格式,则确定验证失败,对所述访问请求进行拦截处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测出所述访问请求中未包含有用于身份验证的令牌或者所述访问请求中的用户IP地址属于用户IP地址检测名单,则对所述访问请求进行拦截处理;和/或
若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址属于用户IP地址白名单或者用户IP段白名单,则对所述用户身份标识和令牌进行网络访问计数,若所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;和/或
若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址不属于用户IP地址白名单或者用户IP段白名单,则将所述用户IP地址添加在用户IP地址检测名单,并对所述访问请求进行拦截处理。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到的访问请求包含有版本信息,且所述版本信息为基于非小程序的版本信息,判断所述访问请求当前是否不属于被拦截对象,若所述访问请求当前不属于被拦截对象,获取所述访问请求的访问地址;
若所述访问地址属于预设备案地址或者预设保护地址,则针对所述访问请求的用户进行备案地址访问计数或者保护地址访问计数,若所述用户的当前备案地址访问计数值或者当前保护地址访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
6.根据权利要求5所述的方法,其特征在于,所述判断所述访问请求当前是否不属于被拦截对象,包括:
若检测出所述访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象;或者
若检测出所述访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象。
7.根据权利要求6所述的方法,其特征在于,所述用户的代理符合预定代理条件,包括:
所述用户的代理为非法用户,且所述访问请求所对应的域名属于域名白名单;和/或
所述用户的代理不为非法用户,且所述用户的代理的长度小于预定长度;
所述方法还包括:
若用户的代理不符合预定代理条件,则将所述访问请求的用户IP地址添加在用户IP地址检测名单中;或者
若用户的代理不符合预定代理条件,则将所述访问请求的用户电话号码添加在用户电话号码检测名单中。
8.一种用户身份验证装置,其特征在于,包括:
获取授权信息模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中包含有用户的授权信息,从所述访问请求中获取用户的授权信息;
获取身份标识模块,用于对所述授权信息进行验证,并从验证成功的授权信息中获取用户身份标识;
标识令牌处理模块,用于若检测出预设身份标识集合中未包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则将所述用户身份标识和所述令牌以键值的形式存储于所述预设身份标识集合中,并针对所述用户身份标识和令牌进行网络访问计数;
第一拦截模块,用于若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;还用于若检测出预设身份标识集合中包含有所述用户身份标识,且所述访问请求中包含有用于身份验证的令牌,则根据所述预设身份标识集合中的所述用户身份标识对应的预设令牌,对所述访问请求中的令牌进行验证;若所述令牌的验证失败,则对所述访问请求进行拦截处理;若所述令牌的验证成功,则针对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一放行模块,用于响应于接收到的访问请求未包含有版本信息,放行所述访问请求;和/或
第二放行模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址属于基于小程序的请求地址白名单,放行所述访问请求;和/或
第二拦截模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为小程序版本信息,且所述访问请求的请求地址不属于基于小程序的请求地址白名单,且所述访问请求中未包含有授权信息,对所述访问请求进行拦截处理,并将所述访问请求中的用户IP地址添加于用户IP地址检测名单中。
10.根据权利要求8至9中任一项所述的装置,其特征在于,所述获取身份标识模块进一步用于:
利用基于小程序的密钥对所述授权信息进行解密处理,获得解密后的授权信息;
如检测出所述解密后的授权信息符合预定格式,则确定验证成功,从所述解密后的授权信息中获取用户身份标识;
所述装置还包括:
第三拦截模块,用于若检测出所述解密后的授权信息不符合预定格式,则确定验证失败,对所述访问请求进行拦截处理。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第五拦截模块,用于若检测出所述访问请求中未包含有用于身份验证的令牌或者所述访问请求中的用户IP地址属于用户IP地址检测名单,则对所述访问请求进行拦截处理;和/或
第六拦截模块,用于如检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址属于用户IP地址白名单或者用户IP段白名单,则对所述用户身份标识和令牌进行网络访问计数,若检测出所述身份标识和令牌对应的当前网络访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理;和/或
第七拦截模块,用于若检测出所述访问请求中未包含有用于身份验证的令牌,且所述访问请求中的用户IP地址不属于用户IP地址白名单或者用户IP段白名单,则将所述用户IP地址添加在用户IP地址检测名单,并对所述访问请求进行拦截处理。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第八拦截模块,用于响应于接收到的访问请求包含有版本信息,且所述版本信息为基于非小程序的版本信息,判断所述访问请求当前是否不属于被拦截对象,若所述访问请求当前不属于被拦截对象,则获取所述访问请求的访问地址;
若所述访问地址属于预设备案地址或者预设保护地址,则针对所述访问请求的用户进行备案地址访问计数或者保护地址访问计数,若检测出所述用户的当前备案地址访问计数值或者当前保护地址访问计数值不满足预设计数条件,则对所述访问请求进行拦截处理。
13.根据权利要求12所述的装置,其特征在于,所述第八拦截模块判断所述访问请求当前是否不属于被拦截对象,包括:
若所述第八拦截模块检测出所述访问请求的用户IP地址不属于用户IP地址黑名单、用户IP地址投毒名单和用户IP地址检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象;或者
若所述第八拦截模块检测出所述访问请求的用户电话号码不属于用户电话号码黑名单、用户电话号码投毒名单和用户电话号码检测名单,且用户的代理符合预定代理条件,则确定所述访问请求当前不属于被拦截对象。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-7任一所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010274162.XA CN111478910B (zh) | 2020-04-09 | 2020-04-09 | 用户身份验证方法和装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010274162.XA CN111478910B (zh) | 2020-04-09 | 2020-04-09 | 用户身份验证方法和装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111478910A CN111478910A (zh) | 2020-07-31 |
CN111478910B true CN111478910B (zh) | 2022-06-17 |
Family
ID=71751388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010274162.XA Active CN111478910B (zh) | 2020-04-09 | 2020-04-09 | 用户身份验证方法和装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111478910B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751878B (zh) * | 2020-12-30 | 2023-03-24 | 北京天融信网络安全技术有限公司 | 一种页面请求处理方法及装置 |
CN112948835B (zh) * | 2021-03-26 | 2022-07-19 | 支付宝(杭州)信息技术有限公司 | 小程序风险检测方法和装置 |
CN113449167A (zh) * | 2021-06-25 | 2021-09-28 | 北京悟空出行科技有限公司 | 数据采集异常检测方法、装置、电子设备和可读存储介质 |
CN113992414B (zh) * | 2021-10-28 | 2024-06-14 | 马上消费金融股份有限公司 | 数据的访问方法、装置及设备 |
CN114301635B (zh) * | 2021-12-10 | 2024-02-23 | 中国联合网络通信集团有限公司 | 访问控制方法、装置和服务器 |
CN114363088B (zh) * | 2022-02-18 | 2024-04-16 | 京东科技信息技术有限公司 | 用于请求数据的方法和装置 |
CN114676421B (zh) * | 2022-03-18 | 2022-12-27 | 山东鼎夏智能科技有限公司 | 一种对安全软件进行保护的方法和装置 |
CN114884671B (zh) * | 2022-04-21 | 2024-04-26 | 微位(深圳)网络科技有限公司 | 服务器的入侵防御方法、装置、设备及介质 |
CN116170238B (zh) * | 2023-04-26 | 2023-07-07 | 北京中宏立达科技发展有限公司 | 一种基于服务身份标识密钥的认证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108200089A (zh) * | 2018-02-07 | 2018-06-22 | 腾讯云计算(北京)有限责任公司 | 信息安全的实现方法、装置、***以及存储介质 |
CN109962911A (zh) * | 2019-02-19 | 2019-07-02 | 深圳点猫科技有限公司 | 一种通过小程序获取用户信息的方法及电子设备 |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
CN110400145A (zh) * | 2018-07-13 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数字身份申请***及方法、身份认证***及方法 |
CN110958119A (zh) * | 2019-10-25 | 2020-04-03 | 泰康保险集团股份有限公司 | 身份验证方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9888007B2 (en) * | 2016-05-13 | 2018-02-06 | Idm Global, Inc. | Systems and methods to authenticate users and/or control access made by users on a computer network using identity services |
-
2020
- 2020-04-09 CN CN202010274162.XA patent/CN111478910B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108200089A (zh) * | 2018-02-07 | 2018-06-22 | 腾讯云计算(北京)有限责任公司 | 信息安全的实现方法、装置、***以及存储介质 |
CN110400145A (zh) * | 2018-07-13 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数字身份申请***及方法、身份认证***及方法 |
CN109962911A (zh) * | 2019-02-19 | 2019-07-02 | 深圳点猫科技有限公司 | 一种通过小程序获取用户信息的方法及电子设备 |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
CN110958119A (zh) * | 2019-10-25 | 2020-04-03 | 泰康保险集团股份有限公司 | 身份验证方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111478910A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111478910B (zh) | 用户身份验证方法和装置、电子设备以及存储介质 | |
US11271955B2 (en) | Platform and method for retroactive reclassification employing a cybersecurity-based global data store | |
US11388193B2 (en) | Systems and methods for detecting online fraud | |
CN108810006B (zh) | 资源访问方法、装置、设备及存储介质 | |
US20190207966A1 (en) | Platform and Method for Enhanced Cyber-Attack Detection and Response Employing a Global Data Store | |
CN108199852B (zh) | 一种鉴权方法、鉴权***和计算机可读存储介质 | |
Grover | Android forensics: Automated data collection and reporting from a mobile device | |
US11770385B2 (en) | Systems and methods for malicious client detection through property analysis | |
CN112738100B (zh) | 数据访问的鉴权方法、装置、鉴权设备和鉴权*** | |
US8813200B2 (en) | Online password management | |
US9432357B2 (en) | Computer network security management system and method | |
Chorghe et al. | A survey on anti-phishing techniques in mobile phones | |
CN116484338A (zh) | 数据库访问方法及装置 | |
CN113496024B (zh) | 一种Web页面的登录方法、装置、存储介质及电子设备 | |
RU103643U1 (ru) | Система противодействия фишинг атакам | |
JP5743822B2 (ja) | 情報漏洩防止装置及び制限情報生成装置 | |
CN112528286B (zh) | 终端设备安全检测方法、关联设备以及计算机程序产品 | |
US7661111B2 (en) | Method for assuring event record integrity | |
KR20130124885A (ko) | 인증되지 않는 액세스를 방지하기 위해 클라우드 데이터에 보안을 제공하는 전자 장치 및 이의 보안 제공 방법 | |
RU2781477C2 (ru) | Способ и система для обнаружения мошеннического доступа к веб-ресурсу | |
CN117608707A (zh) | 接口调用方法、装置、设备及存储介质 | |
CN117040821A (zh) | 登录态生成和验证的方法、电子设备及介质 | |
CN116827640A (zh) | 数据请求方法及装置、电子设备和计算机可读存储介质 | |
CN118200008A (zh) | 基于防火墙的安全通信方法、装置、设备、介质和产品 | |
CN117640159A (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 |