API接口数据流转常见安全机制

01 什么是API?

百度百科给出了API的定义:

API(应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。

通俗的来理解就是API是一种为客户提供服务的方式。当一家企业或数据中心为客户提供API的时候,意味着它们建立了一组专用的URL通道,服务响应后返回的是纯数据。

很多时候API自身还能被包装成一种服务模式。例如,Weather Underground就将其天气数据API的访问权限出售给其他人,同样华为也对API服务有超出免费次数的API请求支付费用的服务模式。

API接口作为数据共享开放的基础,随着数字化进程的推进,越来越多的企业和数据中心将服务封装成数据接口进行开放,供第三方使用。

总体来说,API接口分为三大类:开放API、面向合作方API和内部API。如表一所示。

AP类型

简介

开放API

开放API指调用者不需要 与API提供者建立合作关系,且面向公网开放,允许公共调用的应用程序接口。

面向合作方API

面向合作方API指组织与外部合作伙伴、用户等进行数据交互、交流和系统 集成的应用程序接口。

内部API

内部API仅在组织内部使用,是用来协调内部不同系统、应用之间的调用关 系的应用程序接口。

表一:API分类

开放API(OpenAPI)是开发者运用最多的一类了。由于具有标准化、通用性等优势,不断被运用到需要快捷的服务场景。数据共享开放时代,几乎没有人可以绕过API来构建信息系统和App。

API是共享开放的基础。如图一所示,API的主要价值可以总结为三点:

  • 数据共享开放,更精准的触达客户,提供更丰富的服务

  • 通过API接口聚合,实现应用场景及商业模式的转变

  • 通过API接口快速接入海量数据,实现数据的价值增值

图片

图一 API是共享开放的基础

02 API接口面临的主要风险

下面八种API接口的安全风险需要我们予以重视(如图二):

图片

图二 API接口面临的主要风险

过去,应用程序可以安全地隐藏在防火墙后面。如今API成了企业应用程序的关键,它使应用程序的特性更加丰富和动态,随着数字化转型,数据在不断打通,API成为数据重要的流通链路。这是好的一面,但同时API也增加了攻击面,并没有防火墙防护,常常被意外地公开。

API接口传输数据类型复杂多变, 有些接口涉及敏感的商业数据、个人隐私数据。一旦发生泄露窃取,企业将面临巨大的合规风险和商密数据泄露风险。许多重大数据泄露问题,其幕后原因都在于 API 遭到破坏、泄露或攻击。

03 API安全常见解决方案

2019年OWASP发布了API安全十大项目,但由于API安全涉及的范围比较广,不少常见的安全问题并没有被列入其中。

API安全市场处于相对早期阶段,国内专业从事API安全的厂商也不多,从市场角度来看,主要有两类:API网关方案和基于数据流转分析的API安全方案。

一、API网关方案:

通常的解决方法是为内部环境和云计算环境部署设置API网关,并有数据中心将它们作为托管的服务来提供。

遗憾的是,并非API网关就是一个好主意。目前市场上的代理API和API网关大多只能解决其中的几项,无法针对这些风险给出全面的防护手段。

当然,API网关有其优点:通过API网关汇集所有API流量,可以确保基本的安全策略(如加密、身份验证和访问控制)得到充分实施、并能执行负载均衡和DDoS保护等策略。

这似乎是一个理想的选择,但现实很骨感。

首先,整个过程需要从创建API目录开始,包括数据中心公开的所有的API目录。但要保持目录更新是一件很困难的事,尤其是在今天讲究快速迭代更新的时代,新的服务在几天甚至几小时内就会推出。

其二,使用令牌来标识每个API,控制对数据和服务的访问,没有授权令牌的开发人员不能公开新的API。但是一些企业的实践表明,要让所有开发人员都参与进来可能的困难程度超出想象。

其三,将API网关作为托管的服务来提供是一个很美妙的设想,但数据中心却无法也不能强迫客户这样做。

其四,单点故障和中央网关延迟是API网关避不开的隐患,它增加了数据中心复杂性和管理开销。成千上万个企业API都通过API进行通信,出现单点故障和延迟是一个可怕的噩梦。

二、基于数据流转分析的API安全方案

通过AI技术和小样本深度学习对API的访问行为和流量进行分析,从而发现API的各种异常访问行为。这类基于数据流转分析的API安全方案可以实现全场景动态防护,主要包含四大类,如图三所示。

图片

图三 API全场景动态防护

非法调用防护:主要包括防止未授权的API调用、检测API安全验证机制、识别API越权、遍历检测等等......

恶意访问防护:主要包括持续监控API接口访问行为、识别API接口攻击访问等......

数据泄漏防护:主要包括监控API接口传输敏感数据、防止敏感数据超范围获取等......

滥用防护:主要包括监控API接口高频访问行为、识别API接口数据爬取行为、高权限账户异常地址访问、识别API接口数据聚合分析行为等......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/145570.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 类构造函数 析构函数

类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。 下面的实例有助于更好地…

Vue以及整合ElementUI

初始化vue项目 #vue 脚手架使用 webpack 模板初始化一个 appname 项目 vue init webpack appname启动 vue 项目 #项目的 package.json 中有 scripts,代表我们能运行的命令 npm start npm run dev #启动项目 npm run build:将项目打包项目结构 运行流程…

el-menu 导航栏学习(1)

最简单的导航栏学习跳转实例效果: (1)index.js路由配置: import Vue from vue import Router from vue-router import NavMenuDemo from /components/NavMenuDemo import test1 from /components/test1 import test2 from /c…

Firefox 开发团队对 Vue 3 进行优化效果显著

Mozilla 官方博客近日发表文章《Faster Vue.js Execution in Firefox》,介绍了 Firefox 开发团队对 Vue 3 进行的优化。 文章写道,在使用 Speedometer 3 对 Firefox 进行基准测试时,他们发现 Vue.js test 的测试结果从 Vue 2 升级到 Vue 3 后…

MySQL单表查询与多表查询

目录 一、单表查询 ​编辑 1、显示所有职工的基本信息。 ​编辑2、查询所有职工所属部门的部门号,不显示重复的部门号。 ​编辑3、求出所有职工的人数。 4、列出最高工和最低工资。 ​编辑5、列出职工的平均工资和总工资。 ​编辑6、创建一个只有职…

【数据结构】队列实现+层序遍历详解+一些练题

欢迎来到我的:世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言队列的实现层序遍历详解强化练习1.判断是不是完全二叉树求二叉树的最大深度 总结 前言 国庆到了,也要内卷一下,感…

ElasticSearch 同步数据变少了

一、前言 这几天对接ES遇到几个坑,我们将一张库存表同步到ES发现Docs Count和我们表中的数据对不上,需要加上Docs deleted才对得上,也不知道批量写入数据为什么有些数据就会成 Docs deleted。 二、ID和版本号 ES中每一个Document都有一个_…

c#中的接口

使用IEnumerable统一迭代变量类型 class Program {static void Main(string[] args){int[] nums1 new int[] { 1, 2, 3, 4, 5 };ArrayList nums2 new ArrayList { 1, 2, 3, 4, 5 };Console.WriteLine(Sum(nums1));Console.WriteLine(Sum(nums2));Console.WriteLine(Avg(nums…

oracle-使用PLSQL工具自行修改用户密码

1、使用PLSQL工具,输入用户名和原密码登录,如下图 2、登录后,在会话下拉菜单中找到”Change password..” 3、在跳出的窗口中配置新密码,修改完成后单击”确认”,后退出PLSQL 4、重新打开PLSQL,使用新密码登…

【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现

文章目录 前言一、微服务调用出现的问题1.1 服务消费者如何获取服务提供者的地址信息?1.2 如果有多个服务提供者,消费者该如何选择?1.3 消费者如何得知服务提供者的健康状态? 二、什么是 Eureka2.1 Eureka 的核心概念2.2 Eureka 的…

C语言数据结构之排序整合与比较(冒泡,选择,插入,希尔,堆排序,快排及改良,归并排序,计数排序)

前言:排序作为数据结构中的一个重要模块,重要性不言而寓,我们的讲法为下理论掌握大致的算法结构,再上代码及代码讲解,助你一臂之力。 一,冒泡 冒泡排序应该是大家学习以来第一个认识的排序方法&#xff0…

buuctf-[WUSTCTF2020]CV Maker

打开环境 随便登录注册一下 进入到了profile.php 其他没有什么页面&#xff0c;只能更换头像上传文件&#xff0c;所以猜测是文件上传漏洞 上传一句话木马看看 <?php eval($_POST[a]);?>回显 搜索一下 添加文件头GIF89a。上传php文件 查看页面源代码&#xff0c;看…

Leetcode---364场周赛

题目列表 2864. 最大二进制奇数 2865. 美丽塔 I 2866. 美丽塔 II 2867. 统计树中的合法路径数目 一、最大二进制奇数 这题只要你对二进制有了解(学编程的不会不了解二进制吧)&#xff0c;应该问题不大&#xff0c;这题要求最大奇数&#xff0c;1.奇数&#xff1a;只要保证…

谷歌扩展下载

Chrome 扩展下载安装网站推荐 # 1. 极简插件优质crx应用 ●地址&#xff1a;https://chrome.zzzmh.cn ●推荐&#xff1a;★★★★★ 一个非常良心 & 干净 & 简洁的 Chrome 扩展下载网站&#xff0c;体验非常不错&#xff01; 侧边栏可以通过类型对扩展进行筛选和排序&…

Android LiveData 介绍

Android LiveData 介绍 系列文章目录前言一、LiveData是什么&#xff1f;二、简单使用依赖测试数据准备1.创建可观察的livedata2.观察它3.更新它 总结 系列文章目录 Android LiveData 介绍&#xff08;本文&#xff09; 前言 本系列根据官网介绍Jetpack中的数据通信组件&…

大数据Doris(三):Doris编译部署篇

文章目录 Doris编译部署篇 一、Doris编译

侯捷 C++ STL标准库和泛型编程 —— 4 分配器 + 5 迭代器

4 分配器 4.1 测试 分配器都是与容器共同使用的&#xff0c;一般分配器参数用默认值即可 list<string, allocator<string>> c1;不建议直接用分配器分配空间&#xff0c;因为其需要在释放内存时也要指明大小 int* p; p allocator<int>().allocate(512,…

图像处理: 马赛克艺术

马赛克 第一章 马赛克的历史渊源 1.1 马赛克 艺术中的一种表面装饰&#xff0c;由紧密排列的、通常颜色各异的小块材料&#xff08;如石头、矿物、玻璃、瓷砖或贝壳&#xff09;组成。与镶嵌不同的是&#xff0c;镶嵌是将要应用的部件放置在已挖空以容纳设计的表面中&#xff0…

babel.config.js配置文件详解

文章目录 一、前言三、babel 详解四、拓展阅读 一、前言 项目开发阶段&#xff0c;使用可选链操作符 ?. 出现以下编译报错问题&#xff1a; 分析&#xff1a;由于可选链操作符 ?. 是ES2020&#xff08;即ES11&#xff09;中推出的新语法&#xff0c;允许我们不需要校验当前属…

imgui开发笔记<1>、ubuntu环境下快速应用

去这个链接下载imgui源码&#xff08;在此之前需要安装opengl glfw3等等&#xff09;&#xff1a; sudo apt-get install libglfw3-dev https://github.com/ocornut/imgui 我这里源码下载到/home/temp/imgui目录下&#xff0c;咱们不需要编译源码成库&#xff0c;而是直接将下…