编码开发如何开展 API 安全实现

简介: 【2月更文挑战第28天】

编码开发的相关技术,在安全实现层面,仍需要结合所选择的编程语言,考虑其安全编码过程。一般来说,安全实现的过程通常会分为以下三个步骤。

1、安全编码培训

指专门针对某种编程语言所易发的安全缺陷或高危函数所做的编码赋能培训,也可以作为安全培训活动中的一门课程来实施。


安全编码培训的内容通常依赖于开发应用程序或API所使用的编程语言,如果是Java语言,Spring Security官方文档是一个优质的资源,可以根据实际需要,将其中相关的章节摘抄出来,作为培训的案例。除此之外,各个企业内部的安全编码规范也是一个很好的培训资料。另一方面,每一个企业或团队,历史安全缺陷记录都是很好的参考资料,将排名靠前的安全编码案例进行分析、分享是安全编码培训很好的培训方案。案例分析时,对造成API漏洞的原因做详细剖析,以加深编码人员对漏洞原理的理解。

2、安全编码

指编码开发人员根据安全编码规范开展编码的过程。


很多企业或团队内部都有自己的编码规范或安全编码规范,但往往仅仅是规范文本,很难以在实施工作中执行,这样的安全编码规范实际上没什么用。一个好的安全编码规范实践其实是遵循PDCA循环的,除了编写规范文本并定期修订外,在编码过程中也要采用工具进行编码规则的检测,比如阿里的代码规则检测工具P3C、SonarQube的安全插件。通过编码规范检测或静态检测,将编码规范纳入日常编码的活动中进行闭环,才是安全编码规范真正要起到的作用。

3、静态检测

指对编码人员所提交的代码进行静态代码检测,以发现编码过程中的安全缺陷,并迭代改进的过程。


静态检测是安全编码中很重要的一环,尤其是在编码开发人员安全编码能力不足的情况下,静态检测从事后验证的视角,有效地保障编码实现的安全性。静态检测通常根据开发语言的不同会选择不同的工具,或者说,同一种静态检测工具,因开发语言的不同,检测效果会有比较大的差异。所以企业在采购静态检测工具时,需要结合企业使用的开发语言,选择合适的代码静态检测工具。


一般来说,选择代码静态检测工具时,主要的参考指标如下。

  • 支持的开发语言:虽然很多检测工具都宣称能扫描多种开发语言,但所支持的开发语言检测的效果到底怎么样,这需要企业自己去做横向比较。
  • 漏报率:通常使用含有已知漏洞的应用程序,比如WebGoat、DVWA之类的漏洞学习平台,来验证静态检测工具的漏报率。比如已知漏洞是1300个,实际扫描后只发现了75个,则漏报率为25%。
  • 误报率:是指在发现的漏洞中,不是漏洞而误报为漏洞的比例。比如报告出漏洞是100个,实际验证后发现了25个不是漏洞,则误报率为25%。
  • 运行环境与配置:是指静态检测工具运行的操作系统环境、机器配置、内存等,有的静态检测工具只允许运行在Windows环境下,有的静态检测工具则在Windows、Linux、UNIX下均可以;有的可以;与CI/CD集成,有的则不可以,这是在工具安装时需要考虑的。
  • 报告格式:是指检测结果所提供的展现形式,一般有HTML、Word、PDF、Excel格式等。
  • 报告内容:是指是否支持根据不同的漏洞等级或检测规则导出不同的报告结果数据。
  • 性价比或购买方式:是指付款和使用方式,比如同样的费用下使用期限是多久、维保多久、是否支持API调用、是否可以支持同时多个用户并发等。


从目前的静态检测实践来看,大多数企业在使用两种或两种以上的静态检测工具做交叉检测,以减低漏报率。

相关文章
|
2天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
15 3
如何使用Python开发API接口?
|
1天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
14 4
|
7天前
|
前端开发 关系型数据库 API
深入浅出后端开发——从零到一构建RESTful API
本文旨在为初学者提供一个关于后端开发的全面指南,特别是如何从零开始构建一个RESTful API。我们将探讨后端开发的基本概念、所需技术栈、以及通过实际案例展示如何设计和实现一个简单的RESTful API。无论你是完全的新手还是有一定编程基础的开发者,这篇文章都将为你提供实用的知识和技巧,帮助你在后端开发的道路上迈出坚实的一步。
|
9天前
|
缓存 负载均衡 安全
后端开发的艺术:构建高效、可扩展的API
在现代软件开发中,后端开发扮演着至关重要的角色。它不仅负责处理数据存储、业务逻辑和安全性,还需要提供高效、可扩展的API供前端和其他服务使用。本文将深入探讨后端开发的关键概念和技术,帮助读者了解如何构建高效、可扩展的API,并提供一些实用的建议和最佳实践。
|
8天前
|
缓存 负载均衡 测试技术
‌API开发的基础概念和作用‌
API(Application Programming Interface)是一组定义了软件组件之间交互规则的接口。它提供了一种标准化的方式,让不同的软件组件之间可以进行通信和交互。
|
8天前
|
缓存 API 网络架构
掌握现代API开发:GraphQL vs REST
【10月更文挑战第24天】本文深入探讨了现代API开发中两种主流技术——GraphQL和REST的设计理念、技术特点及实际开发中的对比分析。GraphQL通过声明式数据请求和强类型系统提供更高的灵活性和性能,而REST则以其无状态特性和成熟的生态系统见长。文章还讨论了两者在客户端-服务器交互、安全性和工具支持方面的优劣,帮助开发者根据项目需求做出明智选择。
|
9天前
|
关系型数据库 测试技术 API
探索后端开发:构建高效API的艺术
【10月更文挑战第25天】在数字化时代,后端开发不仅仅是编写代码那么简单。它是连接用户与数据的桥梁,是实现业务逻辑的基石。本文将深入探讨如何构建高效的API,从理解RESTful原则到选择合适的框架,再到处理数据库交互,每一步骤都是精心策划的舞蹈。我们将通过实际案例,揭示如何在保证性能和安全性的同时,提供流畅的用户体验。让我们一起走进后端开发的世界,发现那些隐藏在代码背后的智慧和创造力。
|
7天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
8天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
18天前
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。