CN105786630A - 一种基于中间件的Web API调控方法 - Google Patents

一种基于中间件的Web API调控方法 Download PDF

Info

Publication number
CN105786630A
CN105786630A CN201610106010.2A CN201610106010A CN105786630A CN 105786630 A CN105786630 A CN 105786630A CN 201610106010 A CN201610106010 A CN 201610106010A CN 105786630 A CN105786630 A CN 105786630A
Authority
CN
China
Prior art keywords
webapi
middleware
access request
api
strategy
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
Application number
CN201610106010.2A
Other languages
English (en)
Other versions
CN105786630B (zh
Inventor
崔明波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201610106010.2A priority Critical patent/CN105786630B/zh
Publication of CN105786630A publication Critical patent/CN105786630A/zh
Application granted granted Critical
Publication of CN105786630B publication Critical patent/CN105786630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于中间件的Web API调控方法,属于Web架构优化领域,本发明要解决的技术问题为如何能够实现Web API调控的统一性、稳定性以及安全性。技术方案为:在Web API接口与业务处理层之间增加中间件,所述中间件根据Web API接口发送的访问请求设置对应的策略,一个Web API接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对Web API接口发送的访问请求进行校验。

Description

一种基于中间件的Web API调控方法
技术领域
本发明涉及Web架构优化领域,具体地说是一种基于中间件的WebAPI调控方法。
背景技术
WebAPI是一种网络应用程序接口,在目前发达的应用场景下,我们往往需要接入Winform客户端、APP程序、网站程序、以及目前热火朝天的微信应用等,这些数据应该可以由同一个服务提供,这个就是我们所需要构建的WebAPI平台,基于上述的需求,很多企业的需求都是以WebAPI优先的理念来设计整个企业应用体系的。WebAPI作为整个纽带的核心,在整个核心层需要考虑到统一性、稳定性以及安全性等方面因素。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
专利号为CN102662766B的专利文献公开了一种基于WebElement机制的微博与社交网络信息同步系统与方法,该系统是基于微博与社交网络开放平台的应用程序编程接口API的Web应用,以网页组件(WebElement)机制的新型Web中间件作为功能组件,即封装出具有微博与社交网络信息同步功能的WebElement,再对微博及社交网络的两种开放平台接口进行适配,以网页作为运行载体,实现微博与社交网络的信息同步功能;系统设有四个组成部件:开发人员定制模块、中间件视图模块、功能控制模块和驱动适配模块。但是,该专利存在如下缺点:结构复杂,控制不方便,且不能提高WebAPI调控的统一性、稳定性以及安全性。
综上所述,如何能够实现WebAPI调控的统一性、稳定性和安全性是目前现有技术中存在的技术问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于中间件的WebAPI调控方法,来解决如何能够实现WebAPI调控的统一性、稳定性和安全性的问题。
本发明解决其技术问题所采用的技术方案是:一种基于中间件的WebAPI调控方法,在WebAPI接口与业务处理层之间增加中间件,所述中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。其中,中间件用于对WebAPI接口发送的访问请求进行统一管理、校验封装、入口拦截以及规范响应。中间件以管道的形式,根据策略规范,对WebAPI接口发送的访问请求依次进行校验;通过全部的策略校验,则将WebAPI接口发送的访问请求传递给业务处理层进行处理。WebAPI接口接收浏览器或app发送的访问请求。
作为优选,该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
更优地,所述策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
本发明的一种基于中间件的WebAPI调控方法和现有技术相比,具有以下有益效果:本发明通过中间件在接收到一个WebAPI接口发送的访问请求之初,根据该WebAPI对应的策略设置进行校验,一个WebAPI接口发送的访问请求可有多个策略设置,策略依次传递进行校验;若所有策略设置满足,则继续向后传递进行对应的业务操作;否则终止WebAPI接口发送的访问请求的校验操作,返回异常提示;避免在每个业务中再进行一次逻辑判断,减少了代码量且便于维护。
本发明具有设计合理、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于中间件的WebAPI调控方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
实施例1
本发明的一种基于中间件的WebAPI调控方法,在WebAPI接口与业务处理层之间增加中间件,中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。
如附图1所示,该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
统一封装请求响应规定如下:
400INVALIDREQUEST(无效请求)-[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401Unauthorized(未经授权的、未经许可的)-[*]:表示用户没有权限(令牌、用户名、密码错误)。
403Forbidden(禁止)-[*]表示用户得到授权(与401错误相对),但是访问是被禁止的。
404NOTFOUND(找不到、未查明)-[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406NotAcceptable(不接受)-[GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410Gone-[GET]:用户请求的资源被永久删除,且不会再得到的。
422Unprocesableentity(无法处理的请求实体、客户端错误)-[POST/PUT/PATCH]当创建一个对象时,发生一个验证错误。
500INTERNALSERVERERROR(内部服务器错误)-[*]:服务器发生错误,用户将无法判断发出的请求是否成功。
比如:
身份验证无效的,中间件返回401。
在黑名单中的用户请求API的时候中间件返回403。
实施例2
以下以某站为例进行中间件调控内容的详细描述,使本发明的上诉目标、特征和优点更加清晰、易懂。
router.all(‘*',黑名单校验方法);
router.get(‘/xxx/aaa',[策略1,策略2,…,策略n],业务处理);
对所有WebAPI接口发送的访问请求执行黑名单校验,若客户端IP或标识的用户身份在黑名单中,则返回403,禁止API请求;否则向后传递WebAPI接口发送的访问请求。
策略1:假如为必须有用户身份。设定操作为:取cookie中的token进行身份校验,若对应用户合法,则校验成功传递WebAPI接口发送的访问请求给后续策略校验;否则终止请求传递,返回401,用户身份不合法。
策略2:假如为要缓存用户功能权限数据10分钟,在进行操作成功后向后传递WebAPI接口发送的访问请求,进行后续策略校验。
。。。。。。
通过全部策略校验,WebAPI接口发送的访问请求传递给业务处理层:根据策略2缓存的功能权限,进行一些数据操作后返回响应。
响应返回后,WebAPI接口发送的访问请求处理完毕。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的两种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (3)

1.一种基于中间件的WebAPI调控方法,其特征在于:在WebAPI接口与业务处理层之间增加中间件,所述中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。
2.根据权利要求1所述的一种基于中间件的WebAPI调控方法,其特征在于:该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
3.根据权利要求2所述的一种基于中间件的WebAPI调控方法,其特征在于:所述策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
CN201610106010.2A 2016-02-26 2016-02-26 一种基于中间件的Web API调控方法 Active CN105786630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610106010.2A CN105786630B (zh) 2016-02-26 2016-02-26 一种基于中间件的Web API调控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610106010.2A CN105786630B (zh) 2016-02-26 2016-02-26 一种基于中间件的Web API调控方法

Publications (2)

Publication Number Publication Date
CN105786630A true CN105786630A (zh) 2016-07-20
CN105786630B CN105786630B (zh) 2019-02-15

Family

ID=56403714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610106010.2A Active CN105786630B (zh) 2016-02-26 2016-02-26 一种基于中间件的Web API调控方法

Country Status (1)

Country Link
CN (1) CN105786630B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204982A (zh) * 2017-06-13 2017-09-26 成都四方伟业软件股份有限公司 交互式数据系统通用安全防护系统
CN107273144A (zh) * 2017-08-15 2017-10-20 广州市爱菩新医药科技有限公司 快速构建网络应用程序接口的装置
CN107317816A (zh) * 2017-07-05 2017-11-03 北京信息职业技术学院 一种基于客户端应用程序鉴别的网络访问控制方法
CN107862810A (zh) * 2017-09-28 2018-03-30 中国民生银行股份有限公司 一种基于浏览器的自助终端控制系统
WO2018121331A1 (zh) * 2016-12-28 2018-07-05 阿里巴巴集团控股有限公司 攻击请求的确定方法、装置及服务器
CN109657485A (zh) * 2018-12-13 2019-04-19 广州虎牙信息科技有限公司 权限处理方法、装置、终端设备和存储介质
CN111177660A (zh) * 2018-11-09 2020-05-19 千寻位置网络有限公司 一种开放平台脚本代码的权限校验方法
CN113805859A (zh) * 2021-08-20 2021-12-17 浪潮金融信息技术有限公司 一种智慧屏中间件设计的方法、系统及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413198A (zh) * 2011-09-30 2012-04-11 山东中创软件工程股份有限公司 一种基于安全标记的访问控制方法和相关系统
CN103249045A (zh) * 2013-05-13 2013-08-14 华为技术有限公司 一种身份识别的方法、装置和系统
US20130339505A1 (en) * 2012-06-19 2013-12-19 Microsoft Corporation Multi-tenant middleware cloud service technology
CN104104652A (zh) * 2013-04-03 2014-10-15 阿里巴巴集团控股有限公司 一种人机识别方法、网络服务接入方法及相应的设备
CN104618404A (zh) * 2015-03-10 2015-05-13 网神信息技术(北京)股份有限公司 防止网络攻击Web服务器的处理方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413198A (zh) * 2011-09-30 2012-04-11 山东中创软件工程股份有限公司 一种基于安全标记的访问控制方法和相关系统
US20130339505A1 (en) * 2012-06-19 2013-12-19 Microsoft Corporation Multi-tenant middleware cloud service technology
CN104104652A (zh) * 2013-04-03 2014-10-15 阿里巴巴集团控股有限公司 一种人机识别方法、网络服务接入方法及相应的设备
CN103249045A (zh) * 2013-05-13 2013-08-14 华为技术有限公司 一种身份识别的方法、装置和系统
CN104618404A (zh) * 2015-03-10 2015-05-13 网神信息技术(北京)股份有限公司 防止网络攻击Web服务器的处理方法、装置及系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018121331A1 (zh) * 2016-12-28 2018-07-05 阿里巴巴集团控股有限公司 攻击请求的确定方法、装置及服务器
CN108259425A (zh) * 2016-12-28 2018-07-06 阿里巴巴集团控股有限公司 攻击请求的确定方法、装置及服务器
CN107204982A (zh) * 2017-06-13 2017-09-26 成都四方伟业软件股份有限公司 交互式数据系统通用安全防护系统
CN107204982B (zh) * 2017-06-13 2019-02-05 成都四方伟业软件股份有限公司 交互式数据系统通用安全防护系统
CN107317816B (zh) * 2017-07-05 2020-06-12 北京信息职业技术学院 一种基于客户端应用程序鉴别的网络访问控制方法
CN107317816A (zh) * 2017-07-05 2017-11-03 北京信息职业技术学院 一种基于客户端应用程序鉴别的网络访问控制方法
CN107273144A (zh) * 2017-08-15 2017-10-20 广州市爱菩新医药科技有限公司 快速构建网络应用程序接口的装置
CN107862810A (zh) * 2017-09-28 2018-03-30 中国民生银行股份有限公司 一种基于浏览器的自助终端控制系统
CN111177660A (zh) * 2018-11-09 2020-05-19 千寻位置网络有限公司 一种开放平台脚本代码的权限校验方法
CN111177660B (zh) * 2018-11-09 2024-01-05 千寻位置网络有限公司 一种开放平台脚本代码的权限校验方法
CN109657485A (zh) * 2018-12-13 2019-04-19 广州虎牙信息科技有限公司 权限处理方法、装置、终端设备和存储介质
CN113805859A (zh) * 2021-08-20 2021-12-17 浪潮金融信息技术有限公司 一种智慧屏中间件设计的方法、系统及介质
CN113805859B (zh) * 2021-08-20 2024-05-10 浪潮金融信息技术有限公司 一种智慧屏中间件设计的方法、系统及介质

Also Published As

Publication number Publication date
CN105786630B (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN105786630A (zh) 一种基于中间件的Web API调控方法
US20180012012A1 (en) System and method for controlling state tokens
US9766914B2 (en) System and methods for remote maintenance in an electronic network with multiple clients
US9467475B2 (en) Secure mobile framework
CN108173850A (zh) 一种基于区块链智能合约的身份认证系统和身份认证方法
JP5191376B2 (ja) リスクベース認証システムおよび危険度情報取得サーバならびにリスクベース認証方法
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
CN103404103A (zh) 将访问控制系统与业务管理系统相结合的系统和方法
CN109150800A (zh) 一种登录访问方法、系统和存储介质
CN107872445A (zh) 接入认证方法、设备和认证系统
CN111797404B (zh) 一种基于区块链及智能合约的IIoT设备安全装置
CN102404114A (zh) Web服务监控方法和系统
CN115277784B (zh) 便于实现本地权限控制的工业物联网系统及控制方法
CN112953951B (zh) 一种基于国产cpu的用户登录验证和安全性检测方法及系统
DE102022104902A1 (de) Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen
US11463477B2 (en) Policy management system to provide authorization information via distributed data store
CN109379404B (zh) 基于tdi驱动和代理服务器有效代理转发数据的方法
CA3076565C (en) Method for providing data packets from a can bus, control device and system having a can bus
CN110493199A (zh) 一种防止互联网Web攻击的方法和装置
US20080178267A1 (en) Method and system for simplifying role based authorization profile implementation
CN116055486B (zh) 一种基于区块链的策略安全管理装置及方法
CN114598474B (zh) 硬件设备抵近可信管理方法、装置、计算机设备及介质
CN111988284B (zh) Pdp的配置方法、装置、电子设备和存储介质
US20120317298A1 (en) Scripting environment for network device
CN107025404A (zh) 一种监控进程的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant