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

网络安全等级保护:什么是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.rhkb.cn/news/387311.html

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

相关文章

智能城市管理系统设计思路详解:集成InfluxDB、Grafana和MQTTx协议(代码示例)

引言 随着城市化进程的加快,城市管理面临越来越多的挑战。智能城市管理系统的出现,为城市的基础设施管理、资源优化和数据分析提供了现代化的解决方案。本文将详细介绍一个基于开源技术的智能城市管理系统,涵盖系统功能、技术实现、环境搭建…

【C++】选择结构- 嵌套if语句

嵌套if语句的语法格式&#xff1a; if(条件1) { if(条件1满足后判断是否满足此条件) {条件2满足后执行的操作} else {条件2不满足执行的操作} } 下面是一个实例 #include<iostream> using namespace std;int main4() {/*提示用户输入一个高考分数&#xff0c;根据分…

市面上的开放式耳机为什么很少?开放式耳机推荐分享

市面上开放式耳机少是有不少原因的。 首先&#xff0c;开放式耳机在隔音和防漏音方面存在挑战。对于很多用户来说&#xff0c;在公共场合使用耳机时&#xff0c;不希望声音外泄影响他人&#xff0c;也不希望外界声音过多干扰自己。而开放式耳机在这两点上较难做到平衡&#xf…

基于Spring boot + Vue的加油站系统

项目名称&#xff1a;加油站系统 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csdn地址&#xff1a;程序员云翼-CSDN博客 1.项目技术栈&#xff1a; 前后端分离的项目 后端&#xff1a;Springboot MybatisPlus 前端&#xff1a;Vue…

【网络协议】HTTP协议详解

文章目录 一、概念 二、简史 三、特点 四、工作流程 五、使用Wireshark抓TCP、http包 六、头域 6.1、请求信息&#xff1a; 6.2、请求方法 6.3、响应消息 6.4、响应头域 6.5、HTTP常见的请求头 6.6、HTTP常见的响应头 七、解决HTTP无状态的问题 7.1、通过Cookies保存状态信息 7…

Redis 缓存中间件

目录 概念 安装redis redis基本命令 给redis添加密码 基础数据类型 string类型 list列表类型 set创建&#xff08;一个键对应一个值&#xff09; set 创建数据 get 获取数据 keys * 展示所有的键 exists 判断键值是否存在 type 查看数据的类型 del 删除键 rename…

springboot集团门户网站--论文源码调试讲解

第2章 开发环境与技术 开发集团门户网站需要搭建编程的环境&#xff0c;也需要通过调查&#xff0c;对各个相关技术进行分析&#xff0c;选取适合本系统开发的技术与工具。 2.1 MySQL数据库 MySQL是一种具有安全系数、安全系数、混合开发性、高效化等特征的轻量关联数据库智…

sqli-labs(6-10)关通关讲解

sqli-labs(6-10)关通关讲解 Less-6 方法一&#xff1a;手工注入 1.判断闭合 http://localhost/sqli-labs/Less-6/?id1" //报错 http://localhost/sqli-labs/Less-6/?id1" -- //正常 http://localhost/sqli-labs/Less-6/?id1" and 11 -- http://localhos…

Python批量移除Word文档水印

Word文档被广泛用于各种正式与非正式的沟通场合。有时候这些文档中可能包含着不再需要的水印&#xff0c;比如早期的草稿标记、保密声明或是仅供预览的信息等。这些水印的存在可能会干扰文档的阅读体验&#xff0c;甚至在某些情况下导致信息传达的不准确或产生误解。移除Word文…

Canva收购Leonardo.ai,增强生成式AI技术能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

数据中台建设之数据汇聚与数据交换

目录 一、数据汇聚 1.1 概述 1.2 汇聚数据类型 1.2.1 结构化数据 1.2.2 半结构化数据 1.2.3 非结构化数据 1.3 汇聚数据模式 1.3.1 概述 1.3.2 离线 1.3.3 实时 1.4 汇聚数据方法 1.4.1 概述 1.4.2 ETL 1.4.3 ELT 1.5 汇聚数据工具 1.5.1 概述 1.5.2 Flink CDC…

AI多模态模型架构之输出映射器:Output Projector

〔探索AI的无限可能&#xff0c;微信关注“AIGCmagic”公众号&#xff0c;让AIGC科技点亮生活〕 本文作者&#xff1a;AIGCmagic社区 刘一手 前言 AI多模态大模型发展至今&#xff0c;每年都有非常优秀的工作产出&#xff0c;按照当前模型设计思路&#xff0c;多模态大模型的…

KVM虚拟化平台

一、概述 KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核&#xff0c;它依托 CPU 虚拟化指令集(如InteI-VT、AMD-V)实现高性能的虚拟化支持。由于与 Linux 内核高度整合&#xff0c;因此在性能、安全性、兼容性、稳定性上都有很好的表现。 二、KVM原理简介 广义的 KVM 实…

【CN】Argo 持续集成和交付(二)

7.25.通知 概述 Argo CD 通知持续监控 Argo CD 应用程序&#xff0c;并提供一种灵活的方式来通知用户应用程序状态的重要变化。使用灵活的触发器和模板机制&#xff0c;可以配置何时发送通知以及通知内容。Argo CD 通知包含有用的触发器和模板目录。因此&#xff0c;可以直接…

linux网络配置与管理

目录 前言 查看网络配置 查看网络接口地址&#xff1a;&#xff08;ifconfig&#xff09; 查看DNS地址&#xff08;cat /etc/resolv.conf&#xff09; 查看网关地址&#xff08;ip route&#xff09; 启用&#xff0c;禁用网卡&#xff08;ifup、ifdown&#xff09; 查看…

day17(nginx反向代理)

反向代理 安装nginx 1.26.1 平滑升级 负载均衡 1.nginx 反向代理配置 反向代理&#xff1a;⽤户直接访问反向代理服务器就可以获得⽬标服务器 &#xff08;后端服务器&#xff09;的资源。 反向代理效果&#xff1a;当访问200主机&#xff08;web1&#xff09;&#xff0c;&a…

DNS查询服务器的基本流程以及https的加密过程

DNS查询服务器的基本流程&#xff0c;能画出图更好&#xff0c;并说明为什么DNS查询为什么不直接从单一服务器查询ip&#xff0c;而是要经过多次查询&#xff0c;多次查询不会增加开销么&#xff08;即DNS多级查询的优点&#xff09;&#xff1f; 用户发起请求&#xff1a;用户…

量化、剪枝、蒸馏,这些大模型黑话到底说了些啥?

扎克伯格说&#xff0c;Llama3-8B还是太大了&#xff0c;不适合放到手机中&#xff0c;有什么办法&#xff1f; 量化、剪枝、蒸馏&#xff0c;如果你经常关注大语言模型&#xff0c;一定会看到这几个词&#xff0c;单看这几个字&#xff0c;我们很难理解它们都干了些什么&…

技术分享!国产ARM + FPGA的SDIO通信开发介绍!

SDIO总线介绍 SDIO(Secure Digital lnput and Output),即安全数字输入输出接口。SDIO总线协议是由SD协议演化而来,它主要是对SD协议进行了一些扩展。 SDIO总线主要是为SDIO卡提供一个高速的I/O能力,并伴随着较低的功耗。SDIO总线不但支持SDIO卡,而且还兼容SD内存卡。支持…

一文搞懂网络IO和java中的IO模型

目录 1.绪论 2.IO分类 3.用户空间和内核空间 4.同步阻塞IO 5.同步非阻塞IO 6.IO多路复用 6.1 基本原理 6.2 linux对IO多路复用的实现方式 6.3.1 select 1.实现原理 2.缺点 6.3.2 poll 1.实现原理 6.3.3 epoll 1.epoll数据结构 2.epoll的函数 3.epoll的优点 4…