SpringCloud安全实战(一)-API及其安全机制

简介: SpringCloud安全实战(一)-API及其安全机制

0 前言

全是干货的技术殿堂

https://github.com/Wasabi1234/Java-Interview-Tutorial

1 API安全

1.1 何为API?

与因特网相连的端系统提供了一个应用程序接口(英语:Application Programming Interface,缩写:API;又称为应用程序编程接口)是软件系统不同组成部分衔接的约定。

API规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的地软件交付数据的方式。

比方说:Alice使用邮政服务向Bob发一封信,邮政服务要求Alice将信放进信封中;在信封的中央写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将信封丢进邮箱里;邮政服务有自己的“邮政服务API”或一套规则,Alice必须这么遵循,邮政服务才能把信寄给Bob;同理,因特网也有一个发送数据的程序必须遵循的API,使因特网向接收数据的程序交付数据。


由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。

13.png

1.2 API安全的要素

15.png

1.3 API安全的目标

  • 机密性( Confientiality )。确保信息只被预期的读者访问
  • 完整性( Integrity )。防止未授权的创建,修改和删除
  • 可用性( Availability )。当用户需要访问API时, API总是可用的

1.4 常见的API风险

  • Spoofing :欺骗。伪装成系统管理员
  • Tampering :干预。将不希望被修改的数据、消息或设置改掉
  • Repudiation :否认。拒绝承认做过的事
  • Information disclosure :信息泄露。将你希望保密的信息披露出来
  • Denial of service :拒绝服务。阻止用户访问信息和服务
  • Elevation of privilege :越权。做了你不希望他能做的事。

风险与安全机制的对应关系

认证: (欺骗)。确保你的用户或客户端真的是他(它)们自己

授权:(信息泄漏)/(干预)/(越权)

确保每个针对API的访问都是经过授权的

审计: (否认)。确保所有的操作都被记录,以便追溯和监控

流控: (拒绝服务)。防止用户请求淹没你的API。

加密: (信息泄漏)。确保出入API的数据是私密的。

常见的安全机制

16.png

注入攻击最为常见

17.png

登录安全

基于Token的身份认证

18.png

Java最常见实现方式基于cookie和session实现

19.png

参考

目录
相关文章
|
1天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
22 3
|
4天前
|
JSON BI API
商城上货API接口的实战案例
在商城上货过程中,API接口扮演着至关重要的角色。以下是对商城上货API接口的实战分析,涵盖其主要功能、类型、安全性以及实战案例等方面。
|
1天前
|
XML 数据可视化 API
商品详情数据实战案例,API接口系列
淘宝商品详情数据在电商领域具有广泛的应用价值,而淘宝商品详情API接口则为开发者提供了获取这些数据的重要途径。通过合理利用这些接口和数据,可以提升业务效率、优化用户体验,为电商行业的发展注入新的活力。
|
6天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
17 1
|
11天前
|
存储 JSON API
淘宝API接口实战:高效获取商品标题、分类及店铺名称
在淘宝API接口实战中,通过以下步骤高效获取商品标题、分类及店铺名称:1. 准备工作:了解淘宝开放平台文档,注册开发者账号,选择开发语言和工具。2. 获取API访问权限:申请相应权限,提供应用场景说明。3. 调用API接口:构建HTTP请求,提供必要参数。4. 解析响应数据:提取JSON数据中的所需信息。5. 数据处理和存储:进一步处理并存储数据。6. 注意事项:遵守使用规范,注意调用频率和数据安全。示例代码使用Python调用淘宝API。
|
27天前
|
前端开发 API
Context API 实战应用
【10月更文挑战第8天】在 React 应用开发中,状态管理至关重要。本文介绍了 `Context API` 的基础概念、基本用法,以及常见问题和易错点的解决方法。通过代码示例,详细讲解了如何在组件间高效共享状态,优化性能,处理嵌套 Context 和副作用。
13 1
|
28天前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
125 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
25天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
117 0
|
2月前
|
人工智能 安全 API
API应用安全风险倍增,F5助企业赢得关键安全挑战
API应用安全风险倍增,F5助企业赢得关键安全挑战
52 11
|
2月前
|
存储 前端开发 API
告别繁琐,拥抱简洁!Python RESTful API 设计实战,让 API 调用如丝般顺滑!
在 Web 开发的旅程中,设计一个高效、简洁且易于使用的 RESTful API 是至关重要的。今天,我想和大家分享一次我在 Python 中进行 RESTful API 设计的实战经历,希望能给大家带来一些启发。
36 3
下一篇
无影云桌面