CN110912896A - 一种非侵入式的http接口安全策略注入方法 - Google Patents
一种非侵入式的http接口安全策略注入方法 Download PDFInfo
- Publication number
- CN110912896A CN110912896A CN201911177336.4A CN201911177336A CN110912896A CN 110912896 A CN110912896 A CN 110912896A CN 201911177336 A CN201911177336 A CN 201911177336A CN 110912896 A CN110912896 A CN 110912896A
- Authority
- CN
- China
- Prior art keywords
- server
- request
- security policy
- logic
- module
- 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.)
- Granted
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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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
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)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种非侵入式的HTTP接口安全策略注入方法,包括以下步骤:S1、设计一个前端与服务端互相配合完成HTTP请求验证的安全策略,包括在前端生成特定形式的鉴权数据的逻辑和在服务端验证该鉴权数据的逻辑;S2、在前端通过预制作的前端代码构建工具插件操作构建过程,使底层对象被代理,代理对象拦截所有向接口发送的请求,并按安全策略中生成鉴权数据的逻辑改造请求,使其可以被验证;S3、在服务端导入依赖模块对所有被发往接口的请求进行预处理,按安全策略中验证鉴权数据的逻辑对其进行验证,使得只有验证通过的请求才可进入其目标接口执行。
Description
技术领域
本发明涉及网络安全领域,具体地涉及一种非侵入式的HTTP接口安全策略注入方法。
背景技术
由服务端向网络环境开放的HTTP接口,极易受到各种恶意程序的扫描与攻击,对其进行安全防护是必不可少的。对于WEB项目中服务端HTTP接口安全性保障的方式,目前主要有以下几种类型:
a)网络访问限制,服务端不对互联网环境开放接口,前端必须运行于特定的网络环境中才可对服务端进行请求。
b)仅在服务端编写安全策略相关代码,前端发送常规的请求数据,由服务端独立识别接收到的请求是否安全。
c)在服务端与前端都编写安全策略相关代码,前端进行请求前,必须使用某种方式改造请求,由此辅助服务端识别请求是否安全。
目前主要的几类保障HTTP接口安全的方式中,第一类方式,需要对服务端与前端的网络环境进行限制,对应用本身有很大的影响,只适用于一些特殊项目。后两种方式,可以开放于互联网环境下,但都会使得安全策略逻辑侵入至应用的代码中:对于第二和第三种方式,在服务端需要在每一个接口的代码中加入安全逻辑,或是依赖于框架将相关代码作为切面织入项目;对于第三种方式,还需前端在每一处请求被发送前,对请求进行改造,从而加密请求参数或/和携带上额外的验证数据。
在本发明关注的互联网环境,对于单个项目来说,使用目前的技术添加逻辑是可以做到无冗余或重复代码的,但是当需要进行处理的项目有多个时,每一个项目内便都会有一部分代码逻辑完全相同,导致重复工作。同时安全策略与业务代码混杂于同一个模块中,当需要变动安全策略时,需要对每一个项目都进行修改。而当前的互联网环境下,一个安全策略在上线一段时间后被攻破是经常发生的,由此导致安全策略的变动可能涉及大量项目。此外对于已有的老项目来说,添加新的安全策略需要修改旧有代码,这可能意味着庞大的工作量。
发明内容
本发明旨在提供一种非侵入式的HTTP接口安全策略注入方法,以解决上述问题。为此,本发明采用的具体技术方案如下:
一种非侵入式的HTTP接口安全策略注入方法,包括一个注入安全策略的前端代码构建工具插件,并包括以下步骤:
S1、设计一个前端与服务端互相配合完成HTTP请求验证的安全策略,包括在前端生成特定形式的鉴权数据的逻辑和在服务端验证该鉴权数据的逻辑;
S2、在前端通过预制作的前端代码构建工具插件操作构建过程,使底层对象被代理,代理对象拦截所有向接口发送的请求,并按安全策略中生成鉴权数据的逻辑改造请求,使其可以被验证;
S3、在服务端导入依赖模块对所有被发往接口的请求进行预处理,按安全策略中验证鉴权数据的逻辑对其进行验证,使得只有验证通过的请求才可进入其目标接口执行。
进一步地,S2包括以下具体过程:
S21、编写前端请求方法,具体地将S1中设计的安全策略中在涉及前端部分的逻辑编写为一个函数,该函数用于将HTTP请求改造为可以被服务端验证的形式,其中对请求的原始参数部分的改造应当是可逆的;
S22、制作前端依赖包,具体地将S21设计的算法制作为一个前端依赖包,使其对外暴露函数的调用接口;
S23、在前端模块中添加并配置依赖包,具体地将S22制作的包作为依赖添加到前端模块中;
S24、安装并配置前端代码构建工具插件,具体地在前端模块构建工具中安装预制作的插件,配置插件参数为S23中添加的依赖所暴露出的函数,使得由代理对象发送的所有请求都被改造为可以被验证的形式。
进一步地,S3包括以下具体过程:
S31、编写服务端请求验证方法,具体地将S11中设计的安全策略中在涉及服务端部分的逻辑编写为一个函数,该函数可以对接收到的请求进行验证,若该请求是被S21设计的算法所改造的,则返回验证通过,否则返回验证失败。
S32、编写服务端请求预处理工具,具体地编写一个过滤器,可调用S31设计的算法,如验证通过,则将请求还原为未被改造的原始请求,并传递至后续的执行过程;如验证失败,终止服务端的执行过程,并向前端返回错误信息。
S33、制作服务端依赖模块,具体地将S31设计的算法与S32编写的过滤器一同打包制作为一个服务端依赖模块。
S34、在服务端模块中添加并配置依赖,具体地在服务端模块中添加S33制作的模块作为依赖,通过配置将服务端接收到HTTP请求首先交由S32中编写的过滤器进行处理,使得服务端接收到的所有请求都会被S31设计的算法进行验证。
进一步地,所述方法还可包括步骤:
S4、重复S24与S34,将由S1设计的安全策略快速运用到多个WEB项目中。
进一步地,预先制作的前端代码构建工具插件,用于在前端注入安全策略,其功能为:在前端代码构建时将全局XMLHttpRequest对象与FetchAPI接口修改为对此二者的代理,代理对象对外开放与原对象一致的接口,在内部以不同的参数或逻辑调用原对象执行操作,使原对象的行为被控制;以及插件对外接收一个函数作为参数,在代理对象控制实际对象发送HTTP请求前调用作为插件参数的函数改造请求。
本发明采用上述技术方案,具有的有益效果是:本发明方法可以使得一个WEB项目的安全策略与业务代码彻底分离于不同的模块当中,无需修改应用的业务代码,从而使安全策略逻辑对于项目来说是可插拔、可替换的,具有较好的灵活性和易用性。
附图说明
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
图1是根据本发明实施例的一种非侵入式的HTTP接口安全策略注入方法的详细流程图。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
如图1所示,一种非侵入式的HTTP接口安全策略注入方法的具体实施步骤如下:
S1、设计一个前端与服务端互相配合完成HTTP请求验证的安全策略,包括在前端生成特定形式的鉴权数据的逻辑和在服务端验证该鉴权数据的逻辑。
S2、在前端通过构建工具插件操作构建过程代理底层对象,拦截所有向接口发送的请求,并按安全策略中生成鉴权数据的逻辑改造该请求,使其可以被验证。其中,此插件的功能为:在前端代码构建时将全局XMLHttpRequest对象与FetchAPI接口修改为对此二者的代理,代理对象对外开放与原对象一致的接口,在内部以不同的参数或逻辑调用原对象执行操作,使原对象的行为被控制;以及插件对外接收一个函数作为参数,在代理对象控制实际对象发送HTTP请求前调用作为插件参数的函数改造请求。具体过程如下:
S21、编写前端请求方法,具体地将S1中设计的安全策略中在涉及前端部分的逻辑编写为一个函数,该函数用于将HTTP请求改造为可以被服务端验证的形式,其中对请求的原始参数部分的改造应当是可逆的。
S22、制作前端依赖包,具体地将S21设计的算法制作为一个前端依赖包,使其对外暴露函数的调用接口。
S23、在前端模块中添加并配置依赖包,具体地将S22制作的包作为依赖添加到前端模块中。
S24、安装并配置前端代码构建工具插件,具体地在前端模块构建工具中安装预制作的插件,配置插件参数为S23中添加的依赖所暴露出的函数,使得由代理对象发送的所有请求都将被改造为可以被验证的形式。
S3、在服务端导入依赖模块对所有被发往接口的请求进行预处理,按安全策略中验证鉴权数据的逻辑对其进行验证,使得只有验证通过的请求才可进入其目标接口执行。具体过程如下:
S31、编写服务端请求验证方法,具体地将S11中设计的安全策略中在涉及服务端部分的逻辑编写为一个函数,该函数可以对接收到的请求进行验证,若该请求是被S21设计的算法所改造的,则返回验证通过,否则返回验证失败。
S32、编写服务端请求预处理工具,具体地编写一个过滤器,可调用S31设计的算法,如验证通过,则将请求还原为未被改造的原始请求,并传递至后续的执行过程;如验证失败,终止服务端的执行过程,并向前端报错。
S33、制作服务端依赖模块,具体地将S31设计的算法与S32编写的过滤器一同打包制作为一个服务端依赖模块。
S34、在服务端模块中添加并配置依赖,具体地在服务端模块中添加S33制作的模块作为依赖,通过配置将服务端接收到HTTP请求首先交由S32中编写的过滤器进行处理,使得服务端接收到的所有请求都会被S31设计的算法进行验证。
S4、构建并部署WEB项目,重复S24与S34,可以将由S1设计的安全策略快速运用到多个WEB项目中,并且不影响原有业务代码。
本发明的最大特点是非侵入式,无需修改应用的业务代码。这使得该方法具有较好的灵活性、易用性。该方法对旧项目添加接口安全策略或是对多个项目进行批量配置或修改安全策略皆能保持较好的适用性。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (5)
1.一种非侵入式的HTTP接口安全策略注入方法,其特征在于,包括以下步骤:
S1、设计一个前端与服务端互相配合完成HTTP请求验证的安全策略,包括在前端生成特定形式的鉴权数据的逻辑和在服务端验证该鉴权数据的逻辑;
S2、在前端通过前端代码构建工具插件操作构建过程,使底层对象被代理,代理对象拦截所有向接口发送的请求,并按安全策略中生成鉴权数据的逻辑改造请求,使其可以被验证;
S3、在服务端导入依赖模块对所有被发往接口的请求进行预处理,按安全策略中验证鉴权数据的逻辑对其进行验证,使得只有验证通过的请求才可进入其目标接口执行。
2.如权利要求1所述的方法,其特征在于,S2包括以下具体过程:
S21、编写前端请求方法,具体地将S1中设计的安全策略中在涉及前端部分的逻辑编写为一个函数,该函数用于将HTTP请求改造为可以被服务端验证的形式,其中对请求的原始参数部分的改造应当是可逆的;
S22、制作前端依赖包,具体地将S21设计的算法制作为一个前端依赖包,使其对外暴露函数的调用接口;
S23、在前端模块中添加并配置依赖包,具体地将S22制作的包作为依赖添加到前端模块中;
S24、安装并配置前端代码构建工具插件,具体地在前端模块构建工具中安装预制作的插件,配置插件参数为S23中添加的依赖所暴露出的函数,使得由代理对象发送的所有请求都将被改造为可以被验证的形式。
3.如权利要求2所述的方法,其特征在于,S3包括以下具体过程:
S31、编写服务端请求验证方法,具体地将S11中设计的安全策略中在涉及服务端部分的逻辑编写为一个函数,该函数可以对接收到的请求进行验证,若该请求是被S21设计的算法所改造的,则返回验证通过,否则返回验证失败。
S32、编写服务端请求预处理工具,具体地编写一个过滤器,可调用S31设计的算法,如验证通过,则将请求还原为未被改造的原始请求,并传递至后续的执行过程;如验证失败,终止服务端的执行过程,并向前端报错。
S33、制作服务端依赖模块,具体地将S31设计的算法与S32编写的过滤器一同打包制作为一个服务端依赖模块。
S34、在服务端模块中添加并配置依赖,具体地在服务端模块中添加S33制作的模块作为依赖,通过配置将服务端接收到HTTP请求首先交由S32中编写的过滤器进行处理,使得服务端接收到的所有请求都会被S31设计的算法进行验证。
4.如权利要求3所述的方法,其特征在于,所述方法还包括步骤:
S4、重复S24与S34,将由S1设计的安全策略快速运用到多个WEB项目中。
5.如权利要求1所述的方法,其特征在于,预先制作的前端代码构建工具插件,用于在前端注入安全策略,其功能为:在前端代码构建时将全局XMLHttpRequest对象与FetchAPI接口修改为对此二者的代理,代理对象对外开放与原对象一致的接口,在内部以不同的参数或逻辑调用原对象执行操作,使原对象的行为被控制;以及插件对外接收一个函数作为参数,在代理对象控制实际对象发送HTTP请求前调用作为插件参数的函数改造请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177336.4A CN110912896B (zh) | 2019-11-27 | 2019-11-27 | 一种非侵入式的http接口安全策略注入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177336.4A CN110912896B (zh) | 2019-11-27 | 2019-11-27 | 一种非侵入式的http接口安全策略注入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110912896A true CN110912896A (zh) | 2020-03-24 |
CN110912896B CN110912896B (zh) | 2022-02-25 |
Family
ID=69819746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911177336.4A Active CN110912896B (zh) | 2019-11-27 | 2019-11-27 | 一种非侵入式的http接口安全策略注入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912896B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
CN1885788A (zh) * | 2005-06-22 | 2006-12-27 | 杭州华为三康技术有限公司 | 网络安全防护方法及系统 |
US20110213821A1 (en) * | 2010-02-03 | 2011-09-01 | Odyssey Software, Inc. | Method, system, and computer readable medium for remote assistance, support, and troubleshooting |
CN103678650A (zh) * | 2013-12-23 | 2014-03-26 | 蓝盾信息安全技术股份有限公司 | 一种基于thrift服务的HBase安全插件 |
CN105247531A (zh) * | 2013-03-29 | 2016-01-13 | 思杰系统有限公司 | 提供受管浏览器 |
CN106067886A (zh) * | 2016-08-03 | 2016-11-02 | 广州唯品会信息科技有限公司 | 安全策略更新方法及系统 |
-
2019
- 2019-11-27 CN CN201911177336.4A patent/CN110912896B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
CN1885788A (zh) * | 2005-06-22 | 2006-12-27 | 杭州华为三康技术有限公司 | 网络安全防护方法及系统 |
US20110213821A1 (en) * | 2010-02-03 | 2011-09-01 | Odyssey Software, Inc. | Method, system, and computer readable medium for remote assistance, support, and troubleshooting |
CN105247531A (zh) * | 2013-03-29 | 2016-01-13 | 思杰系统有限公司 | 提供受管浏览器 |
CN103678650A (zh) * | 2013-12-23 | 2014-03-26 | 蓝盾信息安全技术股份有限公司 | 一种基于thrift服务的HBase安全插件 |
CN106067886A (zh) * | 2016-08-03 | 2016-11-02 | 广州唯品会信息科技有限公司 | 安全策略更新方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110912896B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210271472A1 (en) | Application Wrapping for Application Management Framework | |
EP2831790B1 (en) | Secured execution of a web application | |
US8893298B2 (en) | Network linker for secure execution of unsecured apps on a device | |
Almorsy et al. | Adaptable, model-driven security engineering for SaaS cloud-based applications | |
US8990920B2 (en) | Creating a virtual private network (VPN) for a single app on an internet-enabled device or system | |
US8769305B2 (en) | Secure execution of unsecured apps on a device | |
Askarov et al. | Tight enforcement of information-release policies for dynamic languages | |
US8549656B2 (en) | Securing and managing apps on a device | |
US9542552B2 (en) | Extensible platform for securing apps on a mobile device using policies and customizable action points | |
JPH10313309A (ja) | 国際暗号法フレームワークでアプリケーションが一定のサービスクラスを合法的に実行することを認証する装置 | |
CN102945337A (zh) | Subversion用户密码在线自助管理方法和系统 | |
WO2023072817A1 (en) | Control of access to computing resources implemented in isolated environments | |
CN111045722A (zh) | 智能合约打包方法、装置、系统、计算机设备及存储介质 | |
CN110912896B (zh) | 一种非侵入式的http接口安全策略注入方法 | |
CN111475763B (zh) | 网页运行方法、装置、存储介质及设备 | |
Nazar et al. | Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service | |
Dragoni et al. | Security-by-Contract (S x C) for Software and Services of Mobile Systems | |
CN113420313A (zh) | 程序安全运行、加密方法及其装置、设备、介质 | |
KR20130058527A (ko) | 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기 | |
Lin et al. | Trust enhanced security-a new philosophy for secure collaboration of mobile agents | |
Halpin | A Roadmap for High Assurance Cryptography | |
JP3751622B2 (ja) | Vpnの自動構築方法、ポリシー管理装置、及び利用者装置 | |
Oraon | Embedded System Security Risk in a Green-House Environment | |
CN114626072A (zh) | 一种自动的并具有早期错误检测的安全加固系统 | |
CN113987518A (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 |