CN115150164B - 请求验证方法、装置、电子设备和计算机可读存储介质 - Google Patents
请求验证方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115150164B CN115150164B CN202210767554.9A CN202210767554A CN115150164B CN 115150164 B CN115150164 B CN 115150164B CN 202210767554 A CN202210767554 A CN 202210767554A CN 115150164 B CN115150164 B CN 115150164B
- Authority
- CN
- China
- Prior art keywords
- key information
- access request
- key
- hash value
- value
- 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
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
-
- 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
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种请求验证方法、装置、电子设备和计算机可读存储介质,其中该请求验证方法包括:接收客户端发送的第一访问请求,该第一访问请求携带第一关键信息,该第一关键信息用于标识该第一访问请求;将该第一关键信息与关键信息库进行对比,以确定出该关键信息库是否记录有该第一关键信息;若该关键信息库中存在与该第一关键信息相同的关键信息,则表征该第一访问请求为重复发起的访问请求,则拒绝该第一访问请求。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种请求验证方法、装置、电子设备和计算机可读存储介质。
背景技术
在浏览器中或者网络中获取API(ApplicationProgrammingInterface,应用程序编程接口)接口的信息,在不需要破译内容的情况下通过回放报文的方式,可能达到攻击网站的目录。例如,持续的发起获取资源的请求,导致服务端无法正常提供服务,以达到攻击服务端的目的。
发明内容
本申请的目的在于提供一种请求验证方法、装置、电子设备和计算机可读存储介质,以改善API接口的信息被获取后可能导致的站点被攻击的问题。
第一方面,本发明提供一种请求验证方法,包括:接收客户端发送的第一访问请求,所述第一访问请求携带第一关键信息,所述第一关键信息用于标识所述第一访问请求;将所述第一关键信息与关键信息库进行对比,以确定出所述关键信息库是否记录有所述第一关键信息;若所述关键信息库中存在与所述第一关键信息相同的关键信息,拒绝所述第一访问请求,其中,所述关键信息库中存在与所述第一关键信息相同的关键信息表征所述第一访问请求为重复发起的访问请求。
在可选的实施方式中,所述第一访问请求还携带第一哈希值;所述方法还包括:若所述关键信息库中不存在与所述第一关键信息相同的关键信息,对所述第一关键信息进行哈希处理,以得到第二哈希值;将所述第二哈希值与所述第一哈希值进行对比,以确定所述第一哈希值与所述第二哈希值是否为相同的值;若所述第一哈希值与所述第二哈希值不相同,拒绝所述第一访问请求,其中,所述第一哈希值与所述第二哈希值不相同表示所述第一哈希值或所述第一关键信息存在异常。
通过上述实现方式,还进一步地对第一访问请求中的第一哈希值进行验证,可以防止第一关键信息或第一哈希值被篡改,可以提高第一访问请求验证的准确性。
在可选的实施方式中,所述对所述第一关键信息进行哈希处理,以得到第二哈希值,包括:将所述第一关键信息进行变形处理,以得到第一变形关键值;将所述第一变形关键值进行哈希计算,以得到第二哈希值。
通过上述实现方式,可以先将第一关键信息进行变形,然后再进行哈希计算,可以使用确定出的第二哈希值更难以被仿造,可以提高访问请求的可靠性和安全性。
在可选的实施方式中,所述将所述第一关键信息进行变形处理,以得到第一变形关键值,包括:获取所述第一关键信息中第一指定位次的第一目标字符串;根据所述第一目标字符串,对所述第一关键信息进行更新,以得到第一变形关键值。
在可选的实施方式中,所述根据所述第一目标字符串,对所述第一关键信息进行更新,以得到第一变形关键值,包括:将所述第一关键信息中的所述第一目标字符串删除,以得到第一变形关键值;或者,将所述第一目标字符串拼接在所述第一关键信息的第二指定位次处,以得到第一变形关键值。
在可选的实施方式中,所述方法还包括:若对所述第一访问请求验证通过,则将所述第一关键信息更新至所述关键信息库中,所述验证通过至少包括关键信息库中不包括所述第一关键信息。
第二方面,本发明提供一种请求验证方法,包括:生成第二关键信息;根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,所述第二关键信息用于标识所述第二访问请求;向服务端发送所述第二访问请求,以供所述服务端根据所述第二访问请求的第二关键信息对所述第二访问请求进行验证。
在可选的实施方式中,所述根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,包括:对所述第二关键信息进行哈希处理,以得到第三哈希值;将所述第三哈希值与所述第二关键信息写入待发访问请求中,以得到第二访问请求。
第三方面,本发明提供一种请求验证装置,包括:
请求接收模块,用于接收客户端发送的第一访问请求,所述第一访问请求携带第一关键信息,所述第一关键信息用于标识所述访问请求;
库对比模块,用于将所述第一关键信息与关键信息库进行对比,以确定出所述关键信息库是否记录有所述第一关键信息;
请求拒绝模块,用于若所述关键信息库中存在与所述第一关键信息相同的关键信息,拒绝所述第一访问请求,其中,所述关键信息库中存在与所述第一关键信息相同的关键信息表征所述第一访问请求为重复发起的访问请求。
第四方面,本发明提供一种请求验证方装置,包括:
信息生成模块,用于生成第二关键信息;
请求更新模块,用于根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,所述第二关键信息用于标识所述第二访问请求;
请求发送模块,用于向服务端发送所述第二访问请求,以供所述服务端根据所述第二访问请求的第二关键信息对所述第二访问请求进行验证。
第五方面,本发明提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如前述实施方式任一所述的方法的步骤。
第六方面,本发明提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前述实施方式任一所述的方法的步骤。
本申请实施例的至少包括以下有益效果:通过对接收到的第一访问请求的第一关键信息的识别,可以基于该第一关键信息确定出该第一访问请求是不是首次接收到的,如果该第一访问请求重复发起的访问请求,则拒绝该第一访问请求的访问,可以避免重复地响应同一访问请求,也就能够避免持续性接收到相同访问请求导致站点无法正常使用,从而降低通过回放报文的方式攻击服务端,提高服务端的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的请求验证方法的运行环境示意图;
图2为本申请实施例提供的电子设备的方框示意图;
图3为本申请实施例提供的请求验证方法的流程图;
图4为本申请实施例提供的请求验证方法的另一流程图;
图5为本申请实施例提供的请求验证方法的步骤341的可选流程图;
图6为本申请实施例提供的请求验证装置的功能模块示意图;
图7为本申请实施例提供的另一请求验证方法的流程图;
图8为本申请实施例提供的另一请求验证装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了提高网络访问的安全性,通常会在http的基础上通过传输加密和身份认证保证了传输过程的安全性。网站的https请求虽然通过很多方法对内容进行了加密,但是仍然可以在浏览器中或者网络中获取API接口的信息,在不需要破译报文内容的情况下通过回放报文的方式,达到攻击网站的目录。例如,一个请求是用于添加信息,在不需要知道该请求的报文内容的情况下,回放该请求的报文,有可能导致数据库添加大量重复无用的垃圾数据;或者一个请求时用于获取资源,通过回放该请求的报文可以持续的发起获取资源的请求,导致网站无法正常使用。
经发明人了解到,为了提高API接口的安全性,通常是:接入方向带有API接口的系统申请应用;接入方获得应用的应用码AppID和应用密钥AppSercet后开始向系统接口组织请求;系统根据业务接口请求会把要返回的数据信息用应用码AppID对应的接口返回内容密钥DesSecret进行Des加密后返回给接入方;接入方获得请求接口的返回内容后,用系统分配的接口返回内容密钥DesSecret进行Des解密,得到返回内容。虽然上述方法对传输的数据进行了加密,但是如果在非法用户获取报文后,在不破解报文的内容的情况下,也可以可重复回放该报文,已达到攻击的目的。
基于上述现状,本申请提出一种请求验证方法,web站点或API接口中,对获得的请求做有效性校验,从而达到防止回放请求,以web站点或API接口被攻击,提高web站点或API接口的安全性。
为便于对本实施例进行理解,首先对执行本申请实施例所公开的一种请求验证方法的运行环境进行介绍。
如图1所示,是本申请实施例提供的请求验证方法的运行环境示意图。
该请求验证方法的运行环境包括服务端110和一个或多个客户端120,该服务端110可以运行在一个或多个服务器,该服务器可以是网络服务器、数据库服务器等。该客户端120可以运行在客户终端上,该客户终端可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
该客户端120可以向服务端110发起各类请求,例如,资源存储请求、资源获取请求等。该服务端110可以基于客户端120发起的请求,响应该客户端120的请求。
如图2所示,是电子设备的方框示意图。电子设备200可以包括存储器211、处理器213。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对电子设备200的结构造成限定。例如,电子设备200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。上述的服务器或者客户终端可以包括图2所示的电子设备200所包含的结构。
上述的存储器211、处理器213之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器213用于执行存储器中存储的可执行模块。
其中,存储器211可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器211用于存储程序,所述处理器213在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备200所执行的方法可以应用于处理器213中,或者由处理器213实现。
上述的处理器213可能是一种集成电路芯片,具有信号的处理能力。上述的处理器213可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本实施例中的电子设备200可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述请求验证方法的实现过程。
请参阅图3,是本申请实施例提供的请求验证方法的流程图。下面将对图3所示的具体流程进行详细阐述。
步骤310,接收客户端发送的第一访问请求。
第一访问请求携带第一关键信息,该第一关键信息用于标识该第一访问请求。
该第一关键信息可以是一个唯一的关键信息。客户端每次发送一个访问请求时,客户端可以生成一个唯一的关键信息,该唯一的关键信息用于唯一标识一次访问请求。
示例性地,该第一关键信息可以是客户端随机生成的字符串。
步骤330,将该第一关键信息与关键信息库进行对比,以确定出该关键信息库是否记录有该第一关键信息。
关键信息库中记录有历史访问请求的关键信息。
其中,该关键信息库中可以记录有每次访问请求的关键信息。可选地,该关键信息库可以是存储所有的访问请求的关键信息。可选地,该关键信息库也可以仅存储指定时间段的访问请求的关键信息。示例性地,该关键信息库中可以仅存储指定时间之前至当前时间的访问请求的关键信息。例如,该指定时间之前可以是一周前、一个月前、三天前等。示例性地,该关键信息库中可以存储指定容量的访问请求的关键信息,例如,该指定容量可以是1G、2G等。
若该关键信息库中存在与该第一关键信息相同的关键信息,则执行步骤350。
步骤350,拒绝该第一访问请求。
其中,该关键信息库中存在与该第一关键信息相同的关键信息表征该第一访问请求为重复发起的访问请求。
可选地,在拒绝该第一访问请求后,可以向客户端发送错误提示信息。示例性地,该错误提示信息可以是“错误码503”。该错误提示信息也可以是提示文字,例如,“该访问异常”等。
在上述步骤中,通过对接收到的第一访问请求的第一关键信息的识别,可以基于该第一关键信息确定出该第一访问请求是不是首次接收到的,如果该第一访问请求重复发起的访问请求,则拒绝该第一访问请求的访问,可以避免重复地响应同一访问请求,也就能够避免持续性接收到相同访问请求导致站点无法正常使用,从而降低通过回放报文的方式攻击服务端,提高服务端的安全性。
为了提高访问请求的可靠性,还可以从多个维度验证该访问请求的可靠性。基于此需求,该第一访问请求还可以携带第一哈希值。其中,如果该第一访问请求没有被篡改的基础上,该第一哈希值为根据第一关键信息得到的哈希值,如果该第一访问请求被恶意篡改过,则可能导致该第一哈希值为与第一关键信息无关的一个值。
若该关键信息库中不存在与该第一关键信息相同的关键信息,如图4所示,在步骤350之前,该请求验证方法还可以包括:步骤341和步骤342。
步骤341,对该第一关键信息进行哈希处理,以得到第二哈希值。
该第一访问请求确定之前可以使用指定规则,根据该第一关键信息生成第一哈希值。
该指定规则可以是对关键信息直接进行哈希计算,该指定规则也可以是先对关键信息进行一些处理,然后再对处理后得到的信息进行哈希计算。
其中,哈希计算所使用的算法可以是信息摘要算法(Message-Digest Algorithm,简称MD)、安全散列算法(Secure Hash Algorithm,缩写为SHA)等算法,该信息摘要算法可以是MD4、MD5等算法。
可选地,可以使用指定规则,根据该第一关键信息生成第二哈希值。例如,可以直接对该第一关键信息进行哈希计算,以得到该第二哈希值。
其中,如果第一访问请求中的第一关键信息与第一哈希值为正确且没有被修改过,则该第一哈希值与第二哈希值相同。
步骤342,将该第二哈希值与该第一哈希值进行对比,以确定该第一哈希值与该第二哈希值是否为相同的值。
若该第一哈希值与该第二哈希值不相同,执行步骤350,拒绝该第一访问请求。
其中,该第一哈希值与该第二哈希值不相同表示该第一哈希值或该第一关键信息存在异常。
若该第一哈希值与该第二哈希值相同,则可以执行步骤360,响应该第一访问请求。
本实施例中,若对该第一访问请求是单一验证,则可以在得到关键信息库中不包括该第一关键信息后,则确定第一访问请求验证通过,并将该第一关键信息更新至该关键信息库中。
本实施例中,若对第一访问请求是双重验证,在可以在得到关键信息库中不包括该第一关键信息,且第二哈希值与第一哈希值相同的情况下,才确定第一访问请求验证通过,并将该第一关键信息更新至该关键信息库中。
其中,该关键信息库可以通过远程字典服务(Remote Dictionary Server,简称Redis)实现。
通过双重对比,以实现对访问请求的双重,可以使验证结果更加准确,避免重复响应无用的访问请求,更好地抵制对服务端的攻击。
在一种实施方式中,如图5所示,步骤341可以包括:步骤3411和步骤3412。
步骤3411,将第一关键信息进行变形处理,以得到第一变形关键值。
变形处理可以是将该第一关键信息调整成与该第一关键信息关联的信息。
可选地,该第一关键信息可以是一字符串,该变形处理可以是从该字符串中抽取部分字符。例如,可以抽取字符串中奇数位的字符,构成第一变形关键值。再例如,可以抽取字符串中偶数位的字符,构成第一变形关键值。再例如,可以抽取字符串中前指定位字符,构成第一变形关键值。例如,可以抽取字符串中的前二十位字符,将该前二十位作为第一变形关键值。再例如,可以抽取字符串中后指定位字符,构成第一变形关键值。例如,可以抽取字符串中的后二十位字符,将该后二十位作为第一变形关键值。
可选地,该第一关键信息可以是一字符串,该变形处理也可以是使用指定字符串与该第一关键信息进行拼接,以得到该第一变形关键值。该指定字符串可以是预先设定的字符串,该指定字符串被存储在服务端和客户端,以用于生成哈希值。
可选地,该第一关键信息可以是一字符串,该变形处理也可以是使用该第一关键信息中的部分字符对该第一关键信息进行变形处理,该步骤3411可以包括:获取该第一关键信息中第一指定位次的第一目标字符串;根据该第一目标字符串,对该第一关键信息进行更新,以得到第一变形关键值。
示例性地,该第一指定位次可以是该第一关键信息中的第M位次至第N位次。其中,该M、N为正整数,且该N小于该第一关键信息中所包含的字符数量。
该第一关键信息可以是一串随机字符串。例如,该随机字符串可以是:AC2607676B9018EC5F7BA23253D999B97C7B51216180A31F56C83788DE3B9773。
该M的取值为6,N的取值为8时,上述字符串的第一目标字符串可以为767。
可选地,可以将该第一关键信息中的该第一目标字符串删除,以得到第一变形关键值。
以上述实例为例,将字符串767删除,得到的第一变形关键值可以为:AC2606B9018EC5F7BA23253D999B97C7B51216180A31F56C83788DE3B9773。
可选地,可以将该第一目标字符串拼接在该第一关键信息的第二指定位次处,以得到第一变形关键值。
该第二指定位次可以是该首位,也可以是末位等。
以上述实例为例,将字符串767删除,得到的第一变形关键值可以为:AC2607676B9018EC5F7BA23253D999B97C7B51216180A31F56C83788DE3B9773767。
以上述实例为例,将字符串767删除,得到的第一变形关键值可以为:767AC2607676B9018EC5F7BA23253D999B97C7B51216180A31F56C83788DE3B9773。
步骤3412,将该第一变形关键值进行哈希计算,以得到第二哈希值。
示例性地,可以使用哈希算法对该第一变形关键值进行计算,以得到第二哈希值。
通过上述步骤,可以实现对访问请求的可靠性,从而可以提高服务端的安全性。由于通过上述方法可以使异常访问请求访问服务端的难度增加,从而也增加爬虫分析站点API接口的难度,降低被爬的风险。进一步地,针对收到过的请求进行记录,可以有效的保护服务端的资源不被恶意消耗;能有效防止在浏览器中恶意的分析和篡改请求后,再次向服务端提交请求。
基于同一申请构思,本申请实施例中还提供了与请求验证方法对应的请求验证装置,由于本申请实施例中的装置解决问题的原理与前述的请求验证方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图6,是本申请实施例提供的请求验证装置的功能模块示意图。本实施例中的请求验证装置中的各个模块用于执行上述方法实施例中的各个步骤。请求验证装置包括:请求接收模块410、库对比模块420以及请求拒绝模块430;其中各模块的内容如下所示:
请求接收模块410,用于接收客户端发送的第一访问请求,该第一访问请求携带第一关键信息,该第一关键信息用于标识该访问请求;
库对比模块420,用于将该第一关键信息与关键信息库进行对比,以确定出该关键信息库是否记录有该第一关键信息,该关键信息库中记录有历史访问请求的关键信息;
请求拒绝模块430,用于若该关键信息库中存在与该第一关键信息相同的关键信息,拒绝该第一访问请求,其中,该关键信息库中存在与该第一关键信息相同的关键信息表征该第一访问请求为重复发起的访问请求。
一种可能的实施方式中,该第一访问请求还携带第一哈希值;请求验证装置还可以包括:
哈希处理模块,用于若该关键信息库中不存在与该第一关键信息相同的关键信息,对该第一关键信息进行哈希处理,以得到第二哈希值;
哈希对比模块,用于将该第二哈希值与该第一哈希值进行对比,以确定该第一哈希值与该第二哈希值是否为相同的值;
请求拒绝模块430,还用于若该第一哈希值与该第二哈希值不相同,拒绝该第一访问请求,其中,该第一哈希值与该第二哈希值不相同表示该第一哈希值或该第一关键信息存在异常。
一种可能的实施方式中,哈希处理模块,包括变形单元和计算单元:
变形单元,用于将该第一关键信息进行变形处理,以得到第一变形关键值;
计算单元,用于将该第一变形关键值进行哈希计算,以得到第二哈希值。
一种可能的实施方式中,变形单元,用于获取该第一关键信息中第一指定位次的第一目标字符串;根据该第一目标字符串,对该第一关键信息进行更新,以得到第一变形关键值。
一种可能的实施方式中,变形单元,用于将该第一关键信息中的该第一目标字符串删除,以得到第一变形关键值;或者,将该第一目标字符串拼接在该第一关键信息的第二指定位次处,以得到第一变形关键值。
一种可能的实施方式中,请求验证装置还可以包括:库更新模块,用于若对该第一访问请求验证通过,则将该第一关键信息更新至该关键信息库中,该验证通过至少包括关键信息库中不包括该第一关键信息。
请参阅图7,是本申请实施例提供的请求验证方法的流程图。下面将对图7所示的具体流程进行详细阐述。
步骤510,生成第二关键信息。
其中,可以采用随机字符串生成方法随机生成一字符串,将该随机生成的字符串作为该第二关键信息。
步骤520,根据该第二关键信息对待发访问请求进行更新,以得到第二访问请求。
第二关键信息用于标识该第二访问请求。
步骤530,向服务端发送该第二访问请求,以供该服务端根据该第二访问请求的第二关键信息对该第二访问请求进行验证。
步骤520可以包括:对该第二关键信息进行哈希处理,以得到第三哈希值;将该第三哈希值与该第二关键信息写入待发访问请求中,以得到第二访问请求。
示例性地,可以先将该第二关键信息进行变形处理,以得到第二变形关键值;将该第二变形关键值进行哈希计算,以得到第三哈希值。
可选地,可以先获取该第二关键信息中第一指定位次的第二目标字符串;根据该第二目标字符串,对该第二关键信息进行更新,以得到第二变形关键值。
示例性地,将该第二关键信息中的该第二目标字符串删除,以得到第二变形关键值;或者,将该第二目标字符串拼接在该第二关键信息的第二指定位次处,以得到第二变形关键值。
其中,该第三哈希值的计算规则可以与第二哈希值的计算规则相同,关于第三哈希值计算的其它细节可以参阅前面计算第二哈希值的详细过程。
可选地,可以将第三哈希值与第二关键信息通过指定符号连接。例如,该指定符号可以是“-”、“+”等符号。例如,可以将第二关键信息放在指定符号前面,将第三哈希值放在指定符号后面。
示例性地,可以将该第三哈希值与第二关键信息写入待发访问请求的请求头中。
基于同一申请构思,本申请实施例中还提供了与请求验证方法对应的请求验证装置,由于本申请实施例中的装置解决问题的原理与前述的请求验证方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图8,是本申请实施例提供的请求验证装置的功能模块示意图。本实施例中的请求验证装置中的各个模块用于执行上述方法实施例中的各个步骤。请求验证装置包括:信息生成模块610、请求更新模块620以及请求发送模块630;其中各个模块的内容如下所示:
信息生成模块610,用于生成第二关键信息;
请求更新模块620,用于根据该第二关键信息对待发访问请求进行更新,以得到第二访问请求,该第二关键信息用于标识该第二访问请求;
请求发送模块630,用于向服务端发送该第二访问请求,以供该服务端根据该第二访问请求的第二关键信息对该第二访问请求进行验证。
一种可能的实施方式中,请求更新模块620,用于对该第二关键信息进行哈希处理,以得到第三哈希值;将该第三哈希值与该第二关键信息写入待发访问请求中,以得到第二访问请求。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的请求验证方法的步骤。
本申请实施例所提供的请求验证方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的请求验证方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种请求验证方法,其特征在于,包括:
接收客户端发送的第一访问请求,所述第一访问请求携带第一关键信息,所述第一关键信息用于标识所述第一访问请求;
将所述第一关键信息与关键信息库进行对比,以确定出所述关键信息库是否记录有所述第一关键信息,所述关键信息库中记录有历史访问请求的关键信息;
若所述关键信息库中存在与所述第一关键信息相同的关键信息,拒绝所述第一访问请求,其中,所述关键信息库中存在与所述第一关键信息相同的关键信息表征所述第一访问请求为重复发起的访问请求;
所述第一访问请求还携带第一哈希值;所述方法还包括:
若所述关键信息库中不存在与所述第一关键信息相同的关键信息,对所述第一关键信息进行哈希处理,以得到第二哈希值;
将所述第二哈希值与所述第一哈希值进行对比,以确定所述第一哈希值与所述第二哈希值是否为相同的值;
若所述第一哈希值与所述第二哈希值不相同,拒绝所述第一访问请求,其中,所述第一哈希值与所述第二哈希值不相同表示所述第一哈希值或所述第一关键信息存在异常;
所述对所述第一关键信息进行哈希处理,以得到第二哈希值,包括:
将所述第一关键信息进行变形处理,以得到第一变形关键值;
将所述第一变形关键值进行哈希计算,以得到第二哈希值;
所述将所述第一关键信息进行变形处理,以得到第一变形关键值,包括:
获取所述第一关键信息中第一指定位次的第一目标字符串;
根据所述第一目标字符串,对所述第一关键信息进行更新,以得到第一变形关键值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标字符串,对所述第一关键信息进行更新,以得到第一变形关键值,包括:
将所述第一关键信息中的所述第一目标字符串删除,以得到第一变形关键值;或者,
将所述第一目标字符串拼接在所述第一关键信息的第二指定位次处,以得到第一变形关键值。
3.根据权利要求1-2任意一项所述的方法,其特征在于,所述方法还包括:
若对所述第一访问请求验证通过,则将所述第一关键信息更新至所述关键信息库中,所述验证通过至少包括关键信息库中不包括所述第一关键信息。
4.一种请求验证方法,其特征在于,包括:
生成第二关键信息;
根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,所述第二关键信息用于标识所述第二访问请求;
向服务端发送所述第二访问请求,以供所述服务端根据所述第二访问请求的第二关键信息对所述第二访问请求进行验证;
所述根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,包括:对所述第二关键信息进行哈希处理,以得到第三哈希值;将所述第三哈希值与所述第二关键信息写入待发访问请求中,以得到第二访问请求;
所述对所述第二关键信息进行哈希处理,以得到第三哈希值,包括:
将所述第二关键信息进行变形处理,以得到第二变形关键值;
将所述第二变形关键值进行哈希计算,以得到第三哈希值;
所述将所述第二关键信息进行变形处理,以得到第二变形关键值,包括:
获取所述第二关键信息中第二指定位次的第二目标字符串;
根据所述第二目标字符串,对所述第二关键信息进行更新,以得到第二变形关键值。
5.一种请求验证装置,其特征在于,包括:
请求接收模块,用于接收客户端发送的第一访问请求,所述第一访问请求携带第一关键信息,所述第一关键信息用于标识所述访问请求;
库对比模块,用于将所述第一关键信息与关键信息库进行对比,以确定出所述关键信息库是否记录有所述第一关键信息,所述关键信息库中记录有历史访问请求的关键信息;
请求拒绝模块,用于若所述关键信息库中存在与所述第一关键信息相同的关键信息,拒绝所述第一访问请求,其中,所述关键信息库中存在与所述第一关键信息相同的关键信息表征所述第一访问请求为重复发起的访问请求;
所述装置还包括哈希处理模块:用于若所述关键信息库中不存在与所述第一关键信息相同的关键信息,对所述第一关键信息进行哈希处理,以得到第二哈希值;所述对所述第一关键信息进行哈希处理,以得到第二哈希值,包括:将所述第一关键信息进行变形处理,以得到第一变形关键值;将所述第一变形关键值进行哈希计算,以得到第二哈希值;所述将所述第一关键信息进行变形处理,以得到第一变形关键值,包括:获取所述第一关键信息中第一指定位次的第一目标字符串;根据所述第一目标字符串,对所述第一关键信息进行更新,以得到第一变形关键值;
哈希对比模块,用于将所述第二哈希值与第一哈希值进行对比,以确定所述第一哈希值与所述第二哈希值是否为相同的值;其中,所述第一访问请求携带所述第一哈希值;
请求拒绝模块,用于若所述第一哈希值与所述第二哈希值不相同,拒绝所述第一访问请求,其中,所述第一哈希值与所述第二哈希值不相同表示所述第一哈希值或所述第一关键信息存在异常。
6.一种请求验证方装置,其特征在于,包括:
信息生成模块,用于生成第二关键信息;
请求更新模块,用于根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,所述第二关键信息用于标识所述第二访问请求;所述根据所述第二关键信息对待发访问请求进行更新,以得到第二访问请求,包括:对所述第二关键信息进行哈希处理,以得到第三哈希值;将所述第三哈希值与所述第二关键信息写入待发访问请求中,以得到第二访问请求;所述对所述第二关键信息进行哈希处理,以得到第三哈希值,包括:将所述第二关键信息进行变形处理,以得到第二变形关键值;将所述第二变形关键值进行哈希计算,以得到第三哈希值;所述将所述第二关键信息进行变形处理,以得到第二变形关键值,包括:获取所述第二关键信息中第二指定位次的第二目标字符串;根据所述第二目标字符串,对所述第二关键信息进行更新,以得到第二变形关键值;
请求发送模块,用于向服务端发送所述第二访问请求,以供所述服务端根据所述第二访问请求的第二关键信息对所述第二访问请求进行验证。
7.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至4任一所述的方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210767554.9A CN115150164B (zh) | 2022-06-30 | 2022-06-30 | 请求验证方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210767554.9A CN115150164B (zh) | 2022-06-30 | 2022-06-30 | 请求验证方法、装置、电子设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150164A CN115150164A (zh) | 2022-10-04 |
CN115150164B true CN115150164B (zh) | 2023-09-26 |
Family
ID=83409421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210767554.9A Active CN115150164B (zh) | 2022-06-30 | 2022-06-30 | 请求验证方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150164B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006352800A (ja) * | 2005-06-20 | 2006-12-28 | Nippon Telegr & Teleph Corp <Ntt> | 秘密情報更新方法 |
JP2010287158A (ja) * | 2009-06-15 | 2010-12-24 | Konica Minolta Holdings Inc | 情報処理装置、方法およびプログラム |
WO2017124933A1 (zh) * | 2016-01-18 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置和系统 |
CN109450649A (zh) * | 2018-12-28 | 2019-03-08 | 北京金山安全软件有限公司 | 一种基于应用程序接口的网关验证方法、装置及电子设备 |
CN110958249A (zh) * | 2019-12-03 | 2020-04-03 | 望海康信(北京)科技股份公司 | 信息处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-30 CN CN202210767554.9A patent/CN115150164B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006352800A (ja) * | 2005-06-20 | 2006-12-28 | Nippon Telegr & Teleph Corp <Ntt> | 秘密情報更新方法 |
JP2010287158A (ja) * | 2009-06-15 | 2010-12-24 | Konica Minolta Holdings Inc | 情報処理装置、方法およびプログラム |
WO2017124933A1 (zh) * | 2016-01-18 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置和系统 |
CN109450649A (zh) * | 2018-12-28 | 2019-03-08 | 北京金山安全软件有限公司 | 一种基于应用程序接口的网关验证方法、装置及电子设备 |
CN110958249A (zh) * | 2019-12-03 | 2020-04-03 | 望海康信(北京)科技股份公司 | 信息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115150164A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10958436B2 (en) | Methods contract generator and validation server for access control of contract data in a distributed system with distributed consensus | |
US10747721B2 (en) | File management/search system and file management/search method based on block chain | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN110096903B (zh) | 基于区块链的资产验证方法及区块链网络系统 | |
CN112214519B (zh) | 一种数据查询方法、装置、设备及可读介质 | |
CN111901124B (zh) | 一种通信安全防护方法、装置及电子设备 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN115514492A (zh) | Bios固件验证方法、装置、服务器、存储介质和程序产品 | |
CN109150898B (zh) | 用于处理信息的方法和装置 | |
CN114615031A (zh) | 文件存储方法、装置、电子设备及存储介质 | |
CN115150164B (zh) | 请求验证方法、装置、电子设备和计算机可读存储介质 | |
JP2002135247A (ja) | デジタル情報保管方法 | |
CN116579026A (zh) | 一种云数据完整性审计方法、装置、设备及存储介质 | |
US20200304308A1 (en) | Method for providing a proof-of-retrievability | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
CN114938281A (zh) | 一种安全设备的实现方法及安全设备 | |
CN111698227B (zh) | 信息同步管理方法、装置、计算机系统及可读存储介质 | |
CN115118433A (zh) | 客户授权方法及装置、隐私保护集合交集计算方法及装置 | |
TWI569166B (zh) | 資料驗證方法 | |
CN114567476B (zh) | 一种数据安全防护方法、装置、电子设备及介质 | |
CN112737923B (zh) | 电子邮件的处理方法、电子邮件的处理系统 | |
CN118133271B (zh) | 一种防止游戏代码泄露变成私服的防护方法 | |
CN117910023B (zh) | 基于大数据的计算机信息安全处理方法及系统 | |
CN115544170B (zh) | 基于区块链的数据托管方法和装置、电子设备、介质 | |
CN110598374B (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 |