一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种防止恶意篡改页面请求参数的方法和系统与流程

2022-07-17 00:12:38 来源:中国专利 TAG:


1.本发明涉及计算机网络安全技术领域,特别涉及一种防止恶意篡改页面请求参数的方法和系统。


背景技术:

2.随着互联网技术的高速发展和黑客水平的提高,各种互联网中的安全漏洞也更容易被发掘利用,黑客一旦发现这些漏洞可以轻松的实现对一些系统的恶意攻击,造成公司数据或客户信息等重要数据资产的泄露。比如页面请求url(uniform resource locator,即统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示)中的参数,黑客可以修改成一段恶意的sql 语句,当后台拿着参数去执行的时候就会造成sql注入,造成不可想象的后果。
3.目前,针对黑客这种修改url参数的恶意攻击,大多是在后台逐个校验参数值是否符合定义好的取值范围,或者是否具有某些特征,有的是直接在前端把参数做一下简单的加密传输,然后后端再解密校验。例如公告号为cn102938041b的中国专利提出一种页面篡改的综合检测方法,即对页面属性匹配、页面元素匹配、页面变化率和页面内容进行检测。
4.然而,现有技术就存在着种种弊端。首先,对于后台逐个校验参数的做法,恶意攻击者也可以模仿参数特征或者特定取值样式而攻击系统,导致系统瘫痪不可提供服务,而且逐个参数校验对于参数很多的请求时效也比较低。其次,直接在前端把参数加密的话对于研发人员定位问题的话不方便,研发人员调试接口时在前端不能直接查看请求参数的确定值,被动增加了解决问题时间和效率。


技术实现要素:

5.鉴于现有技术中的上述缺陷或不足,本发明提供了一种防止恶意篡改页面请求参数的方法和系统,能够解决以下技术问题:(1)直接在前端把请求参数加密之后,研发人员定位问题变得比较繁琐;(3)简单加密方式可能会被黑客解密然后篡改请求参数;(2)若对请求参数不加密,黑客直接篡改请求参数攻击系统获取敏感数据或使系统崩溃。
6.本发明的一个方面,提供了一种防止恶意篡改页面请求参数的方法,包括:前台设备获取第一页面请求中的原始请求参数,对该原始请求参数进行加密,将原始请求参数加密后的第一加密值添加至第一页面请求,获得含有第一加密值和原始请求参数的第二页面请求;向服务器发送该第二页面请求;响应于前台设备发送的第二页面请求,服务器采用与获取第一加密值相同的加密方法对接收到的当前页面请求中的当前请求参数进行加密,以获得第二加密值;比较第一加密值和第二加密值,若第一加密值和第二加密值不同,则向前台设备返回请求失败的信息。
7.进一步的,上述前台设备获取第一页面请求中的原始请求参数,对该原始请求参数进行加密,将原始请求参数加密后的第一加密值添加至第一页面请求的步骤,具体包括:将获取到的原始请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第一哈希值;在第一页面请求中增加一个请求头,将该第一哈希值添加至该请求头中。
8.进一步的,上述服务器采用与获取第一加密值相同的加密方法对接收到的当前页面请求中的当前请求参数进行加密,以获得第二加密值,比较第一加密值和第二加密值,若第一加密值和第二加密值不同,则向前台设备返回请求失败的信息的步骤,具体包括:对服务器接收到的当前页面请求中的当前请求参数进行url解码;将url解码后的当前请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第二哈希值;比较第一哈希值和第二哈希值,若第一哈希值和第二哈希值不同,则向前台设备返回请求失败的信息。
9.进一步的,若第一加密值和第二加密值相同,则服务器进一步校验当前请求参数的长度,包括:读取配置文件获取不需要校验参数长度的url,若当前页面请求的url未匹配到该不需要校验参数长度的url,则判断当前请求参数中各元素的长度是否超过配置文件中预设的长度值,若超过则向前台设备返回请求失败的信息。
10.进一步的,若当前页面请求的url匹配到了该不需要校验参数长度的url,或者,若当前请求参数中各元素的长度未超过配置文件中预设的长度值,则进行当前请求参数的特殊字符校验步骤,包括:若服务器接收到的当前页面请求中的当前请求参数未与配置文件中预设的正则表达式匹配,则向前台设备返回请求失败的信息,否则向前台设备返回所请求的页面文件。
11.本发明的另一方面,提供了一种防止恶意篡改页面请求参数的系统,包括:前台设备,被配置为获取第一页面请求中的原始请求参数,对该原始请求参数进行加密,将原始请求参数加密后的第一加密值添加至第一页面请求,获得含有第一加密值和原始请求参数的第二页面请求;向服务器发送第二页面请求;服务器,被配置为响应于前台设备发送的第二页面请求,采用与获取第一加密值相同的加密方法对接收到的当前页面请求中的当前请求参数进行加密,以获得第二加密值;比较第一加密值和第二加密值,若第一加密值和第二加密值不同,则向前台设备返回请求失败的信息。
12.进一步的,上述前台设备被进一步配置为:将获取到的原始请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第一哈希值;在第一页面请求中增加一个请求头,将该第一哈希值添加至该请求头中。
13.进一步的,上述服务器被进一步配置为:对接收到的当前页面请求中的当前请求参数进行url解码;将url解码后的当前请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第二哈希值;比较第一哈希值和第二哈希值,若第一哈希值和第二哈希值不同,则向前台设备返回请求失败的信息。
14.进一步的,上述服务器被进一步配置为:若第一加密值和第二加密值相同,则读取配置文件获取不需要校验参数长度的url,若当前页面请求的url未匹配到该不需要校验参数长度的url,则判断当前请求参数中各元素的长度是否超过配置文件中预设的长度值,若超过则向前台设备返回请求失败的信息。
15.进一步的,上述服务器被进一步配置为:若当前页面请求的url匹配到了该不需要校验参数长度的url,或者,若当前请求参数中各元素的长度未超过配置文件中预设的长度值,则进行当前请求参数的特殊字符校验,包括:若服务器接收到的当前页面请求中的当前请求参数未与配置文件中预设的正则表达式匹配,则向前台设备返回请求失败的信息,否则向前台设备返回所请求的页面文件。
16.本发明提供的防止恶意篡改页面请求参数的方法和系统,具有如下有益效果:(1)服务器(后台设备)通过对请求参数的多重校验,可以更全面的预防参数被恶意篡改;(2)前台设备传递请求参数时,既有原始参数又有加密之后的参数,一方面能够使研发人员定位问题时可以直观查看参数,另一方面有利于服务器(后台设备)对参数整体的校验,有效防止参数篡改;(3)作为校验参数的标识是经过多重加密的,可以有效防止黑客解密篡改参数;(4)服务器(后台设备)的正则表达式校验参数,大大扩展了校验的灵活性和覆盖面;(5)服务器(后台设备)进行参数长度校验时的url也是可以配置的,给一些特殊情况下的url请求提供了更好的适应性。
附图说明
17.通过阅读参照以下附图对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:图1是本技术一个实施例提供的防止恶意篡改页面请求参数的方法的数据结构图;图2是本技术一个实施例提供的防止恶意篡改页面请求参数的方法的流程图;图3是本技术一个实施例提供的防止恶意篡改页面请求参数的系统的结构示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
20.应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述获取模块,但这些获取模块不应限于这些术语。这些术语仅用来将获取模块彼此区分开。
21.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似的,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
22.需要注意的是,本发明实施例所描述的“上”“下”“左”“右”等方位词是以附图所示的角度来进行描述的,不应理解为对本发明实施例的限定。此外在上下文中,还需要理解的是,当提到一个元件被形成在另一个元件“上”或“下”时,其不仅能够直接形成在另一个元件“上”或者“下”,也可以通过中间元件间接形成在另一元件“上”或者“下”。
23.本技术涉及网络页面请求过程中如何防止黑客或网络攻击者对请求参数进行修改。作为背景描述,现将网络页面请求的过程描述如下:当服务器与前台设备(如主机)建立了连接之后,下面前台设备便与服务器进行通信。网页请求是一个单向请求的过程,即是一个前台设备向服务器请求数据,服务器返回相应的数据的过程。浏览器根据 url 内容生成 http 请求,请求中包含请求文件的位置、请求文件的方式等等;服务器接到请求后,根据 http 请求中的内容来决定如何获取相应的 html 文件;服务器将得到的 html 文件发送给浏览器;在浏览器还没有完全接收 html 文件时便开始渲染、显示网页;在执行 html 中代码时,根据需要,浏览器会继续请求图片、css、javascript等文件,其过程与请求 html 相同。
24.参见图1,本发明提供的防止恶意篡改页面请求参数的方法的逻辑是,前台设备在每一个页面请求发送之前获取到请求参数,对请求参数进行加密,并将加密值添加到页面请求中,服务器(后台设备)拦截到该页面请求后,对请求参数进行参数完整性校验、参数长度校验和参数正则校验,未通过任意一个校验步骤的页面请求将被反馈请求失败的信息,全部通过校验后,服务器向前台设备反馈页面文件。
25.参见图2,本发明一个实施例提供了防止恶意篡改页面请求参数的方法,包括如下步骤:步骤s101,前台设备获取第一页面请求中的原始请求参数,对该原始请求参数进行加密,将原始请求参数加密后的第一加密值添加至第一页面请求,获得含有第一加密值和原始请求参数的第二页面请求;向服务器发送所述第二页面请求。
26.具体而言,前台设备先将获取到的页面请求中的请求参数转换为json字符串;然后对转换后的json字符串进行base64加密;再将base64加密后的字符串进行sha256加密;计算sha256加密后字符串的哈希值;在页面请求中新增一个请求头,以任意字符(取什么名字后端获取值的时候就需要写什么)作为参数的key部分,以哈希值作为参数的value部分。上述方法中的原始请求参数是没有改变的,本方法是将请求参数加密处理之后的加密值作为另一个值添加到原始请求参数中。
27.上述步骤中,作为校验参数的标识是经过多重加密的,可以有效防止黑客解密篡改参数。此外,前台设备传递请求参数时,既有原始参数又有加密之后的参数,既能够使研发人员定位问题时可以直观查看参数,又有利于服务器对参数整体的校验,有效防止参数篡改。
28.步骤s102,响应于前台设备发送的第二页面请求,服务器采用与获取第一加密值相同的加密方法对接收到的当前页面请求中的当前请求参数进行加密,以获得第二加密值;比较第一加密值和第二加密值,若第一加密值和第二加密值不同,则向前台设备返回请求失败的信息。
29.具体而言,服务器的请求拦截器会拦截页面请求,读取请求中的参数进行校验。首先进行参数完整性校验,遍历请求参数,获取参数的key值和value值,因为网页请求中浏览器会自动对参数进行url编码,因此value值需要进行url解码,将key作为键值和解码后的value作为元素值添加到新建的map(依照键存储元素的容器)集合中。再将map集合转换为json字符串,将json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后字符串的哈希值。比较前台设备对原始请求参数加密获得的哈希值和服务器对当前请求参数加密获得的哈希值,如果两个值不同表示当前请求参数被篡改,向前台设备返回请求失败的信息,如果两个值是相同的表示请求参数没有被篡改,表示完整性校验成功,可优选的继续进行下一步的校验。
30.步骤s103,若第一加密值和第二加密值相同,则服务器进一步校验当前请求参数的长度,包括:读取配置文件获取不需要校验参数长度的url,若当前页面请求的url未匹配到该不需要校验参数长度的url,则判断当前请求参数中各元素的长度是否超过配置文件中预设的长度值,若超过则向前台设备返回请求失败的信息。
31.具体而言,步骤s102中的参数完整性校验通过的话,继续校验参数长度,参数长度可以通过服务器中的配置文件预先设置或缺省设置。首先,读取配置文件获取不需要检验参数长度的url,如果当前请求的url匹配到了不需要校验的url,那么就跳过之后的参数长度校验,进入参数的正则校验,否则读取配置文件中的长度值,遍历步骤s102中的map集合,然后判断当前请求参数的各元素的长度是否超过限制,如果超过那么向页面返回请求失败的信息,如果长度校验通过的话,优选的继续进行下一步正则校验。
32.上述步骤中,服务器进行参数长度校验时的url是可以配置的,给一些特殊情况下的url请求提供了更好的适应性。
33.步骤s104,若当前页面请求的url匹配到了该不需要校验参数长度的url,或者,若当前请求参数中各元素的长度未超过配置文件中预设的长度值,则进行当前请求参数的特殊字符校验步骤,包括:若服务器接收到的当前页面请求中的当前请求参数未与配置文件中预设的正则表达式匹配,则向前台设备返回请求失败的信息,否则向前台设备返回所请求的页面文件。
34.具体的,若步骤s103中的当前页面请求的url匹配到了该不需要校验参数长度的url,或者参数长度校验通过的话,则继续对参数进行特殊字符的正则校验。特殊字符的正则校验也是可以有效预防sql注入的。特殊字符的正则校验包括:若服务器接收到的当前页面请求中的当前请求参数未与配置文件中预设的正则表达式匹配,则向前台设备返回请求失败的信息,否则向前台设备反馈相应的页面文件。
35.需要指出的是,用户可根据自身的需要在配置文件中添加符合自己要求的正则表达式,该方法会读取所有的正则表达式然后遍历请求参数,去匹配参数值。使用正则表达式来校验,可以校验多种参数情况,因为正则表达式可以非常全面的匹配很多种规则,进一步提高了该参数校验方法的灵活性和覆盖面。
36.本发明的上述步骤s101-步骤s104包含了三种校验,原则上使用上述任意一种校验均可有效验证请求参数是否被篡改。更优选的,同时使用上述三种校验的效果最佳,通过对请求参数的多重校验,可以更全面的预防参数被恶意篡改。
37.参见图3,本发明的另一实施例还提供了一种防止恶意篡改页面请求参数的系统200,包括前台设备201和服务器202,该防止恶意篡改页面请求参数的系统200能够执行方法实施例中的防止恶意篡改页面请求参数的方法。
38.具体的,防止恶意篡改页面请求参数的系统200包括:前台设备201,被配置为获取第一页面请求中的原始请求参数,对该原始请求参数进行加密,将原始请求参数加密后的第一加密值添加至第一页面请求,获得含有第一加密值和原始请求参数的第二页面请求;向服务器发送第二页面请求;服务器202,被配置为响应于上述前台设备发送的第二页面请求,采用与获取第一加密值相同的加密方法对接收到的当前页面请求中的当前请求参数进行加密,以获得第二加密值;比较第一加密值和第二加密值,若第一加密值和第二加密值不同,则向前台设备返回请求失败的信息。
39.进一步的,前台设备201被进一步配置为:将获取到的原始请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第一哈希值;在第一页面请求中增加一个请求头,将第一哈希值添加至该请求头中。
40.进一步的,服务器202被进一步配置为:对接收到的当前页面请求中的当前请求参数进行url解码;将url解码后的当前请求参数转换为json字符串,对转换得到的json字符串进行base64加密,将base64加密后的字符串进行sha256加密,计算sha256加密后的字符串的第二哈希值;比较第一哈希值和第二哈希值,若第一哈希值和第二哈希值不同,则向前台设备返回请求失败的信息。
41.进一步的,服务器202被进一步配置为:若第一加密值和第二加密值相同,则读取配置文件获取不需要校验参数长度的url,若当前页面请求的url未匹配到该不需要校验参数长度的url,则判断当前请求参数中各元素的长度是否超过配置文件中预设的长度值,若超过则向前台设备返回请求失败的信息。
42.进一步的,服务器202被进一步配置为:若当前页面请求的url匹配到了该不需要校验参数长度的url,或者,若当前请求参数中各元素的长度未超过配置文件中预设的长度值,则进行当前请求参数的特殊字符校验,包括:若服务器接收到的当前页面请求中的当前请求参数未与配置文件中预设的正则表达式匹配,则向前台设备返回请求失败的信息,否则向前台设备返回所请求的页面文件。
43.需要说明的是,本实施例提供的防止恶意篡改页面请求参数的系统200对应的可用于执行各方法实施例的步骤,其实现原理和技术效果与方法类似,此处不再赘述。
44.以上描述仅为本发明的较佳实施例。本领域技术人员应当理解,本发明中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而
形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献