网上的学习资料很多,但如果你学的知识不系统,只学表面知识,出现问题时没有深入调查,就很难真正提高自己的技能。
需要这套系统资料的朋友,请点击这里获取。
一个人可以走得快,但一群人可以走得更远。无论您是从事IT行业的老手,还是对IT行业感兴趣的新人,都请加入我们的圈子(技术交流、学习资源、职场抱怨、大公司内部推荐、面试辅导)来学习。让我们一起成长!
满足操作规范:例如,如果您的端点经常返回502错误,您应该考虑使用API来修复它们。可扩展性:如果您需要扩展端点以处理504 错误,您需要了解所涉及的微服务、最佳流程以及解决问题的方向(例如,GraphQL 的REST API)。
![](https://img-
blog.csdnimg.cn/img_convert/96f6a49606bb21d4e01a3282faa72f23.jpeg)
API操作流程图
安全:
新协议:如何处理阻止升级的防火墙、扫描仪和其他遗留工具?东西向(即不同后端应用程序和数据库之间,而不是我们通常所说的南北安全))缺乏好东西。监控网络内的通信。新的安全、网络或其他IT 组件合规性要求。
API 安全的重要性
如前所述,API 和API 安全密切相关。安全性较差的API 通常很容易暴露并容易受到黑客的攻击。由于它是一个API
它主要用于交换信息、连接服务和传输数据,因此数据泄露对企业来说代价非常高昂。
API 的各种认证方法
为防止API 被不当使用,您必须在授予查看或编辑API 资源的用户访问权限之前验证其真实身份。
1. 基于主机的身份验证
此过程对主机或服务器进行身份验证,并确保只有经过身份验证的用户才能访问服务器上部署的资源。启动该过程不需要钥匙或其他方式。然而,服务器必须具有实时验证登录密钥以进行控制的能力。
DNS欺骗、路由欺骗、IP欺骗等事件
基于主机的身份验证在过程和实现方面与RSA 不同。
非常相似。默认情况下,不需要设置任何参数。管理员可以通过为本地主机创建私钥或提取本地主机的公钥来执行基于主机的用户身份验证。
2. 基本认证
这是最简单的API 身份验证方案之一。此方法使用HTTP,因为客户端发送带有预构建标头的HTTP 请求。
用于请求和验证用户名和密码等凭据的协议和流程。此类检查往往发生在浏览器驱动的环境中。
大多数浏览器和服务器都支持,用于此类身份验证的凭据详细信息可以以明文形式或仅使用Base64 在网络上共享。
编码。除了能够在各种代理服务器上运行之外,您还可以授予对未托管在IIS 中的代理服务器的访问权限。
服务器上的资源。它缺乏加密保护,因此容易受到重放等攻击。
3.OAuth
OAuth 作为一种可定制的开放API 身份验证技术,通过验证用户身份和定义授权标准,使应用程序能够与服务器和存储API 进行交互。
当有人登录系统时,系统会请求令牌来验证用户的身份。为此,请求的个人或发起者必须将访问资源的请求转发到身份验证服务器。然后服务器根据验证结果接受或拒绝该请求。
OAuth 比其他流程更安全,使其成为许多用户的首选。 OAuth 的三个主要元素包括Google 等OAuth 提供商。
Facebook)、OAuth 客户端(指托管信息的网站/页面)和所有者(指请求访问的用户)。
4.OAuth 2.0
OAuth 2.0是OAuth的更新版本,是一种广泛使用的API访问管理协议。其功能包括但不限于使用HTTP 服务启动客户端应用程序。
API客户端访问。 GitHub 和Facebook 都在其重要HTTP 服务的身份验证代码中使用此协议,因此不需要用户凭据。
OAuth 2.0 的三个关键要素是拥有数据的用户、应用程序和API。
本身。该方法允许您在身份验证过程中使用各种资源轻松解析用户数据。它可以部署在Web、移动和基于桌面的应用程序和设备中,具体取决于您的验证目标。
5.SAML
安全断言标记语言(SAML) 是一种使用单点登录技术进行身份验证的标准化API。
过程。将根据用户提供的详细信息进行验证。只有验证完成后,用户才可以访问各种应用程序和资源。 SAML 2.0是目前常用的版本。它与
这些ID 非常相似,可以帮助评估用户的身份。
API 安全意味着什么?
API安全重点关注保护直接或间接暴露给用户的API,以及节流和速率限制、基于身份的安全分析等网络安全原则,以及以下关键安全控制概念:还包括。
![](https://img-
blog.csdnimg.cn/img_convert/0e16eb30154b839131af6c4dda7e44ae.jpeg)
![](https://img-
blog.csdnimg.cn/img_convert/7e8b3cfc54062baba753ec6c479e3d08.jpeg)
API 协议
API 有不同的格式和样式,以满足不同的需求。不同的用途也决定了API实现的安全性。
肥皂
简单对象访问协议(SOAP) 是一种基于XML 的消息传递和通信协议。协议可扩展
使用HTTP 为Web 服务提供数据传输。该协议允许您轻松地交换文件及其所有内容并远程调用程序。兼容CORB、DCOM、Java等工具。
它与RMI 等其他框架的不同之处在于,整个SOAP 消息都是用XML 编写的,并且与语言无关。
休息
作为基于HTTP 协议的Web 标准架构,REST 允许每个待处理的HTTP 请求使用四个动词(GET、POST、PUT 和)。
擦除。对于开发人员来说,RESTful 架构是理解API 功能和行为的最简单工具之一。不仅仅是启用API
这种架构易于维护和扩展,并且使内部和外部开发人员可以轻松访问API。
远程过程调用
gRPC 是一个开源的高性能框架,改进了旧的远程过程调用(RPC) 协议。使用HTTP/2
这种二进制帧传输协议简化了客户端和后端服务之间的通信和消息传递过程。
完全轻量级的gRPC,比JSON 快8 倍以上。缓冲区可以通过开源技术协议调用,并为结构化消息采用独立于平台的序列化格式。 API 内部
gRPC 允许开发人员识别需要调用的各个过程并评估参数值。
网络钩子
Webhooks 可以将自动生成的消息从一个应用程序发送到另一个应用程序。这意味着您可以在两个应用程序之间实时建立、发送和检索最新的通信。
由于Webhook 包含敏感信息并可以将其发送到第三方服务器,因此Webhook 可以执行基本的HTTP 身份验证或TLS。
身份验证以确保API 相关的安全实践。
网络套接字
WebSocket是一种双向通信协议,为客户端和服务器之间提供了成熟的双向通信通道,补充了HTTP协议的局限性。
应用程序客户端可以使用WebSocket 创建HTTP 连接请求并将其发送到服务器。初始通信连接建立后,客户端和服务器都可以使用当前的TCP/IP。
此连接根据底层消息传递框架协议发送数据和信息。
XML-RPC
XML-RPC 允许WordPress 和其他系统通过标准化的通信流程相互通信。使用HTTP 和XML 作为传输方法。
作为一个编码过程。其工作代码存储在位于网站根目录下的xmlrpc.php 文件中。 XML-RPC 作为WordPress 3.5 版本中的默认选项
这允许移动应用程序和基于Web 的WordPress 安装过程之间进行无缝交互。
但是,xmlrpc.php 可以与每个访问请求共享身份验证详细信息,从而增加了暴力破解和DDoS 攻击的可能性。为此,我们使用XML。
使用RPC API时,必须添加相关的安全实践。
JSON-RPC
对于外行来说,JSON-RPC 是一种超轻量级RPC 协议,可用于开发基于以太坊区块链的API。它正在使用
JSON(RFC4627)作为一种基础数据格式,具有解释和处理多种数据结构和规则的能力。该协议可以在同一个套接字上重复使用。
MQTT
MQTT 是OASIS 认可的消息传递协议,广泛用于物联网设备和工具开发中以实现HTTP。
信息交换的一种。它非常轻量级,允许开发人员同时扩展到数百万台设备。从API安全角度来看,MQTT
它不仅有助于加密消息,还可以轻松应用TLS 和身份验证。
AMQP
作为一种开放协议,高级消息队列协议
协议(AMQP)指定了消息提供者的工作流程。这可以应用于应用程序层来创建可互操作系统。由于该协议是用二进制实现的,因此它不仅支持各种面向消息的中间件通信,而且保证了消息的全面传递。
XMPP
XMPP 作为一组免费源技术
它可用于多方协作、即时消息、多方聊天、视频通话和轻量级中间件开发。它的四个主要组件包括PHP、MySQL、Apache 和Perl。
联合行动计划
CoAP是RFC 7252中定义的IETF标准,可作为标准化API安全协议来限制物联网设备上的应用。 CoAP可以支持路径,所以
由于LPWAN 可以进行通信,因此它非常适合保护简单的微控制器节点。 CoAP 运行在TCP/IP 层,使用UDP 作为底层传输协议。
云、本地和混合部署中的 API 安全
云服务、集成平台和API 网关等技术的进步使API 提供商能够通过多种方式保护其API。选择构建API 的技术堆栈类型可能会对保护产生影响。
API 有直接影响。例如,大型组织可能会使用多个具有自己的API 的应用程序。在集成不同应用程序的过程中,可能会创建不同的API。
孤岛的外观。这些岛屿经常存在安全风险。
![](https://img-
blog.csdnimg.cn/img_convert/23e880ff9d2fc32832073a43ea3b4a71.jpeg)
在异构生态系统中,跨API 孤岛的特定API 安全基础设施可以配置为sidecar、sideband。
代理嵌入在云和本地部署之间。这种安全配置具有高度可移植性,有助于面向未来的技术轻松传输或提取API。
API 安全层
API 安全层应该是多层的。每个级别都发挥其作用,提供最大程度的安全保护。
API 发现
API 安全的第一层是API 发现。毕竟,如果不了解目标和威胁,如何实施保护呢?如前所述,API 孤岛是阻止安全专业人员发现API 的最大问题。由于缺少
API 可见性。这直接干扰了API 访问权限的管理。
![](https://img-
blog.csdnimg.cn/img_convert/52cb8628cc9c3cb0c68156d8c2edad21.jpeg)
影子API 是API 可见性的第二大障碍。当API 作为应用程序的一部分进行开发时,它们通常只有开发团队的成员知道,而安全人员并不知道这种“影子”。
“API”的实现细节未知。
第三大障碍是API 版本控制。在软件应用程序的生命周期中,其API通常需要不断迭代。但是新版本的API
很多情况下,不可能立即全面替换旧版本。由于客户端应用程序版本不同,API版本较旧
根据向后兼容性要求,它必须保持运行一段时间。那么它会逐渐从开发团队的视野中消失或者被遗忘吗?这一切都悄然发生。
因此,API发现实际上是API提供者与攻击者之间的竞争。如果提供商能够在攻击者之前发现上述类型的API,
它从网关、负载均衡器和直接内联网络流量中提取API 流量元数据,并将其传递给专用引擎以生成有效的API 列表报告,该报告可与API 管理层中可用的API 进行比较。
这是一个比较目录。
API 安全的 OWASP 十大安全威胁
![](https://img-
blog.csdnimg.cn/img_convert/f2c117afca430f6463440b09e4667261.jpeg)
API1:2019 对象级授权缺陷
API 端点通常用于通过发现正在处理的对象的标识符来进行访问控制级别攻击。您必须验证客户提供的每条信息。
API2:2019 用户认证问题
攻击者经常利用捕获的令牌和验证系统中的执行缺陷来冒充合法用户并执行非法操作。
API3:2019 数据暴露过多
通过API调用和合法获取的数据,攻击者可以推断出特定项目的相关属性并过滤掉各种可操作的信息。
API4:2019 资源短缺及限流
API 通常不会对调用的数据设置任何流量或数量限制。这为攻击者提供了发起拒绝服务(DoS) 攻击或其他资源勒索攻击的机会。
API5:2019 功能级授权缺陷
有些API不完整,访问控制策略复杂,甚至存在授权缺陷。这使得攻击者能够获取其他用户可以通过函数调用调用的资源。
API6:2019 批量分配
以JSON方式向用户提供信息的模型通常会提供批量交付以提高效率。
无需根据特定权限列表进行合法属性筛选)。基于此,攻击者可以通过仔细阅读支持文档来推断对象属性并发现各种API。
删除端点或检测请求负载中的其他属性并篡改它们。
API7:2019 安全设置错误
安全配置错误通常是由不良的默认设计、随意的编排、开放的分布式存储、不匹配的HTTP 标头以及松散的跨源资产共享造成的。
共享、CORS)、包含敏感数据的长错误消息。
API8:2019 注射剂
攻击者的恶意信息可以欺骗输入检查、利用SQL 或NoSQL 缺陷、执行恶意命令或在未经适当验证的情况下检索信息。
API9:2019 资产管理不当
API 通常可以比常规Web 应用程序发现更多端点,因此保持支持文档的良好更新非常重要。对此,我们需要继续完善API。
使用相关表快速发现未记录的端点。
API10:2019 日志记录和监控不足
缺乏日志记录和检查以及事件响应能力差可能会使API 调用容易受到攻击。
渗透测试
开发者可以考虑使用Postman代理预先构建的API测试数据来直接与API通信。通过快速、迭代地定位API
渗透测试可以让您获得详细的报告,同时降低测试成本。
由于渗透测试需要熟悉目标API甚至整个系统,因此最好聘请熟练的安全团队或使用开源工具来模拟对API的攻击。
攻击。通过定期、持续的渗透测试,开发人员可以及时找到符合API保护级别的补救措施。
12 项 API 安全的优秀实践
从上面的讨论中,我们可以看出API安全对于以数据为中心的应用程序开发非常重要。描述不同类型和阶段的API 的安全最佳实践。
1.使用加密
为了防止破解攻击,您应该使用TLS加密协议,并对用于内部和外部通信的API进行端到端加密。
2.API认证
如前所述,身份验证可确保陌生人无法直接使用您的API。同时,您可以通过API 密钥或访问凭证来跟踪您的API。
资源调用。当然,这样的安全措施使得系统的实施变得更加困难。
3. 充分利用OAuth 和OpenID Connect
OAuth 和OpenID Connect 的组合处理API 的所有身份验证和/或授权。例如,在授权过程中,API
消费者和提供者都不直接执行授权操作。相反,OAuth 用作委托协议,为您的API 添加基本保护层。基于此,使用了OpenID Connect。
标准作为附加身份层,使用ID 令牌扩展OAuth2.0。
4.安全专家
当面对多种API 安全实践时,可能很难选择。此时,经验丰富的安全专业人员应该推荐合适的防病毒系统和/或ICAP(Internet
通过使用内容适应协议)服务器构建强大的API 安全态势。
5. 持续监控、审计和记录
俗话说,预防胜于补偿。您可以在API 设计之初设置用于监控和记录的指标,并在使用应用程序服务时通过适当的仪表板跟踪您的API。
确认交互并及时查看相关记录和错误信息。同时,后续调试和版本更新时记得同步所有API。
6. 仅分享有限的信息
请记住,通过API 共享的信息越少,API 本身带来的安全风险就越少。此外,错误消息应披露尽可能少的信息。
此外,使用IP 地址白名单和黑名单是限制对API 资源访问的好方法。确保授权人员或应用程序对API 的访问受到限制。
管理您的资源并将重要信息隐藏在您的界面上。
7. 限流和配额保护
为了有效防范DDoS攻击威胁,请根据您的后端系统、实际带宽和服务器能力,合理限制访问特定API的消息数量。
八、有效数据
服务器必须检查并验证所有收到的内容两次。新内容、大型数据集以及消费者共享的信息都需要验证。目前有JSON 和XML
验证是检查参数安全性的两种最广泛使用的工具。同时,还可以控制SQL注入、XML炸弹等事件。
9. 强大的基础设施
通过实施最新的安全网络技术、新服务器和负载平衡软件,您可以在基础设施级别确保API 的安全,并提高抵御大规模数据泄露的能力。
10.关注OWASP Top10
从上面的分析不难看出,OWASP列出和描述的前10个API漏洞威胁都是一些最常见的攻击影响方式。它适用于API 和网页。
各种漏洞的危害也很大。因此,必须提前做好代码级的防范工作。
11.使用API防火墙
为API 构建防火墙有两个好处:
它可用于执行基本的安全检查,例如检查消息大小、SQL 注入的可能性以及是否可以立即阻止攻击。它可以集成到您局域网内的现有保护系统中,共同改善您的整体安全状况。
哪个兄弟不知道你可以提前回答网络安全面试问题?我们整理了160多道网络安全面试题(金9银10),让你的网络安全面试脱颖而出,我花了一周的时间才完成。做吧。
工程师王兰一面试题及答案目前只对我哥有用。如果你能正确回答70%的问题,找到一份稳定的工作应该不是什么大问题。
对于工作1到3年想换工作的朋友来说也是一个不错的考虑!
【如何获取完整版在文末! ]
93 网络安全面试问题
![](https://img-
blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)
![](https://img-
blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)
![](https://img-
blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)
我就不一一截图了,因为内容太多了。
黑客学习资源推荐
最后给大家分享一套完整的网络安全学习资料,对所有想学习网络安全的人都有用。
对于刚接触网络安全的学生,我们创建了详细的学习和成长路线图。这可以说是最科学、最系统的学习路线。每个人都可以遵循这个大方向。
1零基础入门
学习路线
对于刚接触网络安全的学生,我们创建了详细的学习和成长路线图。这可以说是最科学、最系统的学习路线。每个人都可以遵循这个大方向。
![图片](https://img-
blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center)
路线对应学习视频
同时,还根据成长路线提供了每个部分的支持视频。
![图片-20231025112050764](https://img-
blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center)
网上的学习资料很多,但如果你学的知识不系统,只学表面知识,出现问题时没有深入调查,就很难真正提高自己的技能。
需要这套系统资料的朋友,请点击这里获取。
一个人可以走得快,但一群人可以走得更远。无论您是从事IT行业的老手,还是对IT行业感兴趣的新人,都请加入我们的圈子(技术交流、学习资源、职场抱怨、大公司内部推荐、面试辅导)来学习。让我们一起成长!
学习网络安全技术只有三种方法:
第一个是申请网络安全专业,目前称为网络空间安全专业。主要专业课程有:程序设计、计算机组织原理、数据结构、操作系统原理、数据库系统、计算机网络、人工智能、自然语言处理等。社会计算、网络安全法规、网络安全、内容安全、数字取证、机器学习、多媒体技术、信息检索、舆情分析等。
第二种是自学。这意味着在互联网上寻找资源和教程,或者尝试结识并拥抱一些伟大的人。但这种方法非常耗时,而且没有学习计划。长期没有进步就很容易抑郁。
如果您有兴趣开始网络安全,请点击此处。 网络安全的主要优势:我们免费提供完整的入门级和高级共享的282G学习资源包。
第三种方法就是找培训。
接下来,我们将向您展示如何从头开始快速启动网络安全。
进入网络安全,应该先学习编程还是计算机基础?这是一个有争议的问题。有人建议先学习编程,但实际上,这些都是你需要学习的东西。这些在学习网络安全时非常重要。然而,对于没有基础知识或考虑转行的人来说,学习编程和计算机基础知识很困难,而且需要花费太多时间。
第一阶段:基础准备 4周~6周
这一步是任何准备进入安全行业的人必须学习的。有句话说:“地基不固,地动摇”。
第二阶段:web渗透
基础学习周期:1周至2周:
了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木有)
马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
#以上关于应用程序接口(API)安全的入门指南(非常详细)从零基础入门到精通,看完这一篇就够了_api入门教程的相关内容来源网络仅供参考,相关信息请以官方公告为准!
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93062.html