安全测试方法介绍(上)静态源代码审查

news2024/11/24 15:38:01

软件开发完成之后,我们需要进行安全验证,验证我们的软件是不是符合安全要求。软件安全测试主要有以下几个方面:确定软件的安全特性实现是否与预期设计一致的过程;有关验证软件安全等级和识别潜在安全缺陷的过程;查找软件自身程序设计中存在的安全隐患,并检查;应用程序对非法侵入的防范能力。 

为什么需要软件安全测试?主要是因为传统测试仅考虑软件出错时的处理,没有考虑对软件的故意安全攻击,所以需要专业的软件安全测试。

在应用投产前,应由独立的安全团队对应用的安全性进行综合评估,一般会从两个层面进行开展,一方面是功能性安全测试,另一方面是对抗性安全测试。

安全主要测试方法主要有:静态源代码审查,这个在编码阶段就可以进行,这个阶段如果出现问题,修复起来成本也比较低。程序发布之后可以进行渗透测试。

先给大家介绍一下源代码审查。作为软件测试的基本方法,静态分析可以快速、准确定位到软件缺陷的源代码。能有效的提高软件的可靠性和安全性。

静态分析是指在编译理论的基础上,对程序的结构、语义做软件安全性方面的分析。

静态源代码审查可以通过人工和工具相结合的方式对源代码的安全性进行测试,可以识别、跟踪和修复源代码中技术上和逻辑上的缺陷,比如软件安全漏洞、质量缺陷问题和业务逻辑问题等。
静态代码审查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题。

静态源代码审查在某些行业是有些要求的,像金融银行业网上银行系统信息安全通用规范,会要求由第三方机构进行安全检测。

【源代码审查-人工审计】
人工审计部分内容的部分除了对工具扫描出来的问题进行审查,以下问题进行检查。
环境安全:第三方软件安全、开发环境安全、运行环境安全等。如中间件使用安全,是否使用最新版本的JDK,移动APP发布前是否使用混淆、签名、加固等保护方式等检查。
配置核查:对应用的配置方面进行全面检查,包括默认的安全配置、后台权限、运行账号、系统配置和运行环境等全面核查。
【反射型XSS攻击】
下图是我之前做过的一个截图,这是一个XSS的攻击,通过源代码审查可以把注入点定位出来,我们可以看到这是从请求中获取了一个字段,经过一个数据流返回到了用户这边。这是一个存储型的,从前段录入的一些信息,入库之后,再从库中取出来。


【XSS代码修复方式】
XSS攻击可以通过过滤器的方式规避,像Spring Boot里的过滤器。请求来的时候,先进过滤器,过滤之后,在进Servlet。
 


【SQL注入攻击】
下图是一个SQL注入攻击的例子,这是Mybatis的框架,我们可以看到框线中是用$符取了一个前端的参数,很容易造成SQL注入。

【SQL注入攻击修复方式】
Mybatis中建议用#的方式,这种方式会自动在参数两边加单引号,这样就能在一定程度上防止SQL注入。

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

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

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

相关文章

采集发布到WordPress网址(OneNav主题-WordPress主题)

WordPress系统的一导航主题(OneNav主题)是集网址、资源、资讯于一体的导航主题。 要将采集的数据批量自动发布到一导航主题(OneNav主题)的网址要怎么设置? 普通的文章采集器一般只能发布为wordpress文章类型&#xff…

echarts折线图横向渐变填充

这种情况,需要后端去计算,如何把不同分段的值赋予不同的颜色,然后组合成下面我们需要的格式就可以实现 drawLine1() {if (document.getElementById(s1) ! null) {var that thislet heightNum (this.porosityList.maxDepth-this.porosityLis…

网络安全—综合渗透实验

一、 实验名称 综合实验 二、 实验目的 【实验描述】 随着互联网的普及和快速发展,互联网产品多样化、迭代快的特点为一些企业赢得了机会,同样也给企业带来了众多安全问题。如网络安全、系统安全、web安全、数据安全等。 本实验模拟企业复杂网络、复…

开源代码分享(6)—考虑电动汽车可调度潜力的充电站两阶段市场投标策略(附matlab代码)

[1]詹祥澎,杨军,韩思宁等.考虑电动汽车可调度潜力的充电站两阶段市场投标策略[J].电力系统自动化,2021,45(10):86-96. 摘要:在电力市场环境下,充电站优化投标策略能降低电力成本,甚至通过售电获取收益。文中考 虑了电动汽车成为柔性储荷资源的潜力&#…

使用mongodump和mongorestore备份与恢复Mongodb数据

一、备份与恢复方案 mongodump是MongoDB官方提供的备份工具,它可以从MongoDB数据库读取数据,并生成BSON文件,mongodump适合用于备份和恢复数据量较小的MongoDB数据库, 不适用于大数据量备份。 默认情况下mongodump不获取local数据库里面的内容。mongodump仅备份数据库中的文档…

微信小程序原生button组件使用并修改样式

想使用原生button组件&#xff0c;但是想使用不同样式 <button type"default">登录</button> 注意type使用得type必须和修改时选择器样式&#xff08;button[typedefault]&#xff09;一样&#xff0c;才能对其修改样式&#xff0c;否则样式不会被修改…

ArcGIS提取路网节点

这是我学校周围的路网,数据就不分享给大家了,看教程知道有这个方法就好了 先打开编辑器,把他合并成只有一个字段的要素 然后打开高级编辑,打断相交线 保存退出,然后打开ArcCatalog 10.6, 建立网络数据集 这时候就成了带有节点的网络数据集,但这还不是我们需要的点文件,因为这…

如何创建智能合约游戏系统

区块技术的发展&#xff0c;智能合约成为了一个热门话题。智能合约是一种基于区块技术的自动化合约&#xff0c;它可以自动执行合同中规定的条款&#xff0c;从而实现去中心化的信任和价值传递。在游戏领域&#xff0c;智能合约可以让玩家在游戏中实现各种交易和交互&#xff0…

通信算法之178: 通信信道模型2

上一篇见 通信算法之159: 通信信道模型和循环/线性卷积 一. 衰减 二.多径效应--时延扩展--相干带宽 三. 时变性--多普勒扩展--相干时间 四. 频率选择性衰落&#xff0c;时间选择性衰落 小尺度衰落&#xff0c;小 五.瑞丽和莱斯信道 六循环卷积与线性卷积 线性卷积定义及计算…

1、Linux 文件与目录结构

Linux 文件 Linux 系统中一切皆文件。 Linux 目录结构 VI/VIM 编辑器 是什么 VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。 VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜 色辨别语法的正确性&#xff0c;方便程序设计…

网络安全与密码学

1、网络安全威胁 破坏网络安全的一些理论方式&#xff1a; 窃听&#xff1a;窃听信息&#xff0c;在网路通信双方直接进行窃听。 插入&#xff1a;主动在网络连接中插入信息&#xff08;可以在message中插入恶意信息&#xff09; 假冒&#xff1a;伪造&#xff08;spoof&#x…

【从零开始学习CSS | 第一篇】选择器介绍

目录 前言&#xff1a; 选择器介绍&#xff1a; 各类选择器&#xff1a; 总结&#xff1a; 前言&#xff1a; 本文以及后续几篇文章我们将会集中介绍CSS中的常见选择器&#xff0c;选择器的出现可以让我们实现对具体的元素标签进行定制&#xff0c;因此我们要掌握好各类选择…

LiveGBS流媒体平台GB/T28181功能-如何将海康大华宇视华为摄像头视频流集中存储云端录像分布式录像存储

LiveGBS如何将海康大华宇视华为摄像头视频流集中存储云端录像分布式录像存储 1、云端录像存储2、手动配置录像2.1、按需录像2.2、一直录像 3、录像计划3.1、录像计划入口3.2、新增录像计划3.3、编辑录像计划3.4、关联通道 4、查看云端录像4.1、查看录像4.1.1、时间轴模式4.1.2、…

解决Ubuntu 虚拟机没有网络图标(无法联网问题)

问题&#xff1a; 我们打开Ubuntu虚拟机的时候&#xff0c;发现没有网络图标&#xff0c;这就使得联网无从下手&#xff0c;该怎么解决呢&#xff1f; 第一步&#xff1a;点击编辑虚拟机 第二步&#xff1a;点击虚拟网络编辑器 第三步&#xff0c;还原默认设置&#xff1a; 第四…

简单爬虫项目练习

爬虫项目练习 前言任务基本爬虫框架URL管理器Html 下载器HTML 解析器数据存储器爬虫调度器效果分析 前言 自学&#xff0c;参考书籍为 Python爬虫开发与项目实战 &#xff0c;具体参考了该书的第六章。过程中出现两个问题&#xff1a; 在 Pycharm 上实现时发现有些库名更改及…

界面控件DevExpress WPF数据编辑器组件,让数据处理更灵活!(一)

界面控件DevExpress WPF编辑器库可以帮助用户提供直观的用户体验&#xff0c;具有无与伦比的运行时选项和灵活性。WPF数据编辑器提供了全面的掩码和数据验证支持&#xff0c;可以独立使用&#xff0c;也可以作为容器控件(如DevExpress WPF Grid和WPF TreeList)中的单元格编辑器…

2023/7/12总结

最近踩的坑&#xff08;也不算坑&#xff0c;也算自己没学扎实&#xff09;&#xff1a; bug1 在css布局当中&#xff0c;flex布局display&#xff1a;flex 必须在父级身上&#xff0c;才能起作用。 bug2 引用bootstrap的时候&#xff0c;会需要样式覆盖的问题&#xff0c…

景联文科技助力医疗AI大模型:数据标注与专业医学资源的重要性

随着通用人工智能&#xff08;AI&#xff09;与生成式人工智能&#xff08;AIGC&#xff09;的兴起&#xff0c;人工智能对一些产业的颠覆性影响开始显著加速。我们正在进入一个全新的、属于人工智能的时代。 近日&#xff0c;谷歌对外发布谷歌医疗版ChatGPT已在多家诊所内测试…

数据结构---手撕图解单链表---phead的多种传参方式对比和辅助理解

文章目录 为什么要引入链表&#xff1f;单链表单链表的定义和原理单链表的头插 对于指针的深层次理解链表的尾插封装malloc函数 尾删头删查找链表中元素的插入在某节点前插入在某节点后插入 链表中元素的删除删除pos位置的值删除pos元素之后的值 链表的销毁关于链表传参问题如何…

用VScode运行vue框架时,报无法运行的错误

报错内容 问题出在了版本上面&#xff0c;从reason可以了解到是由于不支持的原因 然后上面报错的几乎都属于node_modules包内的&#xff0c;因此我们可以判断&#xff0c;是node.js版本的问题导致的&#xff08;尤其是你从网上拷贝比较旧的项目的时候&#xff0c;可能需要对依赖…