一种基于Python Flask及装饰器的处理浏览器请求的方法及装置制造方法及图纸

技术编号:20369965 阅读:18 留言:0更新日期:2019-02-16 20:06
本发明专利技术提供了一种基于PythonFlask及装饰器的处理网页请求的方法,创新将Python装饰器应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,实现了判断校验的简洁高效,而且本发明专利技术还提供了一种基于PythonFlask及装饰器的处理网页请求的装置,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。

A Method and Device for Handling Browser Request Based on Python Flask and Decorator

The invention provides a method of processing web page requests based on Python Flask and decorator. The Python decorator is innovatively applied to browser request judgment verification. The view function is decorated by the decorator function, and the function of judgment verification of view function is dynamically increased. The method realizes the simplicity and efficiency of judgment verification. The invention also provides a Python Flask and decoration based on Python Flask. The device that handles web page requests can not only avoid the serious problem of server being attacked and information leaking when malicious information and unknown information are sent to the server, but also reduce a large number of redundant codes due to verification judgment, save manpower cost and improve work efficiency.

【技术实现步骤摘要】
一种基于PythonFlask及装饰器的处理浏览器请求的方法及装置
本专利技术涉及处理浏览器请求的方法及装置,尤其是涉及一种基于PythonFlask及装饰器的处理浏览器安全请求的方法及装置。
技术介绍
HttpReferrer(消息来路)是HttpRequest(请求)消息的header(头文件)的一部分,浏览器系统对应的每一步操作,在后端都是一个视图函数,当浏览器向web服务器发送请求的时候,请求中携带referrer(网站来路,消息来源)信息,用于告诉服务器该消息是从哪个页面链接过来的,服务器从此可以获取一些有用信息。现在浏览器(Web)产品大多存在着安全漏洞问题,当恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露等严重问题,现有技术中处理浏览器请求一般都会用到判断校验,但是当浏览器多次发送请求时,就会造成大量判断代码的冗余,增加了人力成本,降低了工作效率。
技术实现思路
本专利技术为了解决处理浏览器安全请求现有技术中存在的问题,创新将图Python装饰器(一种高级python语法,可以对一个函数方法和类进行加工,从而给函数方法动态地增加某些功能,装饰器的优点是能够抽离出大量函数中与函数本身功能无关的代码并且继续使用,即简洁高效地给函数添加功能)应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。本专利技术第一方面提供了一种基于PythonFlask及装饰器的处理浏览器请求的方法,包括:浏览器向服务器发送请求;服务器通过从Flask(一个使用Python语言编写的轻量级Web应用框架)的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;通过字符串切片的方法获取referrer信息中的第一host(包含IP地址和主机名的映射关系)信息;编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。结合第一方面,在第一方面第一种可能的实现方式中,所述服务器通过从Flask的框架获取浏览器发来的请求具体是:服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。结合第一方面,在第一方面第二种可能的实现方式中,所述通过字符串切片的方法获取referrer信息中的第一host信息具体是:将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。结合第一方面,在第一方面第三种可能的实现方式中,所述编写装饰器函数具体是:定义装饰器函数,把视图函数对象作为输入参数传入;设置内置warps装饰器;定义装饰器内函数;执行判断校验过程。本专利技术第二方面提供了一种基于PythonFlask及装饰器的处理浏览器请求的装置,包括:发送模块,浏览器向服务器发送请求;第一获取模块,服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;第二获取模块,通过字符串切片的方法获取referrer信息中的第一host信息;编写封装模块,编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;判定模块,定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。结合第二方面,在第二方面第一种可能的实现方式中,所述基于PythonFlask及装饰器的处理浏览器请求的装置还包括:获取请求模块,服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。结合第二方面,在第二方面第二种可能的实现方式中,所述基于PythonFlask及装饰器的处理浏览器请求的装置还包括:第一host信息获取模块,将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。结合第二方面,在第二方面第三种可能的实现方式中,所述编写封装模块具体包括:第一定义模块,定义装饰器函数,把视图函数对象作为输入参数传入;设置模块,设置内置warps装饰器;第二定义模块,定义装饰器内函数;判断校验模块,执行判断校验过程。本专利技术采用的技术方案包括以下技术效果:本专利技术提供了一种基于PythonFlask及装饰器的处理浏览器请求的方法,创新将Python装饰器应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,实现了判断校验的简洁高效,而且本专利技术还提供了一种基于PythonFlask及装饰器的处理浏览器请求的装置,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。附图说明为了更清楚说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1本专利技术方案中方法实施例的流程示意图;图2本专利技术方案中步骤S4的方法流程示意图;图3本专利技术方案中装置实施例的结构示意图;图4本专利技术方案中编写封装模块的结构示意图。具体实施方式为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。如图1所示,本专利技术技术方案中一种基于PythonFlask及装饰器的处理浏览器请求的方本文档来自技高网...

【技术保护点】
1.一种基于Python Flask及装饰器的处理浏览器请求的方法,其特征是,包括:浏览器向服务器发送请求;服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;通过字符串切片的方法获取referrer信息中的第一host信息;编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。

【技术特征摘要】
1.一种基于PythonFlask及装饰器的处理浏览器请求的方法,其特征是,包括:浏览器向服务器发送请求;服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;通过字符串切片的方法获取referrer信息中的第一host信息;编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。2.根据权利要求1所述的基于PythonFlask及装饰器的处理浏览器请求的方法,其特征是,所述服务器通过从Flask的框架获取浏览器发来的请求具体是:服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。3.根据权利要求1所述的基于PythonFlask及装饰器的处理浏览器请求的方法,其特征是,所述通过字符串切片的方法获取referrer信息中的第一host信息具体是:将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。4.根据权利要求1所述的基于PythonFlask及装饰器的处理浏览器请求的方法,其特征是,所述编写装饰器函数具体是:定义装饰器函数,把视图函数对象作为输入参数传入;设置内置warps装饰器;定义装饰器内函数;执行判断校验过程。5.一种基于Pyt...

【专利技术属性】
技术研发人员:周广跃
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1