当前位置: 首页 > news >正文

邳州建设银行招聘网站wordpress数据库备份到本地

邳州建设银行招聘网站,wordpress数据库备份到本地,wordpress文章调用函数,沈阳网站设计公司有哪些在另外一篇文章中对几种c语言的安全编码规范进行了汇总介绍,这里详细介绍misra c和cert c两种。 MISRA C 和 CERT C 是两种广泛使用的 C 语言编码规范,均以提高代码的安全性和可靠性为目标,但它们的侧重点、应用场景和规则设计存在显著差异。…

在这里插入图片描述

在另外一篇文章中对几种c语言的安全编码规范进行了汇总介绍,这里详细介绍misra c和cert c两种。
MISRA C 和 CERT C 是两种广泛使用的 C 语言编码规范,均以提高代码的安全性和可靠性为目标,但它们的侧重点、应用场景和规则设计存在显著差异。以下是两者的详细对比:


1. 背景与目标

规范MISRA CCERT C
制定机构汽车工业软件可靠性协会 (MISRA)美国计算机应急响应小组 (CERT)
主要目标提高嵌入式系统(尤其是汽车电子)的可靠性和安全性防止软件漏洞,提升代码安全性(通用领域)
适用领域汽车电子、航空航天、工业控制等嵌入式系统通用软件开发(尤其是安全敏感系统)

2. 规则分类与严格性

规范规则分类严格性
MISRA C分为三类:
- 强制 (Mandatory)
- 必需 (Required)
- 咨询 (Advisory)
规则严格,部分规则允许例外(需记录原因),但通常要求完全遵守。
CERT C分为两类:
- 建议 (Recommendations)
- 规则 (Rules)
规则灵活,允许根据风险分析选择性遵守,更关注安全漏洞的预防。

3. 核心规则对比

(1) 内存管理
规范规则示例解释
MISRA C禁止动态内存分配(如 malloc/free)。
(规则 21.1)
避免内存泄漏和碎片化,适用于资源受限的嵌入式系统。
CERT C允许动态内存,但需安全使用(如检查分配结果、避免释放后使用)。
(规则 MEM30-C)
关注内存操作的漏洞(如缓冲区溢出、释放后使用)。
(2) 类型安全
规范规则示例解释
MISRA C禁止隐式类型转换(如 intunsigned)。
(规则 10.1)
避免因类型转换导致的数据丢失或逻辑错误。
CERT C要求显式处理类型转换(如使用 static_cast)。
(规则 EXP36-C)
防止因类型不匹配引发的未定义行为。
(3) 未定义行为
规范规则示例解释
MISRA C禁止使用未定义行为(如修改字符串字面量)。
(规则 22.1)
确保代码的可移植性和确定性。
CERT C禁止依赖未定义行为(如除零操作)。
(规则 INT33-C)
防止因未定义行为导致的安全漏洞。
(4) 代码结构
规范规则示例解释
MISRA C禁止使用 goto 和递归。
(规则 15.1、16.2)
简化代码逻辑,提高可维护性。
CERT C允许 goto,但需避免复杂跳转逻辑。
(规则 MSC20-C)
更关注代码的可读性和漏洞风险,而非完全禁止特定语法。

4. 典型场景对比

示例 1:动态内存分配
// MISRA C 禁止以下代码:
int* ptr = (int*)malloc(sizeof(int)); // 违反规则 21.1// CERT C 允许但要求安全检查:
int* ptr = (int*)malloc(sizeof(int));
if (ptr == NULL) { /* 处理错误 */ } // 符合 MEM30-C
示例 2:隐式类型转换
// MISRA C 禁止隐式转换:
unsigned int a = 10;
int b = -5;
if (a > b) { /* 违反规则 10.1 */ }// CERT C 要求显式处理:
if (a > (unsigned int)b) { /* 符合 EXP36-C */ }

5. 工具支持

规范工具链
MISRA CPolyspace、LDRA、Coverity、Parasoft 等,通常集成在嵌入式开发工具链中。
CERT CClang Static Analyzer、CodeSonar、Coverity 等,更通用且支持开源工具。

6. 总结:异同对比

维度MISRA CCERT C共同点
核心目标嵌入式系统的可靠性和确定性通用软件的安全性和漏洞预防均关注代码安全性和可维护性
规则严格性严格,部分规则不可豁免灵活,允许基于风险的选择性遵守均要求静态分析工具支持
适用领域汽车电子、工业控制等嵌入式系统金融、医疗、网络等安全敏感系统均适用于高可靠性要求的场景
典型规则禁用动态内存、goto、递归安全使用内存、输入验证、并发安全禁止未定义行为和危险操作

7. 如何选择?

  • 选择 MISRA C
    适用于汽车电子、航空航天等嵌入式系统,需满足行业强制合规性要求(如 ISO 26262)。
  • 选择 CERT C
    适用于通用软件开发(如金融、医疗),需防范安全漏洞(如 CWE/SANS Top 25)。
  • 结合使用
    在安全关键系统中,可同时遵守 MISRA C(可靠性)和 CERT C(安全性),例如自动驾驶系统。

通过理解两者的差异,开发者可以根据项目需求选择合适的规范,或结合两者以实现更高的代码质量。

http://www.dtcms.com/a/584774.html

相关文章:

  • 提供手机网站建设企业做网站用的动漫资料
  • 网页设计建网站如何快速制作网页界面
  • seo网站营销推广全...重庆公司社保开户流程
  • 个人做电梯网站北京网站设计必看刻
  • 怎么免费增加网站流量吗深圳市企业服务体系平台建设方案
  • 厦门做英文网站住总第三开发建设有限公司网站
  • 重庆神态网站建设景观设计展板
  • 青海省交通建设管理局网站网站的主流趋势
  • 网页设计模板素材网站大全卖水果网站建设的策划书
  • 什么公司做网站会提供源代码电脑如何下载网页视频文件
  • 培训报名成都做seo网站公司
  • 宁波网站制作 收费标准营销网站定制的优势
  • 织梦做的网站被黑了正在进入一站式服务平台
  • 制作企业网站页面实训项目企业电子商务网站开发数据库设计
  • 企业网站制作 厦门宿迁网站seo
  • 未来做哪些网站能致富高级ppt模板免费下载
  • 做海报兼职网站wordpress编辑器代码
  • 电子商务网站建设包括哪些内容开发个直播app软件多少钱
  • 我想注册一个网站怎么注册哦咪咖网站建设
  • 江门市蓬江区最新发布湖南优化推广
  • 网站建设的基本要素南宁制作企业服装
  • 苏州h5网站建设价钱网站域名被注销
  • 临平做网站电话什么是网络营销推广三板斧
  • 做网站 给图片加链接网站换关键词
  • 深圳网站建设设计seo教程优化
  • 泰和县建设局网站惠州seo按天计费
  • 郑州公司建站搭建wordpress左图右字
  • WordPress添加QQ咨询seo发帖工具
  • 潍坊网站建设优化推广阿里云建设网站要什么
  • 代做预算网站合肥做公司网站一般多少钱