首页 > 其他分享 >编码开发如何开展API安全实现

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

时间:2022-12-03 20:00:15浏览次数:43  
标签:编码 漏洞 静态 检测 安全 API 开展 检测工具

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

1、安全编码培训

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

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

2、安全编码

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

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

3、静态检测

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

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

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

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

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

标签:编码,漏洞,静态,检测,安全,API,开展,检测工具
From: https://blog.51cto.com/key3feng/5908643

相关文章

  • 3:Throwable-Java API 实战
    (目录)1.异常的介绍Throwable有两个子类1.错误Error不常见基本上不能解决尽量避免2.异常Exception常见可以定位,通过修改代码解决不是编译失败问题,代码语法......
  • 一文教会你如何在内网搭建一套属于自己小组的在线 API 文档?
    Hello,大家好,我是阿粉,对接文档是每个开发人员不可避免都要写的,友好的文档可以大大的提升工作效率。阿粉最近将项目的文档基于Gitbook和Gitlab的Webhook功能的在内网......
  • ASP .NET Core Api使用过滤器
    Asp.netwebapi为我们提供的ActionFilterAttribute拦截器,通过重写OnActionExecuting,来拦截action的请求消息,当执行OnActionExecuting完成以后才真正进入请求的action......
  • ASP.NET Web API Demo OwinSelfHost 自宿主 Swagger Swashbuckle 在线文档
    新建WebAPI工程 选Empty,勾选WebAPI,不要选择WebAPI,那样会把MVC勾上,这里不需要MVCWebAPI工程属性 XML文件用于生成在线文档  新建Windows服务作为WebAPI的......
  • Jenkins API 返回403错误
    Jenkins 版本:2.346.1接口调用报403,研究了一下发现了是jenkins的CSRF机制导致的,但是由于公司所用的jenkins版本较高,默认不支持关闭CSRF,所以需要在jenkins控制台中手动关......
  • Java编码小技巧
    你在写一个方法的时候,例如传入两个数组,而你要写的方法代码块又恰好有一种判断方式会导致你要写两个相同代码块,你就可以自己调用自己,并把传参顺序换一下publicint......
  • ASP.NET Web API的Controller是如何被创建的?
    WebAPI调用请求的目标是定义在某个HttpController类型中的某个Action方法,所以消息处理管道最终需要激活目标HttpController对象。调用请求的URI会携带目标HttpController的......
  • P3049 [USACO12MAR]Landscaping S
    这篇博客我要单独写!思想:贪心的把到当前位置先补齐假设:i,j,k,p是位置i  j  k  p少 多 少  多-------------------------------------------------......
  • window.ethereum API介绍
    MetaMask会向网页注入一个全局的API变量window.ethereum,出于历史遗留原因,这个全局API变量也可以使用window.web3.currentProvider来访问。该API允许网站请求用户登录,可以......
  • 个人微信api
    E云是一套完整的的第三方服务平台,包含微信API服务、企微API服务、SCRM系统定制、企微系统定制、服务类软件定制等模块,本文档主要讲述个微API服务相关,以下简称API,它能处理......