编码开发如何开展 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调用、是否可以支持同时多个用户并发等。


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

相关文章
|
7天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
27 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
1月前
|
缓存 安全 测试技术
构建高效的RESTful API:后端开发的实践指南
【2月更文挑战第17天】在数字化转型的浪潮中,RESTful API已成为连接不同软件组件、实现数据交互的核心桥梁。本文将深入探讨如何构建一个高效、可扩展且安全的RESTful API,涉及设计原则、开发流程以及性能优化等关键方面。我们将透过实际案例,展示如何在保证简洁性和灵活性的同时,满足日益增长的业务需求和技术挑战。
|
3天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
7 0
|
3天前
|
缓存 人工智能 API
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
8 0
|
14天前
|
小程序 前端开发 API
小程序全栈开发中的RESTful API设计
【4月更文挑战第12天】本文探讨了小程序全栈开发中的RESTful API设计,旨在帮助开发者理解和掌握相关技术。RESTful API基于REST架构风格,利用HTTP协议进行数据交互,遵循URI、客户端-服务器架构、无状态通信、标准HTTP方法和资源表述等原则。在小程序开发中,通过资源建模、设计API接口、定义资源表述及实现接口,实现前后端高效分离,提升开发效率和代码质量。小程序前端利用微信API与后端交互,确保数据流通。掌握这些实践将优化小程序全栈开发。
|
24天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
29天前
|
机器学习/深度学习 前端开发 API
实现以图搜货功能,淘宝API开发实战分享
实现以图搜货功能,淘宝API开发实战分享
24 0
|
1月前
|
缓存 前端开发 API
构建高效可扩展的RESTful API:后端开发的最佳实践
【2月更文挑战第30天】 在现代Web应用和服务端架构中,RESTful API已成为连接前端与后端、实现服务间通信的重要接口。本文将探讨构建一个高效且可扩展的RESTful API的关键步骤和最佳实践,包括设计原则、性能优化、安全性考虑以及错误处理机制。通过这些实践,开发者可以确保API的健壮性、易用性和未来的可维护性。
|
1月前
|
存储 数据采集 安全
|
18天前
|
缓存 前端开发 API
API接口封装系列
API(Application Programming Interface)接口封装是将系统内部的功能封装成可复用的程序接口并向外部提供,以便其他系统调用和使用这些功能,通过这种方式实现系统之间的通信和协作。下面将介绍API接口封装的一些关键步骤和注意事项。