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

mac2024-12-22  47

0 前言

全是干货的技术殿堂

文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial 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,使因特网向接收数据的程序交付数据。

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

1.2 API安全的要素

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的数据是私密的。

常见的安全机制

注入攻击最为常见

登录安全

基于Token的身份认证

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

参考

《计算机网络-自顶向下学习法》https://www.owasp.org/index.php/Category:OWASP_Top_Ten_ProjectSpring cloud微服务安全实战 公众号-JavaEdge 认证博客专家 博客专家 慕课网认证作者 腾讯云+最佳作者 1.经历:19届双一流本科,曾在百度、携程、华为等大厂搬金砖2.涉猎领域:Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!3.开源社区荣誉:阿里云栖社区博客专家、腾讯云+社区2019年度最佳作者、慕课网认证作者、百万流量万粉博客专家,简书优秀创作者兼《程序员》专题管理员4.著作:在牛客网著有《Java源码面试解析指南》,目前已有上千人在学习,已助众多读者成功拿到满意offer~
最新回复(0)