買這商品的人也買了...
-
$232JMeter 性能測試實戰, 2/e (Performance Testing with Jmeter, 2/e) -
Python 實現 Web UI 自動化測試實戰:Selenium 3/4 + unittest/Pytest + GitLab + Jenkins$599$569 -
$612大型網站運維:從系統管理到 SRE -
$555金融級 IT 架構:數字銀行的雲原生架構解密 -
$504Go 語言底層原理剖析 -
$710解構領域驅動設計 -
設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)$520$405 -
Google 的軟體工程之道|從程式設計經驗中吸取教訓 (Software Engineering at Google)$880$695 -
你就是不寫測試才會沒時間:Kuma 的單元測試實戰 -- Java篇(iThome鐵人賽系列書)$650$507 -
Selenium 4 自動化測試項目實戰:基於Python 3$534$507 -
$499Effective 軟件測試 -
可觀測性工程|達成卓越營運 (Observability Engineering: Achieving Production Excellence)$680$537 -
GPT 就是這麼來的 - 最新自然語言處理技術詳解$720$568 -
$510多模態大模型:技術原理與實戰 -
史上最強 Python 入門邁向頂尖高手之路王者歸來, 3/e (全彩印刷)$1,200$948 -
$516大規模語言模型:從理論到實踐 -
$448ChatGPT 風暴:大語言模型、生成式AI 與 AIGC 顛覆創新範式 -
面向 ZYNQ-7000 SOC 的軟件定義無線電原理及實現:涵蓋 GNU RADIO 和 MATLAB 軟件的通信系統設計$594$564 -
$606通義千問:大模型架構與智能體開發實戰(基於 QwQ-32B 開源模型) -
$499AI傳媒學:大模型助力傳媒行業應用與創新 -
AI 工程|從基礎模型建構應用 (AI Engineering : Building Applications with Foundation Models)$1,200$948 -
駭客文化深度解密 (Hacker Culture A to Z: A Fun Guide to the People, Ideas, and Gadgets That Made the Tech World)$520$410 -
零基礎實戰 AI 大模型:原理、構建與優化$594$564 -
裂縫碎光:資安數位生存戰$550$299 -
AI 輔助程式開發|從規劃到部署全流程高效升級 (AI-Assisted Programming: Better Planning, Coding, Testing, and Deployment)$620$489
資訊安全書展|中文簡體2書75折 英文2書85折 詳見活動內容 »
-
CYBERSEC 2026 臺灣資安年鑑 ─ AI 代理改寫資安戰局 掌握10大關鍵風險$179$161 -
CYBERSEC 2025 臺灣資安年鑑 ─ 全球地緣政治衝突激化,國家級駭客鎖定企業$179$161 -
CYBERSEC 2024 臺灣資安年鑑 ─ AI 資安 2024 徹底剖析生成式 AI 資安攻防態勢$179$161 -
CYBERSEC 2022 臺灣資安年鑑 ─ 零信任資安時代來臨:信任邊界徹底瓦解,安全需源自反覆驗證$179$161 -
CYBERSEC 2021 臺灣資安年鑑 ─ 資安絕地大反攻:新一代主動式資安防禦概念來了!$179$161 -
5折
未來數位科技活用大全:從 AI 協作、程式設計、資訊安全到大數據分析, 2/e$600$300 -
79折
混合雲安全架構|零信任原則的安全設計方法與實作 (Security Architecture for Hybrid Cloud: A Practical Method for Designing Security Using Zero Trust Principles)$780$616 -
79折
駭客的 Linux 基礎入門必修課, 2/e (Linux Basics for Hackers : Getting Started with Networking, Scripting, and Security in Kali, 2/e)$520$410 -
78折
Graylog 整合應用實戰:打造視覺化與智慧化的新世代資安監控平台$650$507 -
79折
雲端原生資安指南|CNAPP 打造 DevSecOps 零死角防護 (Cloud Native Application Protection Platforms: A Guide to CNAPPs and the Foundations of Comprehensive Cloud Security)$580$458 -
79折
零信任網路|在不受信任的網路中建構安全系統, 2/e (Zero Trust Networks: Building Secure Systems in Untrusted Networks, 2/e)$680$537 -
5折
看不見的戰場:社群、AI 與企業資安危機$750$375 -
79折
數位國土保衛戰:從數位身分證、AI到電子投票,揭開臺灣數位化暗藏的國安危機$420$331 -
54折
裂縫碎光:資安數位生存戰$550$299 -
79折
LLM 資安教戰手冊|打造安全的 AI 應用程式 (The Developer's Playbook for Large Language Model Security)$580$458 -
66折
究極 Web 資安心智圖學習法!嚴選12大主題 × 7張心智圖 × 7個實戰,核心技能無痛升級(iThome鐵人賽系列書)$620$409 -
79折
資訊安全管理領導力實戰手冊$599$473 -
78折
一個人的藍隊:企業資安防護技術實戰指南(iThome鐵人賽系列書)$650$507 -
63折
資安密碼-隱形帝國:AI數位鑑識、社交工程攻防與現代密碼技術實戰$550$349 -
78折
資安鑑識分析:數位工具、情資安全、犯罪偵防與證據追蹤$560$436 -
85折
鋼索上的管理課【全新增訂版+資安風險升級主題】:韌性與敏捷管理的洞見與實踐$480$408 -
5折
營養師不開菜單後的 Next.js 全端轉職攻略:從專案規劃、畫面設計、資安到 SEO,挑戰一人 Side Project (iThome鐵人賽系列書)$680$340 -
5折
從零開始 OCS Inventory:打造資訊資產管理 × 資安 CVE 漏洞通報(iThome鐵人賽系列書)$650$325 -
79折
Beyond XSS:探索網頁前端資安宇宙$880$695 -
75折
工控資安銳視角:石化場域 OT / ICS 學習筆記$680$510
資訊安全書展|中文簡體2書75折 英文2書85折 詳見活動內容 »
-
VIP 95折
築牢“養蝦”全場景安全防線:保姆級 OpenClaw 安全應用實戰$299$284 -
VIP 95折
人工智能的後量子安全$708$672 -
VIP 95折
AI驅動安全:技術原理與行業實踐$779$740 -
VIP 95折
數據安全架構設計與實戰$654$621 -
85折
$504網絡安全治理 基於DevSecOps的理論與實踐 -
VIP 95折
可信計算原理及應用$359$341 -
85折
$453供應鏈安全與治理:基於關鍵信息基礎設施信息系統的實踐 -
85折
$254安全至上——高職學校學生安全教育教程 -
VIP 95折
安全 QR 碼設計方法研究$479$455 -
75折
$404雲攻擊向量 -
79折
$331智能終端安全與實踐:基於OpenHarmony操作系統 -
85折
$652初識密碼學 -
VIP 95折
商用密碼應用技術$414$393 -
79折
$327網絡安全建設與運營 -
85折
$351網絡安全保護制度與實施 -
VIP 95折
數據安全管理與技術$414$393 -
VIP 95折
機密計算:原理與技術$534$507 -
VIP 95折
零基礎快速入行 SOC 分析師, 2/e$359$341 -
85折
$505網絡空間安全與數據治理 -
79折
$473數據要素安全:新技術、新安全激活新質生產力 -
79折
$469網絡安全與決策(數據安全與數字信任) -
79折
$852數據安全 -
85折
$555計算機安全導論(原書第5版) -
VIP 95折
工控系統信息安全——智能製造背景下的數字化安全保障$474$450 -
VIP 95折
密碼芯片設計與實踐$294$279
商品描述
源代碼缺陷是指在軟件開發生命週期的編碼階段,產生的有意或者無意的缺陷。
為了便於讀者更好地瞭解各種缺陷的基本特性,本書根據缺陷產生的原因、
的結果以及表現形式等因素,將60種重要且常見缺陷分為3大類:
輸入驗證類、資源管理類和代碼質量類。
全書分為4章,第1章概述了源代碼缺陷的基本概念、發現缺陷的方法、自動化缺陷檢測技術、
缺陷處置流程、缺陷種類劃分、代碼審計工具、代碼安全保障技術趨勢;
第2章至第4章通過具體實例依次介紹了各類缺陷的原理、危害、在代碼中的表現形式及修復建議。
本書適合有一定計算機編碼基礎和網絡安全基礎的讀者閱讀,也適合作為網絡安全愛好者的參考書。
作者簡介
奇安信代碼安全實驗室專註於軟件源代碼安全分析技術和二進制漏洞挖掘技術的研究與開發。
基於多年的技術積累,奇安信代碼安全實驗室在國內率先推出了自主可控的軟件代碼安全分析系統
——奇安信代碼衛士和奇安信開源衛士。
奇安信代碼安全實驗室支撐漏洞平臺的技術工作,多次向國家信息安全漏洞庫(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 反射型XSS 54
2.12.1 反射型XSS的概念 54
2.12.2 反射型XSS的危害 55
2.12.3 實例代碼 56
2.12.4 如何避免反射型XSS 57
2.13 存儲型XSS 58
2.13.1 存儲型XSS的概念 58
2.13.2 存儲型XSS的危害 58
2.13.3 實例代碼 59
2.13.4 如何避免存儲型XSS 61
2.14 弱驗證 62
2.14.1 弱驗證的概念 62
2.14.2 弱驗證的危害 62
2.14.3 實例代碼 63
2.14.4 如何避免弱驗證 65
2.15 組件間通信XSS 66
2.15.1 組件間通信XSS的概念 66
2.15.2 組件間通信XSS的危害 66
2.15.3 實例代碼 67
2.15.4 如何避免組件間通信XSS 68
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配置錯誤:不安全的Actuator 179
4.16.1 Spring Boot配置錯誤:不安全的Actuator的概念 179
4.16.2 Spring Boot配置錯誤:不安全的Actuator的危害 179
4.16.3 實例代碼 180
4.16.4 如何避免Spring Boot配置錯誤:不安全的Actuator 180
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
