网络安全等级保护:上下文中的API安全性

news2024/9/17 9:00:21

网络安全等级保护:什么是API安全?

上下文中的API安全性

应用程序编程接口安全性位于多个安全学科的交叉点,如图所示。其中最重要的是以下三个领域:

1.信息安全(InfoSec)涉及在信息的整个生命周期中保护信息,防止其创建、存储、传输、备份和最终销毁。(这块内容讨论在NetWork的定义之下)

2.网络安全既保护网络上流动的数据,又防止对网络本身进行未经授权的访问。

3.应用程序安全(AppSec)确保软件系统的设计和构建能够抵御攻击和误用。

图片

图API安全位于三个安全领域的交叉点:信息安全、网络安全和应用安全。

这三个主题中的每一个主题都已经有很多书了,因此我们不会深入讨论它们中的每一个。如图所示,您无需学习这些主题的各个方面即可了解如何构建安全的API。相反,将从每个领域中挑选最关键的领域并将它们混合在一起,以便全面了解它们如何应用于保护API。

通过信息安全,将学习如何:

·定义安全目标并识别威胁

·使用访问控制技术保护API

·使用应用加密技术保护信息

定义密码学是一门保护信息的科学,以便两个或更多人可以进行交流,而他们的信息不会被其他任何人阅读或篡改。它还可用于保护写入磁盘的信息。

从网络安全中,将学到:

·用于保护互联网上的API的基本基础设施,包括防火墙、负载均衡器和反向代理,以及它们在保护API方面发挥的作用

·使用安全通信协议(例如HTTPS)来保护传入或传出API的数据(传输安全)

定义HTTPS是通过安全连接运行的HTTP的名称。虽然正常的HTTP请求和响应对于任何观察网络流量的人都是可见的,但HTTPS消息是隐藏的并受到以下保护:传输层安全(TLS,也称为 SSL)。后期,我们也将根据搜集的资料简单探讨API启用HTTPS。

最后,从应用程序安全性中,将学到:

·安全编码技术

·常见的软件安全漏洞

·如何存储和管理用于访问API的系统和用户凭据

典型的API部署

一个API是由运行在服务器上的应用程序代码实现的;要么是应用程序服务器比如Java企业版(Java EE)或独立服务器。将这样的服务器直接暴露于互联网,甚至内部网的情况非常罕见。相反,对API的请求通常会先经过一个或多个附加网络服务,然后再到达API服务器,如下图所示。每个请求都会经过一个或多个防火墙,它在相对较低的级别检查网络流量并确保阻止任何意外流量。例如,如果您的API在端口 80(对于 HTTP)和 443(对于HTTPS)上处理请求,则防火墙将配置为阻止对任何其他端口的任何请求。负载均衡器然后将流量路由到适当的服务,并确保一台服务器不会因大量请求而过载,而其他服务器则闲置。最后是反向代理(或网关)通常放置在应用程序服务器前面,以执行计算量大的操作,例如处理 TLS 加密(称为 SSL 终止))并根据请求验证凭据。

定义SSL 终止1(或 SSL 卸载) 当来自客户端的 TLS连接由目标API服务器前面的负载均衡器或反向代理处理时发生。然后建立从代理到后端服务器的单独连接,该连接可以是未加密的(纯 HTTP)或加密为单独的连接。TLS 连接(称为 SSL 重新加密)。

除了这些基本要素之外,可能会遇到更多专业服务:

·API网关是一种专门的反向代理,可以使不同的API看起来就像是单个API。它们通常在微服务架构中使用,以简化向客户端提供的API。API网关通常还可以处理本书中讨论的API安全性的一些方面,例如身份验证或速率限制。

·AWeb应用程序防火墙(WAF) 在比传统防火墙更高的级别检查流量,可以检测和阻止针对HTTP Web服务的许多常见攻击。

·一个入侵侦测系统(入侵检测系统)或入侵防御系统(IPS) 监控内部网络内的流量。当它检测到可疑的活动模式时,它可以发出警报或主动尝试阻止可疑流量。

图片

对API服务器的请求

通常会首先通过其他几个服务。防火墙在TCP/IP 级别工作,仅允许与预期流量相匹配的流量进出网络。负载均衡器根据请求以及对每台服务器当前正在执行的工作量的了解,将请求路由到适当的内部服务。反向代理或API网关可以代表API服务器处理昂贵的任务,例如终止HTTPS连接或验证身份验证凭据。

在实践中,这些服务之间经常存在一些重叠。例如,许多负载均衡器还能够执行反向代理的任务,例如终止 TLS 连接,而许多反向代理还可以充当API网关。某些更专业的服务甚至可以处理您将在本书中学到的许多安全机制,并且让网关或反向代理至少处理其中一些任务已变得越来越普遍。这些组件的功能是有限的,API中不良的安全实践甚至可能会破坏最复杂的网关。配置不当的网关还会给您的网络带来新的风险。了解这些产品使用的基本安全机制将帮助您评估产品是否适合应用程序,以及它的优势和优势局限性是。

API 安全最佳实践 

实施访问控制

访问控制系统对于确保只有获得许可的用户或系统才能访问受保护的资源至关重要。在向第三方提供访问权限时,有效的控制尤为重要。

除了 OAuth 或多因素身份验证等强身份验证方法之外,组织还应使用防火墙或 API 网关来保护其 API。防火墙可用于通过检查传入流量并仅允许满足特定条件的流量通过来阻止对 API 的未经授权的访问。API 网关是位于 API 及其客户端之间的服务器,充当反向代理。它可用于实现身份验证、授权、速率限制和其他安全措施。

实施数据分类 

通过根据敏感度对数据进行分类,组织可以实施适当的安全控制,以确保只有经过授权的个人才能访问敏感数据。

例如,如果组织拥有允许访问客户数据的 API,则它可能会将此数据归类为敏感数据,并实施安全措施以确保只有授权个人才能访问该数据。这有助于防止未经授权访问敏感数据并保护客户的隐私。

验证参数

参数验证是验证传递给函数或方法的输入参数(也称为实参)是否具有正确类型并满足特定条件的过程。参数验证用于确保应用程序或系统仅处理有效和预期的输入,并防止处理恶意或格式错误的输入。

加密API请求和响应

加密有助于保护所传输数据的机密性和完整性。如果没有加密,能够拦截 API 与其客户端之间的通信的攻击者可能会查看或修改正在传输的数据(即中间人攻击)。加密 API 流量的常见方法是要求使用 HTTPS 和 SSL/TLS。

持续安全 

持续安全性涉及在 API 的生命周期内持续监控和提高 API 的安全性。这种方法有助于确保 API 的安全性并符合相关法规和标准,并可以帮助组织快速识别和解决潜在的安全漏洞或风险。

组织可以通过多种不同的方式为其API实现持续安全,包括:

  • 持续测试:定期测试API的安全性有助于识别潜在的漏洞并确保及时解决任何已识别的问题。这可能包括测试注入攻击、跨站点脚本和身份验证弱点等漏洞。

  • 持续监控:持续监控API的安全性有助于实时识别潜在的安全威胁,并采取适当的措施来防止或减轻这些威胁。这可以包括监视可疑活动,例如异常访问模式或尝试访问受限数据。

  • 持续培训:确保开发人员和其他利益相关者接受有关API安全的最新最佳实践的培训,有助于防止错误并确保API的安全。这可以包括安全编码实践、身份验证和授权以及数据保护等主题的培训。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kettle下载安装

环境说明 虚拟机:Win7;MySql8.0 主机:Win11;JDK1.8;Kettle 9.4(Pentaho Data Integration 9.4)(下载方式见文末) 安装说明 【1】解压后运行Spoon.bat 【2】将jar包 复…

vue2学习 -- 核心语法

文章目录 前置简介1. 模板语法2. 数据2.1 数据绑定2.2 el与data的两种写法2.3 MVVM模型2.4 Object.defineProperty2.5 Vue中的数据代理 3. 事件3.1 事件处理3.2 事件修饰符3.3 键盘事件 4. 计算属性5. 监视(侦听)属性5.1 书写形式5.2 深度监视5.3 简写形式5.4 计算属性和监听属…

一「骑」就LUCKY!凯迪拉氪强劲动力,带你一路顺畅,幸运随行!

好运,其实就是毫不费劲的完成心里所想的事情。简单来说,是不需要太多努力,就能得到比较大的回报。每个人都希望自己拥有好运气,但这就跟抽盲盒一样,可能穷极一生都享受不到。 所以,与其期待虚无缥缈的好运…

Java线程阻塞:原因

Java线程阻塞:原因 1. sleep()2. suspend() 和 resume()(不推荐)3. yield()4. wait() 和 notify()/notifyAll() 💖The Begin💖点点关注,收藏不迷路💖 线程阻塞是一个重要的概念,它决…

移动光猫(UNG853H)获取超级帐号和密码

1.查看光猫背部的登录地址及帐密码;比如我的光猫: http://192.168.1.1 User: user password: ****** 2.启动telnet服务,使用以下命令: http://192.168.1.1/webcmcc/telnet.html 3.使用telnet登录光猫,在CMD下执行&…

【WRF安装第二期(Ubuntu)】搭建WRF编译所需系统-系统环境检验

WRF安装第二期:搭建WRF编译所需系统-系统环境检验 0 升级和安装基础环境1 系统环境检验(System Environment Tests)1.1 检验和安装基础包1.1.1 安装指令1.1.2 检验指令 1.2 WRF安装的目录结构1.2.1 WRF系统环境测试 1.3 测试编译器&#xff0…

(40)温度传感器

文章目录 前言 1 设置 2 记录 3 参数说明 前言 ArduPilot 已经有许多可能的温度报告来源:电调,智能电池,电机 EFI,这些独立的传感器可以用来取代 ArduPilot 中已经存在的那些设备温度报告。它们也可以只是被记录下来。 ArduP…

智慧环卫可视化:科技赋能城市清洁管理

图扑智慧环卫可视化通过实时监控、数据分析和智能调度,提高环卫作业效率,优化资源配置,提升城市清洁水平,实现城市管理的精细化和现代化。

【p-export-excel】一个轻松实现Excel文件导出的JavaScript插件

p-export-excel(github:https://github.com/pbstar/p-export-excel)是一个功能强大的JavaScript插件,专门用于导出Excel文件。它支持xlsx和csv两种格式,且提供了丰富的配置选项,允许开发者根据实际需求进行…

SuperMap iDesktopXiClient3D for WebGL 基于确定性空间插值生成水体流场

目录 摘要1 原始数据解析2 数据空间插值2.1流场UVW0.dat文件转xlsx2.2生成流场点数据2.3生成U、V栅格数据2.4裁剪U、V栅格数据2.5生成零值棋盘网格2.6生成U、V棋盘栅格 3 棋盘栅格转棋盘点3.1U、V棋盘栅格矢量化3.2U、V字段追加3.3流场数据JSON标准解析3.3.1流场数据JSON范例3.…

Nacos配置到springboot快速入门(笔记)

本人学习中的简单笔记,本文写的极其不详细,慎看!!! Nacos 简介 Nacos 致力于帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及…

【RL】强化学习入门:从基础到应用

本篇文章是博主强化学习RL领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章强化学习: 强化学习…

ECRS标准工时分析软件:中小企业数字化转型的工时管理利器

在当今全球化竞争日益激烈的背景下,中小企业面临着前所未有的挑战与机遇。为了在市场中脱颖而出,实现可持续发展,数字化转型已成为不可逆转的趋势。然而,对于资源相对有限的中小企业而言,如何高效、精准地管理工时&…

昇思25天学习打卡营第9天|RNN实现情感分类

第十天的不小心把第九天的覆盖了。现在重新补上。 情感分类是自然语言处理中的经典任务,是典型的分类问题。输入一句话,然后去语义理解这句话是褒义贬义还是中性的。不同的情感语境下理解的大基调是不同的。 RRN情感分类也是一个分类模型,是…

【提问募集】向世界级软件开发大师“Bob 大叔”Robert C. Martin 提出你的疑虑!

函数式编程作为一种编程范式,其根源可以追溯到 20 世纪 30 年代,当时数学家们正在探索计算理论的基础。1936 年,阿隆佐丘奇提出了 λ 演算(Lambda Calculus),这是一种形式系统,用于表达函数抽象…

【EI会议征稿通知】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

重要信息 会议官网:www.icbase.org(查看详情) 中文主页:【往届会后3个月检索】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)_艾思科蓝_学术一站式服务平台 会议时间:2024年9月2…

【优秀python案例】基于Python的京东商城口红商品的爬虫与可视化的设计与实现

摘要:随着互联网的普及,网络购物已经成为了人们购物的首选,用户只需要在电商平台上进行自己喜欢的商品进行搜素,就可以得到成千上万条商品信息。而在购买商品时,商品价格就成为了用户的主要关注对象,而在一…

深入理解 go context

打个广告:欢迎关注我的微信公众号,在这里您将获取更全面、更新颖的文章! 原文链接:深入理解 go context 欢迎点赞关注 context 介绍 context 是 Go 语言中用于处理并发操作的一个重要概念。context也被称作上下文,主要…

vue基础知识总结(2)--- axios的使用

一.下载Vue3: 选择自己想要下载的项目文件夹,cmd回车打开命令栏,执行 : cnpm init vuelatest 然后等待一会就可以创建一个项目,并更改项目名: √ 请输入项目名称: ... vue-project 之后按照…

python做简单爬虫的一些常用组件

文章目录 前言requestjsonbs4 前言 最近一直在做零散的一次性的爬虫工作,基本都是用python开发的,整理一下python做小规模爬虫开发常用的一些工具类 request python最简单的发http请求的包,request.get和request.post就可以搞定绝大部分的…