安全测试国家标准解读——函数调用安全、异常处理安全、指针安全

news2024/9/22 7:04:44

下面的系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解,该标准是2020年4月28日,由国家市场监督管理总局、国家标准化管理委员会发布,2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理,大家感兴趣的话可以自己去下载下来学习一下,里面有一些最佳实践是比较好的。

本标准从程序安全和环境安全两个方面提出了提升应用安全性的编程最佳实践。其中,程序安全部分描述软件在资源使用、代码实现、安全功能方面的安全性规范,环境安全部分描述软件的安全管理配置规范。前面的文章为大家讲解了程序安全,本文我们针对代码安全的最后几部分函数调用安全、异常处理安全和指针安全进行解读。

【函数调用安全】
这部分都是规范性的问题,我们在开发之初就需要定义好,不要因为这些问题而产生一些安全漏洞。

1.确保函数能正确并安全的处理传入参数的数量、顺序、类型、值不满足预期的情况。


2.谨慎处理来自不可信数据源的格式化字符串,避免直接用于构造命令。


举一个例子,大家在写C、 C++语言的时候,输出格式会输出一些格式化的字符串,格式化的要求那块,不要来自不可信数据源,如果来自不可信数据源要进行验证,不要直接构造。


【异常处理安全】

1. 自行处理程序错误,并且不依赖于服务器配置。


2.避免在静态对象的构造器和线程存储周期内抛出异常。


3.异常处理时及时回收并释放系统资源


4.不在软件执行异常时暴露敏感信息:


(1)向用户展示通用的错误提示信息。


(2)在系统发生异常时禁止向用户暴露敏感信息包含但不限于:系统的详细信息、会话标志符、账号信息、调试或堆栈跟踪信息。


我们在做系统设计的时候,系统中的错误页面最好是做成统一的,出现问题后统一跳转我们提前做好的页面,不要直接暴露错误,像e.printStackTrace这种都是不允许的,因为这里面都有敏感信息。


例如直接报500错误,500错误中可能会直接出来一堆代码,包括数据库访问的一些语句都会出来,所以说这样是不安全的,这个也是要在设计之初就要做好考虑。


【指针安全】


这部分主要是针对C、C++语言,像一空指针之类的,我们就不详细展开说了。


1.在使用指针的过程中,确保指针的有效性。


2.确保指针类型的正确使用:


(1)明确指针类型的兼容性。


(2)不将非结构体类型指针强制转换为指向结构类型。


3.确保正确地使用指针运算:


(1)不要在非数组对象的指针上执行指针运算。


(2)避免使用指针的加减法来确定内存大小。

后面的文章会继续对《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》的其他部分进行解读,欢迎继续关注。

(本系列文章根据《优品软件培育计划》公益直播内容整理,可以私信我获取直播回放链接。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/819067.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DCDC下垂控制算法

在并联的DC/DC转换器系统中,下垂控制(Droop Control)是一种常见的方法,用以实现在不同模块之间的功率均衡。在下垂控制策略中,每一个转换器的输出电压会随着负载的增加而减小,这样能够保证所有的转换器都在…

CSS font-family 等宽字体

CSS font-family 等宽字体 font-family: "Lucida Console", Consolas, "Courier New", Courier, monospace; font-family: Courier New, Courier, Lucida Console, Consolas, monospace; font-family: Courier, Lucida Console, Consolas, Courier New,…

【数学建模】2023 深圳杯 东三省 数学建模 B题 :电子资源版权保护问题 (基于DCT的暗水印信息嵌入模型)

在文章末尾的公众号回复:深圳杯B题,获取完整内容。 本文的文本、公式、代码都是部分展示。 文章目录 一、题目二、思路 与 解答2.1 问题一2.11 LSB 方法测试2.12 LSB 方法建模 2.2 问题二2.3 问题三2.31 方法与步骤概述2.32 基于DCT的暗水印信息嵌入模型…

第八章 HL7 架构和可用工具 - 测试转换

文章目录 第八章 HL7 架构和可用工具 - 测试转换显示段地址显示字段地址批量消息 测试转换 第八章 HL7 架构和可用工具 - 测试转换 显示段地址 要显示段地址,请将光标悬停在阴影列中的段名称上。工具提示显示以下内容: 在虚拟属性路径中使用的段地址该…

CSS样式中颜色与颜色值的应用

使用CSS描绘页面样式时,颜色是其中不可或缺的,无论是对文本、背景还是边框、阴影,我们都写过无数代码用来增添颜色。而为了让网页的色彩表现更出色,我们很有必要完整梳理下CSS中的色彩。 要讲清楚CSS中的颜色,离不开颜…

windows下tomcat无故宕机,检测http或https服务,并自动重启Tomcat服务

一、问题描述及解决原理 把项目发布到windows服务器中,如tomcat工程不稳定,会有无故宕机的问题。如果通过程序无法解决,并且重启tomcat服务能够生效的话,可以做一个自动检测并重启的脚本。 脚本通过检测tomcat对应的工程链接&…

flink1.17.0 jdk11服务的可以启动,web端无法访问

在配置文件中增加如下配置: 当前linux的ip地址,[localhsot,0.0.0.0]无效 rest.bind-address: 192.168.1.21

机器学习十大经典算法

机器学习算法是计算机科学和人工智能领域的关键组成部分,它们用于从数据中学习模式并作出预测或做出决策。本文将为大家介绍十大经典机器学习算法,其中包括了线性回归、逻辑回归、支持向量机、朴素贝叶斯、决策树等算法,每种算法都在特定的领…

使用 Docker Compose 部署单机版 Redis:简单高效的数据缓存与存储

家人们啦!今天我们来介绍如何使用 docker-compose 部署单机版 Redis,这是一个简单高效的数据缓存与存储解决方案,广泛应用于Web应用、移动应用以及各类数据处理场景。我们过后几篇文章了将会介绍cluster和sentinel集群的部署。通过本文的指导…

使用css和js给按钮添加微交互的几种方式

使用css和js给按钮添加微交互的几种方式 在现实世界中,当我们轻弹或按下某些东西时,它们会发出咔嗒声,例如电灯开关。有些东西会亮起或发出蜂鸣声,这些响应都是“微交互”,让我们知道我们何时成功完成了某件事。在本文…

切片[::-1]解析列表list表示的“非负整数加1”

列表数位表示非负整数,熟练操作“满十进位”。 (本笔记适合熟练操作Python列表list的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅…

一文搞定Java NIO,以及ZipInputStream、ByteArrayInputStream各种奇葩流

目录 一、Channel1、FileChannel代码示例2、DatagramChannel代码示例3、SocketChannel 和 ServerSocketChannel代码示例 二、Buffer1、ByteBuffer示例代码2、CharBuffer示例代码3、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer 等示例代码 三、Selector1、S…

MTK system_server 卡死导致手机重启案例分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、MTK AEE Log分析工具二、AEE Log分析流程三、system_server 卡死案例分析及解决 本文主要针对 Exception Type: system_server_watchdog , system_…

激光雷达供不应求?产能过剩、毛利下滑、定点兑付风险凸显

激光雷达,已经供不应求? 以小鹏最新上市的G6车型为例,目前该车的Max版本在官网下订的交付时间为12周,原因之一就是激光雷达等核心零部件交付吃紧。 截图来自网络(晚点Auto公众号) 那么事实是否如此&#xf…

【Vue2.x源码系列05】异步更新及nextTick原理

vue 官网中是这样描述 nextTick 的 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,可以获取更新后的 DOM。 在学习 nextTick 是如何实现之前,我们要先了解下 JavaScript 的执行机制 JavaScript 执行机制 浏览器是多线程的&…

Kindling the Darkness: A Practical Low-light Image Enhancer论文阅读笔记

这是ACMMM2019的一篇有监督暗图增强的论文,KinD其网络结构如下图所示: 首先是一个分解网络分解出R和L分量,然后有Restoration-Net和Adjustment-Net分别去对R分量和L分量进一步处理,最终将处理好的R分量和L分量融合回去。这倒是很常…

简要介绍 | 航行家的视觉:理解Odometry, Relocalization和SLAM的区别与联系

注1:本文系“简要介绍”系列之一,仅从概念上对计算机视觉和机器人导航中的Odometry、Relocalization和SLAM进行非常简要的介绍,不适合用于深入和详细的了解。 航行家的视觉:理解Odometry, Relocalization和SLAM的区别与联系 Senso…

什么样台灯能保护眼睛?分享眼科医生推荐的台灯好物

很多时候,我们在挑选台灯时只关注了台灯的亮度是否足够,以为只要台灯够亮就不会伤眼睛。而实际上我们大多数视力的下降原因就与光有着非常大的关系,传统的白炽灯、荧光灯等等对我们这一辈造成的伤害就不多说了。如今条件好了,而LE…

高等数学教材啃书汇总难点(一)函数与极限

教材为理工科标配的同济大学第七版,本系列为一轮啃书,将必会的全部重难点悉数总结——尤其是各种晦涩的理论证明部分,考研数学一的选手,想冲击高分的话必须掌握。对于考研证明题部分,熟练掌握定义是必不可少的底层基础…

StoneDB亮相2023数据技术嘉年华:增强AP、升级TP、信创替换,让万千DBA用得更省心,企业用得更省钱

2023 年 4 月 8 日,第十二届『数据技术嘉年华』(DTC 2023) 在北京圆满举办。本届大会以“开源 融合 数智化 —— 引领数据技术发展,释放数据要素价值”为主题。大会汇聚众多优秀厂商、先进技术、卓越产品和优秀案例,来自数据领域的领军人物…