• 软件供应链安全――源代码缺陷实例剖析
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

软件供应链安全――源代码缺陷实例剖析

29.55 4.2折 69.8 九品

仅1件

北京东城
认证卖家担保交易快速发货售后保障

作者奇安信代码安全实验室 著

出版社电子工业出版社

出版时间2021-08

版次1

装帧平装

货号A5

上书时间2024-10-23

图书-天下的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 奇安信代码安全实验室 著
  • 出版社 电子工业出版社
  • 出版时间 2021-08
  • 版次 1
  • ISBN 9787121416972
  • 定价 69.80元
  • 装帧 平装
  • 开本 16开
  • 页数 208页
  • 字数 226千字
【内容简介】
源代码缺陷是指在软件开发生命周期的编码阶段,产生的有意或者无意的缺陷。为了便于读者更好地了解各种缺陷的基本特性,本书根据缺陷产生的原因、造成的结果以及表现形式等因素,将60种重要且常见缺陷分为3大类:输入验证类、资源管理类和代码质量类。全书分为4章,第1章概述了源代码缺陷的基本概念、发现缺陷的方法、自动化缺陷检测技术、缺陷处置流程、缺陷种类划分、代码审计工具、代码安全保障技术趋势;第2章至第4章通过具体实例依次介绍了各类缺陷的原理、危害、在代码中的表现形式及修复建议。本书适合有一定计算机编码基础和网络安全基础的读者阅读,也适合作为网络安全爱好者的参考书。
【作者简介】
奇安信代码安全实验室专注于软件源代码安全分析技术和二进制漏洞挖掘技术的研究与开发。基于多年的技术积累,奇安信代码安全实验室在国内率先推出了自主可控的软件代码安全分析系统DD奇安信代码卫士和奇安信开源卫士。奇安信代码安全实验室支撑***漏洞平台的技术工作,多次向国家信息安全漏洞库(CNNVD)和国家信息安全漏洞共享平台(CNVD)报送原创通用型漏洞信息,并获得表彰。同时,还为微软、谷歌、苹果、华为等大型厂商和机构的软件安全缺陷和漏洞发现提供服务与支撑,并以期为更多用户构建代码安全保障体系,消除软件代码安全隐患。
【目录】
目录
第1章  概述1
1.1  缺陷的基本概念1
1.2  发现缺陷的方法2
1.3  自动化缺陷检测技术4
1.4  缺陷处置流程5
1.5  缺陷种类划分6
1.5.1  输入验证类6
1.5.2  资源管理类8
1.5.3  代码质量类10
1.6  代码审计工具使用实例11
1.6.1  任务配置页面11
1.6.2  检测结果页面13
1.7  代码安全保障技术趋势前瞻14
1.7.1  基于人工智能技术的代码安全分析14
1.7.2  面向安全的软件代码成分分析15
1.7.3  面向DevSecOps的代码安全测试15
1.7.4  交互式应用安全测试16

第2章  输入验证类缺陷分析17
2.1  SQL注入17
2.1.1  SQL注入的概念17
2.1.2  SQL注入的危害17
2.1.3  实例代码18
2.1.4  如何避免SQL注入20
2.2  XML外部实体注入20
2.2.1  XML外部实体注入的概念20
2.2.2  XML外部实体注入的危害21
2.2.3  实例代码21
2.2.4  如何避免XML外部实体注入24
2.3  命令注入24
2.3.1  命令注入的概念24
2.3.2  命令注入的危害25
2.3.3  实例代码26
2.3.4  如何避免命令注入28
2.4  XPath注入28
2.4.1  XPath注入的概念28
2.4.2  XPath注入的危害28
2.4.3  实例代码29
2.4.4  如何避免XPath注入32
2.5  LDAP注入32
2.5.1  LDAP注入的概念32
2.5.2  LDAP注入的危害33
2.5.3  实例代码33
2.5.4  如何避免LDAP注入37
2.6  JSON注入37
2.6.1  JSON注入的概念37
2.6.2  JSON注入的危害38
2.6.3  实例代码38
2.6.4  如何避免JSON注入40
2.7  XQuery注入40
2.7.1  XQuery注入的概念40
2.7.2  XQuery注入的危害40
2.7.3  实例代码41
2.7.4  如何避免XQuery注入43
2.8  HTTP响应截断43
2.8.1  HTTP响应截断的概念43
2.8.2  HTTP响应截断的危害44
2.8.3  实例代码45
2.8.4  如何避免HTTP响应截断46
2.9  不安全的反序列化(XStream)46
2.9.1  不安全的反序列化(XStream)的概念46
2.9.2  不安全的反序列化(XStream)的危害46
2.9.3  实例代码47
2.9.4  如何避免不安全的反序列化(XStream)49
2.10  动态解析代码49
2.10.1  动态解析代码的概念49
2.10.2  动态解析代码的危害49
2.10.3  实例代码50
2.10.4  如何避免动态解析代码51
2.11  ContentProvider URI注入52
2.11.1  ContentProvider URI 注入的概念52
2.11.2  ContentProvider URI 注入的危害52
2.11.3  实例代码52
2.11.4  如何避免ContentProvider URI 注入54
2.12  反射型XSS54
2.12.1  反射型XSS的概念54
2.12.2  反射型XSS的危害55
2.12.3  实例代码56
2.12.4  如何避免反射型XSS57
2.13  存储型XSS58
2.13.1  存储型XSS的概念58
2.13.2  存储型XSS的危害58
2.13.3  实例代码59
2.13.4  如何避免存储型XSS61
2.14  弱验证62
2.14.1  弱验证的概念62
2.14.2  弱验证的危害62
2.14.3  实例代码63
2.14.4  如何避免弱验证65
2.15  组件间通信XSS66
2.15.1  组件间通信XSS的概念66
2.15.2  组件间通信XSS的危害66
2.15.3  实例代码67
2.15.4  如何避免组件间通信XSS68
2.16  进程控制69
2.16.1  进程控制的概念69
2.16.2  进程控制的危害69
2.16.3  实例代码70
2.16.4  如何避免进程控制72
2.17  路径遍历72
2.17.1  路径遍历的概念72
2.17.2  路径遍历的危害72
2.17.3  实例代码73
2.17.4  如何避免路径遍历75
2.18  重定向76
2.18.1  重定向的概念76
2.18.2  重定向的危害76
2.18.3  实例代码77
2.18.4  如何避免重定向79
2.19  日志伪造79
2.19.1  日志伪造的概念79
2.19.2  日志伪造的危害79
2.19.3  实例代码79
2.19.4  如何避免日志伪造81

第3章  资源管理类缺陷分析82
3.1  缓冲区上溢82
3.1.1  缓冲区上溢的概念82
3.1.2  缓冲区上溢的危害82
3.1.3  实例代码83
3.1.4  如何避免缓冲区上溢85
3.2  缓冲区下溢85
3.2.1  缓冲区下溢的概念85
3.2.2  缓冲区下溢的危害86
3.2.3  实例代码86
3.2.4  如何避免缓冲区下溢88
3.3  越界访问88
3.3.1  越界访问的概念88
3.3.2  越界访问的危害88
3.3.3  实例代码89
3.3.4  如何避免越界访问90
3.4  释放后使用91
3.4.1  释放后使用的概念91
3.4.2  释放后使用的危害91
3.4.3  实例代码92
3.4.4  如何避免释放后使用93
3.5  二次释放94
3.5.1  二次释放的概念94
3.5.2  二次释放的危害94
3.5.3  实例代码95
3.5.4  如何避免二次释放96
3.6  内存泄漏97
3.6.1  内存泄漏的概念97
3.6.2  内存泄漏的危害97
3.6.3  实例代码98
3.6.4  如何避免内存泄漏99
3.7  文件资源未释放99
3.7.1  文件资源未释放的概念99
3.7.2  文件资源未释放的危害99
3.7.3  实例代码100
3.7.4  如何避免文件资源未释放101
3.8  流资源未释放101
3.8.1  流资源未释放的概念101
3.8.2  流资源未释放的危害102
3.8.3  实例代码102
3.8.4  如何避免流资源未释放105
3.9  错误的资源关闭105
3.9.1  错误的资源关闭的概念105
3.9.2  错误的资源关闭的危害106
3.9.3  实例代码106
3.9.4  如何避免错误的资源关闭107
3.10  重复加锁107
3.10.1  重复加锁的概念107
3.10.2  重复加锁的危害108
3.10.3  实例代码108
3.10.4  如何避免重复加锁109
3.11  错误的内存释放对象110
3.11.1  错误的内存释放对象的概念110
3.11.2  错误的内存释放对象的危害110
3.11.3  实例代码111
3.11.4  如何避免错误的内存释放对象112
3.12  错误的内存释放方法113
3.12.1  错误的内存释放方法的概念113
3.12.2  错误的内存释放方法的危害113
3.12.3  实例代码114
3.12.4  如何避免错误的内存释放方法115
3.13  返回栈地址115
3.13.1  返回栈地址的概念115
3.13.2  返回栈地址的危害115
3.13.3  实例代码116
3.13.4  如何避免返回栈地址117
3.14  被污染的内存分配117
3.14.1  被污染的内存分配的概念117
3.14.2  被污染的内存分配的危害118
3.14.3  实例代码118
3.14.4  如何避免被污染的内存分配121
3.15  数据库访问控制122
3.15.1  数据库访问控制的概念122
3.15.2  数据库访问控制的危害122
3.15.3  实例代码122
3.15.4  如何避免数据库访问控制124
3.16  硬编码密码125
3.16.1  硬编码密码的概念125
3.16.2  硬编码密码的危害125
3.16.3  实例代码126
3.16.4  如何避免硬编码密码128
3.17  不安全的随机数128
3.17.1  不安全的随机数的概念128
3.17.2  不安全的随机数的危害129
3.17.3  实例代码129
3.17.4  如何避免不安全的随机数131
3.18  不安全的哈希算法131
3.18.1  不安全的哈希算法的概念131
3.18.2  不安全的哈希算法的危害132
3.18.3  实例代码132
3.18.4  如何避免不安全的哈希算法135
3.19  弱加密135
3.19.1  弱加密的概念135
3.19.2  弱加密的危害135
3.19.3  实例代码136
3.19.4  如何避免弱加密138
3.20  硬编码加密密钥139
3.20.1  硬编码加密密钥的概念139
3.20.2  硬编码加密密钥的危害139
3.20.3  实例代码139
3.20.4  如何避免硬编码加密密钥140

第4章  代码质量类缺陷分析141
4.1  有符号整数溢出141
4.1.1  有符号整数溢出的概念141
4.1.2  有符号整数溢出的危害141
4.1.3  实例代码142
4.1.4  如何避免有符号整数溢出143
4.2  无符号整数回绕144
4.2.1  无符号整数回绕的概念144
4.2.2  无符号整数回绕的危害144
4.2.3  实例代码145
4.2.4  如何避免无符号整数回绕146
4.3  空指针解引用147
4.3.1  空指针解引用的概念147
4.3.2  空指针解引用的危害147
4.3.3  实例代码148
4.3.4  如何避免空指针解引用149
4.4  解引用未初始化的指针149
4.4.1  解引用未初始化的指针的概念149
4.4.2  解引用未初始化的指针的危害149
4.4.3  实例代码150
4.4.4  如何避免解引用未初始化的指针151
4.5  除数为零151
4.5.1  除数为零的概念151
4.5.2  除数为零的危害152
4.5.3  实例代码152
4.5.4  如何避免除数为零154
4.6  在scanf()函数中没有对%s格式符进行宽度限制154
4.6.1  在scanf()函数中没有对%s格式符进行宽度限制的概念154
4.6.2  在scanf()函数中没有对%s格式符进行宽度限制的危害154
4.6.3  实例代码155
4.6.4  如何避免在scanf()函数中没有对%s格式符进行宽度限制156
4.7  被污染的格式化字符串157
4.7.1  被污染的格式化字符串的概念157
4.7.2  被污染的格式化字符串的危害157
4.7.3  实例代码158
4.7.4  如何避免被污染的格式化字符串160
4.8  不当的循环终止160
4.8.1  不当的循环终止的概念160
4.8.2  不当的循环终止的危害160
4.8.3  实例代码160
4.8.4  如何避免不当的循环终止162
4.9  双重检查锁定162
4.9.1  双重检查锁定的概念162
4.9.2  双重检查锁定的危害162
4.9.3  实例代码162
4.9.4  如何避免双重检查锁定165
4.10  未初始化值用于赋值操作165
4.10.1  未初始化值用于赋值操作的概念165
4.10.2  未初始化值用于赋值操作的危害165
4.10.3  实例代码166
4.10.4  如何避免未初始化值用于赋值操作167
4.11  参数未初始化167
4.11.1  参数未初始化的概念167
4.11.2  参数未初始化的危害168
4.11.3  实例代码168
4.11.4  如何避免参数未初始化169
4.12  返回值未初始化169
4.12.1  返回值未初始化的概念169
4.12.2  返回值未初始化的危害169
4.12.3  实例代码170
4.12.4  如何避免返回值未初始化170
4.13  Cookie:未经过SSL加密171
4.13.1  Cookie:未经过SSL加密的概念171
4.13.2  Cookie:未经过SSL加密的危害171
4.13.3  实例代码172
4.13.4  如何避免Cookie:未经过SSL加密174
4.14  邮件服务器建立未加密的连接174
4.14.1  邮件服务器建立未加密的连接的概念174
4.14.2  邮件服务器建立未加密的连接的危害174
4.14.3  实例代码175
4.14.4  如何避免邮件服务器建立未加密的连接176
4.15  不安全的SSL:过于广泛的信任证书176
4.15.1  不安全的SSL:过于广泛的信任证书的概念176
4.15.2  不安全的SSL:过于广泛的信任证书的危害177
4.15.3  实例代码177
4.15.4  如何避免不安全的SSL:过于广泛的信任证书179
4.16  Spring Boot配置错误:不安全的Actuator179
4.16.1  Spring Boot配置错误:不安全的Actuator的概念179
4.16.2  Spring Boot配置错误:不安全的Actuator的危害179
4.16.3  实例代码180
4.16.4  如何避免Spring Boot配置错误:不安全的Actuator180
4.17  未使用的局部变量181
4.17.1  未使用的局部变量的概念181
4.17.2  未使用的局部变量的危害181
4.17.3  实例代码181
4.17.4  如何避免未使用的局部变量182
4.18  死代码182
4.18.1  死代码的概念182
4.18.2  死代码的危害183
4.18.3  实例代码183
4.18.4  如何避免死代码184
4.19  函数调用时参数不匹配184
4.19.1  函数调用时参数不匹配的概念184
4.19.2  函数调用时参数不匹配的危害184
4.19.3  实例代码184
4.19.4  如何避免函数调用时参数不匹配186
4.20  不当的函数地址使用186
4.20.1  不当的函数地址使用的概念186
4.20.2  不当的函数地址使用的危害186
4.20.3  实例代码186
4.20.4  如何避免不当的函数地址使用188
4.21  忽略返回值188
4.21.1  忽略返回值的概念188
4.21.2  忽略返回值的危害188
4.21.3  实例代码189
4.21.4  如何避免忽略返回值190
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP