五原则四实践,REST API安全性请谨记
云原生和微服务架构等技术的流行让API受到越来越大的重视。那么当应用程序开始上云,各项需求都可以通过云服务满足的情况下,应用程序,尤其基于云端API的应用程序的安全问题该如何解决?
表现层状态转移(REST,Representational State Transfer)这种软件架构风格最早可追溯到计算机科学家Roy Fielding于2000年发布的一篇博士论文。在此后多年里,REST API(有时也称为RESTful API)逐渐发展成为一种非常流行的API架构模型,多用于Web和移动应用,以及企业对企业应用和企业内部系统。
虽然很多实现也用了其他API方法(如SOAP、GraphQL和gRPC),但REST API因为易于实现而获得了最广泛的使用。REST API设计非常便于现代前端框架使用,因此成为Web应用、移动应用以及许多内部和企业间API实现的热门选择。
REST API安全性五大原则
尽管REST API能以高度安全和弹性的方式实施,但有些基本的API安全标准对任何实施都至关重要。
在REST API设计中构建安全性的五大原则是:
- 始终使用TLS加密
- 实施完善且可扩展的身份验证和授权模型
- 不要在URL中包含敏感信息
- 严格定义允许的RESTful API请求和响应
- 实施持续的API发现功能
始终使用TLS加密
与其他类型的敏感HTTP流量一样,对RESTful API使用TLS可以确保API消费者与API端点间的所有通信都经过加密。这对于REST API安全和Web应用程序安全同样重要,因为由此产生的HTTP流量包括敏感的身份验证详细信息,如密码、API密钥或令牌。
实施完善且可扩展的身份验证和授权模型
可以使用许多不同技术来管理对REST API的访问。最常用的技术是API密钥和安全令牌。但密钥和令牌的管理可能是一种相当复杂的工作。
这往往会导致无意中出现REST API安全漏洞。通过与兼容OAuth 2.0的身份管理提供商集成来进行身份验证和发放访问令牌,可降低这种风险。集中式API网关也可用于规范和保护REST API安全方法。
不要在URL中包含敏感信息
在URL中包含敏感信息(包括用户凭据、密钥或令牌),这是一种常见的REST API设计缺陷。即便在使用TLS的情况下,攻击者也很容易发现这些信息。API请求数据路径上的各种服务器和网络设备也会经常记录URL,如果URL中包含敏感信息,就会导致进一步的数据泄漏。
严格定义允许的RESTful API请求和响应
我们需要假定攻击者会试图以恶意或无意的方式使用API。因此,切勿默认信任RESTful API请求。要采取的最重要步骤之一是:验证任何参数或对象的格式、长度和类型等属性。
我们还应该严格管理REST API可提供的响应类型。例如,响应应仅限于明确允许的内容类型,如GET、PUT和POST。
实施持续的API发现功能
即便是遵守REST API安全最佳实践的企业,也可能会被正常流程之外实施的影子API或尚未退役的遗留基础设施中被遗忘的僵尸API打个措手不及。因此,实施持续的企业级API发现功能至关重要。
保障为所有API维持完整清单的最佳方法是从所有可用的API活动信息源收集数据,这些信息源包括:
- API网关
- 内容交付网络
- 云提供商日志
- 日志管理系统
- 编排工具
分析这些数据以获取API活动的证据,可确保安全团队了解整个企业使用的所有API。发现任何意外的REST API后,都可以通过应用适当的REST API最佳实践来停止使用,或将其纳入正式清单。
四大高级REST API安全最佳实践
在REST API设计中实施一套基础安全标准是必不可少的第一步,但仅靠这些步骤并不能保证应用程序完全安全。许多攻击者已经开发出了规避REST API基本安全措施的高级技术。毕竟,并不是每次REST API安全攻击都以攻破Web应用程序基础架构为目。
在许多情况下,攻击者只是希望以非故意的方式使用API功能来访问敏感数据并获得竞争优势。这些活动可能来自可信来源,如已获准访问REST API的客户或合作伙伴。凭证、密钥和令牌也可能被窃取或劫持,从而使攻击者在我们的基线REST API安全标准之外推进类似活动。
为了获得更完善的保护,防止这些更复杂的API滥用方式,我们可以使用以下四种高级REST API安全最佳实践:
- 使用云收集大量REST API安全数据集
- 将行为分析应用于REST API数据
- 为开发和运营团队提供有关REST API使用情况的见解
- 开展积极主动的REST API威胁猎捕活动
使用云收集大量REST API安全数据集
许多第一代API安全技术都是在企业内部运行的。因此它们的作用仅限于分析非常短的活动窗口,之后API数据就会被丢弃。这种方式的效果极为有限,因为许多类型的API滥用活动都是在数周甚至数月内以低速缓慢的方式进行的。将API活动数据发送到云端,就能积累获得API详细信息所需规模的数据,存储时间跨度可达一个月或更长。这为更复杂的分析技术打开了大门。
将行为分析应用于REST API数据
一旦掌握了大量有意义的REST API活动信息,我们还可以利用云计算的计算规模来执行行为分析。增强REST API安全策略的第一种方法是识别相关实体,从而获得更多背景信息。实体可能包括用户以及有意义的业务流程。
有了这些上下文,我们就可以确定API的正常使用模式。在此基础上,可以进一步分析以检测异常。这种类型的异常检测是发现滥用的最佳方法,尤其是当滥用来自经过验证的用户时。
为开发和运营团队提供有关REST API使用情况的见解
保护企业免受REST API安全漏洞侵害的最佳方法之一是完全避免这些漏洞。与开发人员和运营人员共享有关RESTful API使用和滥用情况的信息,将有助于企业在开发和实施流程的早期就采用更好的REST API安全实践,实现“向左转”。
开展积极主动的REST API威胁猎捕活动
不要等到REST API滥用升级为严重安全事件时才采取行动。积极主动地调查REST API使用情况并查找滥用企图(即使没有成功),这有助于我们发现REST API安全实践中的薄弱环节。
检查API使用活动也是发现REST API安全漏洞的有效方法。在攻击者利用这些漏洞之前找到并消除它们,是增强REST API安全态势的最有效方法之一。
总结
Akamai已帮助大量全球知名的企业实施了基础和高级REST API安全最佳实践。从API发现到行为分析,再到托管的威胁猎捕服务,我们的方法将帮您加快REST API安全工作的步伐。
相关文章:
五原则四实践,REST API安全性请谨记
云原生和微服务架构等技术的流行让API受到越来越大的重视。那么当应用程序开始上云,各项需求都可以通过云服务满足的情况下,应用程序,尤其基于云端API的应用程序的安全问题该如何解决? 表现层状态转移(REST࿰…...
1390:食物链【NOI2001】
【解题思路】 并查集把三类动物划分成三个域,同类域(1-n)、捕食域〈n1-2n)、天敌域(2n1-3n)。把x放入同类域,xn放入其捕食域,x2n放入其天敌域。给在其他集合内安插两个“虚拟代表”…...
ICMAN液位检测——WS003B管道检测模组
ICMAN液位检测之WS003B管道检测模组 体积小,成本低, 液位检测精度高, 有水输出低电平无水高电平, 适用于饮水机、咖啡机、扫地机器人、洗地机等, 有需要朋友快联系我吧! AWE展会不容错过的ICMAN检测模组…...
YOLOv10使用教程及导读
首先推荐一下我的YOLOv8/v10项目,仅需一个v8的钱(69.9),付费进群,即可获取v8/v10的全部改进,欢迎进群。 1 YOLOv10简介 论文链接:https://arxiv.org/pdf/2405.14458 官方代码链接:ht…...
AIGC 在前端流式获取内容SSE
AIGC 在前端流式获取内容SSE 简介具体实现 简介 在 OpenAI 的 API 中,SSE 通常用于实现实时数据传输。例如,在聊天模型(如 ChatGPT)中,使用 SSE 可以让客户端实时接收到生成的对话内容,而不需要等待整个响…...
深度解析安全阀检测技术:方法与挑战
在工业生产中,安全阀作为防止压力容器和管道发生过压事故的关键部件,其性能和可靠性对于保证设备安全和人员安全具有重要意义。随着工业化进程的不断深入,对安全阀的检测和维护工作也日益受到重视。 接下来,佰德旨在探讨安全阀检…...
网络安全--安全设备(一)Dos
安全设备--Dos 一、Dos 是什么二、DDos是什么三、Dos&DDos的区别四、产品防御Dos&DDos方式五、常见的DDoS攻击类型包括但不限于以下几种: 一、Dos 是什么 Dos(拒绝服务攻击,Denial-of-Service),是一种试图通过压倒网络或服务器来阻止合法用户访…...
<电力行业> - 《第3课:国家电网公司100条名词解释》
序号术语解 释1十不干一、无票的不干;二、工作任务、危险点不清楚的不干;三、危险点控制措施未落实的不干;四、超出作业范围未经审批的不干;五、未在接地保护范围内的不干;六、现场安全措施布置不到位、安全工器具不合…...
“论数据访问层设计技术及其应用”写作框架,系统架构设计师
论文真题 在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清晰,便于提高复用能力和产品维护能力。一种常见的层次划分模…...
Docker部署前端,动态配置后端地址
本文介绍了使用Docker环境变量动态配置nginx。采用的是通过docker run -e xxxxxxx先往容器注入环境变量,然后进一步通过envsubst指令将环境变量写入到conf文件中,实现动态配置文件内容。 背景 前后端分离的架构下,经常会用到nginx反向代理来…...
k8s强制删除一个 Pod
在Kubernetes(K8s)中强制删除一个Pod,通常是因为Pod处于错误状态或无法正常终止。以下是强制删除Pod的步骤和相关信息: ### 步骤一:获取Pod的名称 首先,你需要知道要删除的Pod的名称。可以使用kubectl get …...
docker的安装配置及使用
一.Docker的由来 Docker 最初是 dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目。 2010年的专门做PAAS平台,但是到了2013年的时候,像亚马逊,微软,Google都开始做PAAS平台。 到了2013年,公司资金链…...
初阶 《操作符详解》 10. 逗号表达式
10. 逗号表达式 exp1, exp2, exp3, …expN 注: 1.逗号表达式,就是用逗号隔开的多个表达式 2.逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果 代码1 #include <stdio.h> int main() {int a 1;int b…...
【区分vue2和vue3下的element UI Loading 加载组件,分别详细介绍属性,事件,方法如何使用,并举例】
首先,需要澄清的是,Element UI 是为 Vue 2 设计的,而 Element Plus 是 Element UI 的 Vue 3 版本。在 Element UI 和 Element Plus 中,并没有一个直接名为 “Loading 加载” 的独立组件。相反,加载效果通常是通过指令、…...
数据结构:栈(stack)详解 c++信息学奥赛基础知识讲解
目录 一、栈的定义 二、栈的操作 三、代码实操 四、栈的实现 1、string实现stack 2、vector实现stack 3、deque实现栈 一、栈的定义 stack是一个比较简单易用的数据结构,stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中ÿ…...
电商返利系统的高并发处理与性能优化
电商返利系统的高并发处理与性能优化 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在电子商务平台中,返利系统是吸引用户和提升用户粘性的重要功…...
NPM 常用命令
NPM 常用命令 NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具,它不仅可以管理 Node.js 项目的依赖,还提供了丰富的命令来管理和发布你的代码。本文将从不同角度,深入浅出地介绍 NPM 的常用命令…...
C++进修——C++核心编程
内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制编码,由操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值ÿ…...
【信息系统项目管理师知识点速记】项目文档管理
19.3 项目文档管理 信息系统相关信息(文档)是指某种数据媒体和其中所记录的数据。文档具有永久性,并可以由人或机器阅读,通常用于描述人工可读的内容。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息(包…...
服务器硬件,raid配置
文章目录 服务器硬件RAID磁盘阵列RAID 0RAID 1RAID 5RAID 6RAID 10 阵列卡,阵列卡的缓存阵列卡阵列卡的缓存 软RAID磁盘阵列RAID阵列的管理及设备恢复mdadm 服务器硬件 处理器(CPU):服务器的核心组件,负责执行计算和指令操作。服务器常使用多…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
