《软件安全的24宗罪编程缺陷与修复之道》扫描版
基本信息
打开支付宝首页搜“673273051”领红包,领到大红包的小伙伴赶紧使用哦!
相关书籍
- 《Web安全之强化学习与GAN.pdf 》[]
- 《黑客与画家(中文版)-PDF-免费下载》[]
- 《C++黑客编程揭秘与防范》[]
- 《黑客攻防技术宝典_Web实战篇(第2版)》[]
- 《Web渗透测试使用kali linux.zip》[]
- 《网络安全基础:应用与标准(第4版).pdf》[]
- 《Ethical Hacking Career Accelerator - Ethical Hacking Bundle》[]
- 《windows 2012 Internet Explorer 增强的安全》[]
- 《入侵的艺术:黑客、入侵者和欺诈者的真实故事》英文版PDF[]
- 《无处藏身》No Place to Hide[]
内容介绍
目录:
第ⅰ部分 webåº”ç”¨ç¨‹åºæ¼æ´ž
第1ç« sql注入 3
1.1 æ¼æ´žæ¦‚è¿° 3
1.2 cweå‚考 4
1.3 å—å½±å“的编程è¯è¨€ 5
1.4 æ¼æ´žè¯¦è¿° 5
1.4.1 关于linq的注æ„事项 5
1.4.2 å—æ¼æ´žå½±å“çš„c# 5
1.4.3 å—æ¼æ´žå½±å“çš„php 6
1.4.4 å—æ¼æ´žå½±å“çš„perl/cgi 7
1.4.5 å—æ¼æ´žå½±å“çš„python 7
1.4.6 å—æ¼æ´žå½±å“çš„ruby on rails 8
1.4.7 å—æ¼æ´žå½±å“çš„javaå’Œjdbc 8
1.4.8 å—æ¼æ´žå½±å“çš„c/c++ 9
1.4.9 å—æ¼æ´žå½±å“çš„sql 10
1.4.10 ç›¸å…³æ¼æ´ž 11
1.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 11
1.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 12
1.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 12
1.8 æ¼æ´žç¤ºä¾‹ 14
.1.8.1 cve-2006-4953 15
1.8.2 cve-2006-4592 16
1.9 弥补措施 16
1.9.1 éªŒè¯æ‰€æœ‰çš„输入 16
1.9.2 使用preparedè¯å¥æž„é€ sqlè¯å¥ 16
1.9.3 c#弥补措施 17
1.9.4 php 5.0 以åŠmysql 1.1或者以åŽç‰ˆæœ¬çš„弥补措施 17
1.9.5 perl/cgi弥补措施 18
1.9.6 python弥补措施 19
1.9.7 ruby on rails弥补措施 19
1.9.8 使用jdbc的java弥补措施 19
1.9.9 coldfusion弥补措施 20
1.9.10 sql弥补措施 20
1.10 其他防御措施 22
1.10.1 åŠ å¯†æ•æ„Ÿæ•°æ®ã€piiæ•°æ®æˆ–æœºå¯†æ•°æ® 22
1.10.2 使用urlscan 22
1.11 å…¶ä»–èµ„æº 22
1.12 æœ¬ç« å°ç»“ 24
第2ç« ä¸ŽwebæœåŠ¡å™¨ç›¸å…³çš„æ¼æ´ž(xssã€xsrfå’Œå“应拆分) 25
2.1 æ¼æ´žæ¦‚è¿° 25
2.2 cweå‚考 26
2.3 å—å½±å“的编程è¯è¨€ 26
2.4 æ¼æ´žè¯¦è¿° 26
2.4.1 基于dom的xss或类型0 26
2.4.2 åå°„xssï¼ŒéžæŒç»xss或类型1 27
2.4.3 å˜å‚¨xss,æŒç»xss或类型2 28
2.4.4 httpå“应拆分 29
2.4.5 ä¼ªé€ è·¨ç«™ç‚¹è¯·æ±‚ 31
2.4.6 å—æ¼æ´žå½±å“çš„ruby on rails(xss) 32
2.4.7 å—æ¼æ´žå½±å“çš„ruby on rails(å“应拆分) 32
2.4.8 å—æ¼æ´žå½±å“的使用python编写的cgi应用程åº(xss) 32
2.4.9 å—æ¼æ´žå½±å“的使用python编写的cgi应用程åº(å“应拆分) 32
2.4.10 å—æ¼æ´žå½±å“çš„coldfusion(xss) 33
2.4.11 å—æ¼æ´žå½±å“çš„coldfusion(å“应拆分) 33
2.4.12 å—æ¼æ´žå½±å“çš„c/c++ isapi(xss) 33
2.4.13 å—æ¼æ´žå½±å“çš„c/c++ isapi(å“应拆分) 33
2.4.14 å—æ¼æ´žå½±å“çš„asp(xss) 34
2.4.15 å—æ¼æ´žå½±å“çš„asp(å“应拆分) 34
2.4.16 å—æ¼æ´žå½±å“çš„asp.net(xss) 34
2.4.17 å—æ¼æ´žå½±å“çš„asp.net(å“应拆分) 34
2.4.18 å—æ¼æ´žå½±å“çš„jsp(xss) 34
2.4.19 å—æ¼æ´žå½±å“çš„jsp(å“应拆分) 35
2.4.20 å—æ¼æ´žå½±å“çš„php(xss) 35
2.4.21 å—æ¼æ´žå½±å“çš„php(å“应拆分) 35
2.4.22 å—æ¼æ´žå½±å“的使用perlçš„cgi (xss) 35
2.4.23 å—æ¼æ´žå½±å“çš„mod_perl(xss) 35
2.4.24 å—æ¼æ´žå½±å“çš„mod_perl(å“应拆分) 36
2.4.25 å—æ¼æ´žå½±å“çš„http请求(xsrf) 36
2.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 36
2.6 在代ç 审查期间查找xssæ¼æ´ž 36
2.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 38
2.8 æ¼æ´žç¤ºä¾‹ 39
2.8.1 cve-2003-0712 microsoft exchange 5.5 outlook web access xss 39
2.8.2 cve-2004-0203 microsoft exchange 5.5 outlook web accesså“应拆分 39
2.8.3 cve-2005-1674 help center live(xsså’Œxsrf) 40
2.9 弥补措施(xsså’Œå“应拆分) 40
2.9.1 ruby on rails弥补措施(xss) 40
2.9.2 isapi c/c++弥补措施(xss) 40
2.9.3 python弥补措施(xss) 41
2.9.4 asp弥补措施(xss) 42
2.9.5 asp.net web表å•弥补措施(xss) 42
2.9.6 asp.net web表å•弥补措施(rs) 43
2.9.7 jsp弥补措施 43
2.9.8 php弥补措施(xss) 45
2.9.9 cgi弥补措施(xss) 45
2.9.10 mod_perl弥补措施(xss) 46
2.10 弥补æ¥éª¤(xsrf) 47
2.10.1 关于超时的注æ„事项 47
2.10.2 xsrfå’Œpost与get的注æ„事项 47
2.10.3 ruby on rails弥补措施(xsrf) 48
2.10.4 asp.net web表å•弥补措施(xsrf) 48
2.10.5 htmlç¼–ç çš„éžä¸¥æ ¼ç”¨æ³• 48
2.11 其他防御措施 49
2.11.1 使用httponly cookie 49
2.11.2 å¯¹æ ‡è®°çš„å±žæ€§ä½¿ç”¨åŒå¼•å· 50
2.11.3 考虑使用asp.net的viewstateuserkey 50
2.11.4 考虑使用asp.net的validaterequest 50
2.11.5 使用asp.net安全è¿è¡Œæ—¶å¼•擎的安全性能 51
2.11.6 考虑使用owasp csrfguard 51
2.11.7 使用apache::taintrequest 51
2.11.8 使用urlscan 51
2.11.9 设置默认的å—符集 51
2.12 å…¶ä»–èµ„æº 52
2.13 æœ¬ç« å°ç»“ 53
第3ç« ä¸Žwebå®¢æˆ·ç«¯ç›¸å…³çš„æ¼æ´ž(xss) 55
3.1 æ¼æ´žæ¦‚è¿° 55
3.2 cweèµ„æº 56
3.3 å—å½±å“的编程è¯è¨€ 56
3.4 æ¼æ´žè¯¦è¿° 56
3.4.1 æœ‰æ¼æ´žçš„gadget的秘密 57
3.4.2 å—æ¼æ´žå½±å“çš„javascriptå’Œhtml 58
3.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 58
3.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 59
3.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 59
3.8 æ¼æ´žç¤ºä¾‹ 60
3.8.1 microsoft isa server xss cve-2003-0526 60
3.8.2 windows vista sidebar cve-2007-3033å’Œcve-2007-3032 60
3.8.3 yahoo! instant messenger activex控件cve-2007-4515 61
3.9 弥补措施 61
3.9.1 ä¸è¦ç›¸ä¿¡è¾“å…¥ 61
3.9.2 用更安全的结构替代ä¸å®‰å…¨çš„结构 62
3.10 其他弥补措施 63
3.11 å…¶ä»–èµ„æº 63
3.12 æœ¬ç« å°ç»“ 63
第4ç« ä½¿ç”¨magic urlã€å¯é¢„计的cookieåŠéšè—表å•å—æ®µ 65
4.1 æ¼æ´žæ¦‚è¿° 65
4.2 cweå‚考 65
4.3 å—å½±å“的编程è¯è¨€ 65
4.4 æ¼æ´žè¯¦è¿° 66
4.4.1 magic url 66
4.4.2 å¯é¢„计的cookie 66
4.4.3 éšè—的表å•å—æ®µ 67
4.4.4 ç›¸å…³æ¼æ´ž 67
4.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 67
4.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 67
4.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 68
4.8 æ¼æ´žç¤ºä¾‹ 69
4.9 弥补措施 70
4.9.1 攻击者æµè§ˆæ•°æ® 70
4.9.2 æ”»å‡»è€…é‡æ”¾æ•°æ® 70
4.9.3 æ”»å‡»è€…é¢„æµ‹æ•°æ® 71
4.9.4 æ”»å‡»è€…æ›´æ”¹æ•°æ® 72
4.10 其他防御措施 73
4.11 å…¶ä»–èµ„æº 73
4.12 æœ¬ç« å°ç»“ 73
第ⅱ部分 实 现 æ¼ æ´ž
第5ç« ç¼“å†²åŒºæº¢å‡º 77
5.1 æ¼æ´žæ¦‚è¿° 77
5.2 cweå‚考 78
5.3 å—å½±å“的编程è¯è¨€ 78
5.4 æ¼æ´žè¯¦è¿° 79
5.4.1 64ä½çš„å«ä¹‰ 82
5.4.2 å—æ¼æ´žå½±å“çš„c/c++ 82
5.4.3 ç›¸å…³æ¼æ´ž 84
5.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 85
5.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 85
5.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 85
5.8 æ¼æ´žç¤ºä¾‹ 86
5.8.1 cve-1999-0042 86
5.8.2 cve-2000-0389~cve-2000-0392 87
5.8.3 cve-2002-0842ã€cve-2003-0095ã€can-2003-0096 87
5.8.4 can-2003-0352 88
5.9 弥补措施 88
5.9.1 替æ¢å±é™©çš„å—符串处ç†å‡½æ•° 88
5.9.2 å®¡è®¡åˆ†é…æ“作 89
5.9.3 检查循环和数组访问 89
5.9.4 使用c++å—ç¬¦ä¸²æ¥æ›¿æ¢cå—符串缓冲区 89
5.9.5 使用stlå®¹å™¨æ›¿ä»£é™æ€æ•°ç»„ 89
5.9.6 使用分æžå·¥å…· 89
5.10 其他防御措施 90
5.10.1 æ ˆä¿æŠ¤ 90
5.10.2 ä¸å¯æ‰§è¡Œçš„æ ˆå’Œå † 90
5.11 å…¶ä»–èµ„æº 91
5.12 æœ¬ç« å°ç»“ 92
第6ç« æ ¼å¼åŒ–å—符串问题 93
6.1 æ¼æ´žæ¦‚è¿° 93
6.2 cweå‚考 94
6.3 å—å½±å“的编程è¯è¨€ 94
6.4 æ¼æ´žè¯¦è¿° 94
6.4.1 å—æ¼æ´žå½±å“çš„c/c++ 96
6.4.2 ç›¸å…³æ¼æ´ž 97
6.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 97
6.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 97
6.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 97
6.8 æ¼æ´žç¤ºä¾‹ 98
6.8.1 cve-2000-0573 98
6.8.2 cve-2000-0844 98
6.9 弥补措施 98
6.10 其他防御措施 99
6.11 å…¶ä»–èµ„æº 99
6.12 æœ¬ç« å°ç»“ 100
第7ç« æ•´æ•°æº¢å‡º 101
7.1 æ¼æ´žæ¦‚è¿° 101
7.2 cweå‚考 101
7.3 å—å½±å“的编程è¯è¨€ 102
7.4 æ¼æ´žè¯¦è¿° 102
7.4.1 å—æ¼æ´žå½±å“çš„cå’Œc++ 102
7.4.2 å—æ¼æ´žå½±å“çš„c# 108
7.4.3 å—æ¼æ´žå½±å“çš„visual basic å’Œvisual basic .net 110
7.4.4 å—æ¼æ´žå½±å“çš„java 110
7.4.5 å—æ¼æ´žå½±å“çš„perl 111
7.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 112
7.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 112
7.6.1 c/c++ 112
7.6.2 c# 114
7.6.3 java 114
7.6.4 visual basicå’Œvisual basic .net 114
7.6.5 perl 115
7.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 115
7.8 æ¼æ´žç¤ºä¾‹ 115
7.8.1 在apple mac os xçš„searchkit apiä¸çš„多个整数溢出 115
7.8.2 google android sdkä¸çš„æ•´æ•°æº¢å‡º 115
7.8.3 在windows脚本引擎ä¸å˜åœ¨çš„æ¼æ´žå¯ä»¥å¯¼è‡´ä»»æ„ä»£ç æ‰§è¡Œ 116
7.8.4 htrå—ç¼–ç ä¸çš„å †æº¢å‡ºå¯ä»¥å¯¼è‡´webæœåС噍é到入侵 116
7.9 弥补措施 116
7.9.1 执行数å¦è®¡ç®— 116
7.9.2 ä¸ä½¿ç”¨æŠ€å·§ 117
7.9.3 ç¼–å†™ç±»åž‹è½¬æ¢ 118
7.9.4 使用safeint 119
7.10 其他防御措施 120
7.11 å…¶ä»–èµ„æº 120
7.12 æœ¬ç« å°ç»“ 120
第8ç« c++ç¾éš¾ 121
8.1 æ¼æ´žæ¦‚è¿° 121
8.2 cweå‚考 121
8.3 å—å½±å“的编程è¯è¨€ 122
8.4 æ¼æ´žè¯¦è¿° 122
8.4.1 æœ‰æ¼æ´žçš„delete调用 122
8.4.2 æœ‰æ¼æ´žçš„å¤åˆ¶æž„é€ å‡½æ•° 123
8.4.3 æœ‰æ¼æ´žçš„æž„é€ å‡½æ•° 124
8.4.4 æœ‰æ¼æ´žçš„æ²¡æœ‰é‡æ–°åˆå§‹åŒ– 124
8.4.5 忽略stl 125
8.4.6 æœ‰æ¼æ´žçš„æŒ‡é’ˆåˆå§‹åŒ– 125
8.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 126
8.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 126
8.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 127
8.8 æ¼æ´žç¤ºä¾‹ 127
8.9 弥补措施 127
8.9.1 newå’Œdeleteä¸åŒ¹é…的弥补措施 127
8.9.2 å¤åˆ¶æž„é€ å‡½æ•°çš„å¼¥è¡¥æŽªæ–½ 127
8.9.3 æž„é€ å‡½æ•°åˆå§‹åŒ–的弥补措施 128
8.9.4 釿–°åˆå§‹åŒ–的弥补措施 129
8.9.5 stl弥补措施 129
8.9.6 未åˆå§‹åŒ–指针的弥补措施 129
8.10 其他防御措施 129
8.11 å…¶ä»–èµ„æº 130
8.12 æœ¬ç« å°ç»“ 130
第9ç« æ•获异常 131
9.1 æ¼æ´žæ¦‚è¿° 131
9.2 cweå‚考 131
9.3 å—å½±å“的编程è¯è¨€ 131
9.4 æ¼æ´žè¯¦è¿° 131
9.4.1 æœ‰æ¼æ´žçš„c++异常 132
9.4.2 æœ‰æ¼æ´žçš„结构化异常处ç†(seh) 134
9.4.3 æœ‰æ¼æ´žçš„ä¿¡å·å¤„ç† 136
9.4.4 æœ‰æ¼æ´žçš„c#ã€vb.netå’Œjava 136
9.4.5 æœ‰æ¼æ´žçš„ruby 137
9.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 137
9.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 137
9.7 æŸ¥æ‰¾æ¼æ´žçš„æµ‹è¯•技术 138
9.8 æ¼æ´žç¤ºä¾‹ 139
9.9 弥补措施 139
9.9.1 c++弥补措施 139
9.9.2 seh弥补措施 139
9.9.3 ä¿¡å·å¤„ç†ç¨‹åºçš„弥补措施 140
9.10 å…¶ä»–èµ„æº 140
9.11 æœ¬ç« å°ç»“ 140
第10ç« å‘½ä»¤æ³¨å…¥ 141
10.1 æ¼æ´žæ¦‚è¿° 141
10.2 cweå‚考 141
10.3 å—å½±å“的编程è¯è¨€ 142
10.4 æ¼æ´žè¯¦è¿° 142
10.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 144
10.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 144
10.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 145
10.8 æ¼æ´žç¤ºä¾‹ 145
10.8.1 can-2001-1187 146
10.8.2 can-2002-0652 146
10.9 弥补措施 146
10.9.1 æ•°æ®éªŒè¯ 147
10.9.2 当检查失败时 149
10.10 其他防御措施 149
10.11 å…¶ä»–èµ„æº 149
10.12 æœ¬ç« å°ç»“ 150
第11ç« æœªèƒ½æ£ç¡®å¤„ç†é”™è¯¯ 151
11.1 æ¼æ´žæ¦‚è¿° 151
11.2 cweå‚考 151
11.3 å—å½±å“的编程è¯è¨€ 151
11.4 æ¼æ´žè¯¦ç»†è§£é‡Š 152
11.4.1 äº§ç”Ÿå¤ªå¤šçš„ä¿¡æ¯ 152
11.4.2 忽略了错误 152
11.4.3 曲解了错误 153
11.4.4 ä½¿ç”¨äº†æ— ç”¨çš„è¿”å›žå€¼ 153
11.4.5 ä½¿ç”¨äº†æ— é”™è¯¯çš„è¿”å›žå€¼ 153
11.4.6 å—æ¼æ´žå½±å“çš„c/c++ 153
11.4.7 windowsä¸Šå—æ¼æ´žå½±å“çš„c/c++ 154
11.4.8 ç›¸å…³æ¼æ´ž 155
11.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 155
11.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 155
11.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 155
11.8 æ¼æ´žç¤ºä¾‹ 155
11.8.1 cve-2007-3798 tcpdump print-bgp.cç¼“å†²åŒºæº¢å‡ºæ¼æ´ž 155
11.8.2 can-2004-0077 linuxå†…æ ¸do_mremap 155
11.9 弥补措施 156
11.10 å…¶ä»–èµ„æº 156
11.11 æœ¬ç« å°ç»“ 157
第12ç« ä¿¡æ¯æ³„æ¼ 159
12.1 æ¼æ´žæ¦‚è¿° 159
12.2 cweå‚考 160
12.3 å—å½±å“的编程è¯è¨€ 160
12.4 æ¼æ´žè¯¦è¿° 160
12.4.1 æ—è·¯ 160
12.4.2 tmiï¼šå¤ªå¤šä¿¡æ¯ 161
12.4.3 ä¿¡æ¯æµå®‰å…¨æ¨¡åž‹ 163
12.4.4 å—æ¼æ´žå½±å“çš„c#(以åŠå…¶ä»–编程è¯è¨€) 164
12.4.5 ç›¸å…³æ¼æ´ž 165
12.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 165
12.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 165
12.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 166
12.8 æ¼æ´žç¤ºä¾‹ 166
12.8.1 cve-2008-4638 166
12.8.2 cve-2005-1133 167
12.9 弥补措施 167
12.9.1 c#(以åŠå…¶ä»–编程è¯è¨€)的弥补措施 168
12.9.2 本地网络的弥补措施 168
12.10 其他防御措施 168
12.11 å…¶ä»–èµ„æº 169
12.12 æœ¬ç« å°ç»“ 170
第13ç« ç«žæ€æ¡ä»¶ 171
13.1 æ¼æ´žæ¦‚è¿° 171
13.2 cweå‚考 171
13.3 å—å½±å“的编程è¯è¨€ 172
13.4 æ¼æ´žè¯¦è¿° 172
13.4.1 å—æ¼æ´žå½±å“的代ç 173
13.4.2 ç›¸å…³æ¼æ´ž 174
13.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 174
13.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 174
13.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 175
13.8 æ¼æ´žç¤ºä¾‹ 176
13.8.1 cve-2008-0379 176
13.8.2 cve-2008-2958 176
13.8.3 cve-2001-1349 176
13.8.4 can-2003-1073 176
13.8.5 cve-2000-0849 177
13.9 弥补措施 177
13.10 其他防御措施 179
13.11 å…¶ä»–èµ„æº 179
13.12 æœ¬ç« å°ç»“ 179
第14ç« ä¸è‰¯å¯ç”¨æ€§ 181
14.1 æ¼æ´žæ¦‚è¿° 181
14.2 cweå‚考 181
14.3 å—å½±å“的编程è¯è¨€ 182
14.4 æ¼æ´žè¯¦è¿° 182
14.4.1 è°æ˜¯æ‚¨çš„用户 182
14.4.2 雷区:å‘ç”¨æˆ·å‘ˆçŽ°å®‰å…¨ä¿¡æ¯ 183
14.4.3 ç›¸å…³æ¼æ´ž 183
14.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 183
14.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 184
14.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 184
14.8 æ¼æ´žç¤ºä¾‹ 184
14.8.1 ssl/tlsè¯ä¹¦è®¤è¯ 185
14.8.2 internet explorer 4.0æ ¹è¯ä¹¦å®‰è£… 185
14.9 弥补措施 186
14.9.1 简化ui以便用户å‚与 186
14.9.2 为用户åšå‡ºå®‰å…¨å†³ç– 186
14.9.3 易于有选择地放宽安全ç–ç•¥ 187
14.9.4 æ˜Žç¡®æŒ‡å‡ºåŽæžœ 188
14.9.5 æä¾›å¯æ“作性 189
14.9.6 æä¾›é›†ä¸ç®¡ç† 189
14.10 å…¶ä»–èµ„æº 190
14.11 æœ¬ç« å°ç»“ 191
第15ç« ä¸æ˜“æ›´æ–° 193
15.1 æ¼æ´žæ¦‚è¿° 193
15.2 cweå‚考 193
15.3 å—å½±å“的编程è¯è¨€ 193
15.4 æ¼æ´žè¯¦è¿° 194
15.4.1 æœ‰æ¼æ´žçš„é™„åŠ è½¯ä»¶å®‰è£… 194
15.4.2 æœ‰æ¼æ´žçš„访问控制 194
15.4.3 æœ‰æ¼æ´žçš„æç¤ºç–²åг 194
15.4.4 æœ‰æ¼æ´žçš„æ— 知 194
15.4.5 æœ‰æ¼æ´žçš„æ— 通知更新 194
15.4.6 æœ‰æ¼æ´žçš„一次更新一个系统 195
15.4.7 æœ‰æ¼æ´žçš„强制é‡å¯åЍ 195
15.4.8 æœ‰æ¼æ´žçš„éš¾ä»¥æ‰“è¡¥ä¸ 195
15.4.9 æœ‰æ¼æ´žçš„ç¼ºä¹æ¢å¤è®¡åˆ’ 195
15.4.10 æœ‰æ¼æ´žçš„ä¿¡ä»»dns 195
15.4.11 æœ‰æ¼æ´žçš„ä¿¡ä»»è¡¥ä¸æœåС噍 195
15.4.12 æœ‰æ¼æ´žçš„æ›´æ–°ç¾å 195
15.4.13 æœ‰æ¼æ´žçš„æ‰“开更新包 196
15.4.14 æœ‰æ¼æ´žçš„用户应用程åºçš„æ›´æ–° 196
15.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 196
15.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 197
15.7 å‘çŽ°æ¼æ´žçš„æµ‹è¯•技巧 197
15.8 æ¼æ´žç¤ºä¾‹ 197
15.8.1 苹果公å¸çš„quicktimeæ›´æ–° 197
15.8.2 microsoft sql server 2000è¡¥ä¸ 197
15.8.3 è°·æŒçš„chromeæµè§ˆå™¨ 197
15.9 弥补措施 198
15.9.1 安装附带软件的弥补措施 198
15.9.2 访问控制的弥补措施 198
15.9.3 æç¤ºç–²åŠ³çš„å¼¥è¡¥æŽªæ–½ 198
15.9.4 ç”¨æˆ·æ— çŸ¥çš„å¼¥è¡¥æŽªæ–½ 198
15.9.5 æ— é€šçŸ¥æ›´æ–°çš„å¼¥è¡¥æŽªæ–½ 199
15.9.6 一次更新一个系统的弥补措施 199
15.9.7 强制é‡å¯åŠ¨çš„å¼¥è¡¥æŽªæ–½ 199
15.9.8 难以打补ä¸çš„弥补措施 199
15.9.9 ç¼ºä¹æ¢å¤è®¡åˆ’的弥补措施 200
15.9.10 轻信dns的弥补措施 200
15.9.11 è½»ä¿¡è¡¥ä¸æœåŠ¡å™¨çš„å¼¥è¡¥æŽªæ–½ 200
15.9.12 æ›´æ–°ç¾å的弥补措施 200
15.9.13 打开更新包的弥补措施 201
15.9.14 ç”¨æˆ·åº”ç”¨ç¨‹åºæ›´æ–°çš„弥补措施 201
15.10 其他防御措施 201
15.11 å…¶ä»–èµ„æº 202
15.12 æœ¬ç« å°ç»“ 202
第16ç« æ‰§è¡Œä»£ç çš„æƒé™è¿‡å¤§ 203
16.1 æ¼æ´žæ¦‚è¿° 203
16.2 cweå‚考 203
16.3 å—å½±å“的编程è¯è¨€ 203
16.4 æ¼æ´žè¯¦è¿° 204
16.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 205
16.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 205
16.7 å‘çŽ°æ¼æ´žçš„æµ‹è¯•技巧 205
16.8 æ¼æ´žç¤ºä¾‹ 206
16.9 弥补措施 206
16.9.1 windowsã€cå’Œc++ 206
16.9.2 linuxã€bsdå’Œmac os x 208
16.9.3 .net代ç 209
16.10 其他防御措施 209
16.11 å…¶ä»–èµ„æº 209
16.12 æœ¬ç« å°ç»“ 210
第17ç« æœªèƒ½å®‰å…¨åœ°å˜å‚¨æ•°æ® 211
17.1 æ¼æ´žæ¦‚è¿° 211
17.2 cweå‚考 211
17.3 å—å½±å“的编程è¯è¨€ 211
17.4 æ¼æ´žè¯¦è¿° 212
17.4.1 在å˜å‚¨çš„æ•°æ®ä¸Šé‡‡ç”¨è„†å¼±çš„访问控制 212
17.4.2 å—æ¼æ´žå½±å“的访问控制 213
17.4.3 å·²å˜å‚¨æ•°æ®çš„å¼±åŠ å¯† 215
17.4.4 ç›¸å…³æ¼æ´ž 215
17.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 215
17.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 216
17.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 216
17.8 æ¼æ´žç¤ºä¾‹ 218
17.8.1 cve-2000-0100 218
17.8.2 cve-2005-1411 218
17.8.3 cve-2004-0907 218
17.9 弥补措施 218
17.9.1 windows上c++的弥补措施 219
17.9.2 windows上c#的弥补措施 220
17.9.3 c/c++的弥补措施(gnome) 220
17.10 其他防御措施 221
17.11 å…¶ä»–èµ„æº 221
17.12 æœ¬ç« å°ç»“ 221
第18ç« ç§»åŠ¨ä»£ç çš„æ¼æ´ž 223
18.1 æ¼æ´žæ¦‚è¿° 223
18.2 cweå‚考 224
18.3 å—å½±å“的编程è¯è¨€ 225
18.4 æ¼æ´žè¯¦è¿° 225
18.4.1 æœ‰æ¼æ´žçš„移动代ç 225
18.4.2 æœ‰æ¼æ´žçš„移动代ç 容器 225
18.4.3 ç›¸å…³çš„æ¼æ´ž 225
18.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 226
18.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 226
18.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 227
18.8 æ¼æ´žç¤ºä¾‹ 227
18.8.1 cve-2006-2198 227
18.8.2 cve-2008-1472 227
18.8.3 cve-2008-5697 227
18.9 弥补措施 228
18.9.1 移动代ç 容器的弥补措施 228
18.9.2 移动代ç 的弥补措施 229
18.10 其他防御措施 229
18.11 å…¶ä»–èµ„æº 229
18.12 æœ¬ç« å°ç»“ 230
第ⅲ部分 åŠ å¯† æ¼ æ´ž
第19ç« ä½¿ç”¨åŸºäºŽå¼±å¯†ç 的系统 233
19.1 æ¼æ´žæ¦‚è¿° 233
19.2 cweå‚考 233
19.3 å—å½±å“的编程è¯è¨€ 234
19.4 æ¼æ´žè¯¦è¿° 234
19.4.1 å¯†ç æ³„露 234
19.4.2 å…许使用弱密ç 235
19.4.3 密ç è¿ä»£ 235
19.4.4 ä¸è¦æ±‚改å˜å¯†ç 235
19.4.5 默认密ç 235
19.4.6 釿”¾æ”»å‡» 235
19.4.7 å˜å‚¨å¯†ç è€Œä¸æ˜¯å¯†ç 验è¯å™¨ 236
19.4.8 对密ç 验è¯å™¨çš„æš´åŠ›æ”»å‡» 236
19.4.9 泄露æŸä¸ªå¤±è´¥æºè‡ªä¸æ£ç¡®çš„用户或密ç 237
19.4.10 在线攻击 237
19.4.11 返回é—忘的密ç 237
19.4.12 ç›¸å…³æ¼æ´ž 237
19.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 238
19.5.1 å¯†ç æ³„露 238
19.5.2 å…许弱密ç 238
19.5.3 è¿ä»£å¯†ç 238
19.5.4 ä»Žä¸æ”¹å˜å¯†ç 238
19.5.5 默认密ç 238
19.5.6 釿”¾æ”»å‡» 238
19.5.7 对密ç 验è¯å™¨è¿›è¡Œæš´åŠ›æ”»å‡» 239
19.5.8 å˜å‚¨å¯†ç è€Œä¸æ˜¯å¯†ç 验è¯å™¨ 239
19.5.9 在线攻击 239
19.5.10 返回é—忘的密ç 239
19.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 239
19.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 240
19.7.1 å¯†ç æ³„露 240
19.7.2 釿”¾æ”»å‡» 240
19.7.3 暴力攻击 240
19.8 æ¼æ´žç¤ºä¾‹ 241
19.8.1 zombies ahead 241
19.8.2 è¦ä¿®æ”¹çš„microsoft office密ç 241
19.8.3 adobe acrobatåŠ å¯† 241
19.8.4 wu-ftpdæ ¸å¿ƒè½¬å‚¨ 242
19.8.5 cve-2005-1505 242
19.8.6 cve-2005-0432 242
19.8.7 tenexæ¼æ´ž 242
19.8.8 sarah palin雅虎电å邮件入侵 243
19.9 弥补措施 243
19.9.1 å¯†ç æ³„露的弥补措施 243
19.9.2 弱密ç 的弥补措施 243
19.9.3 è¿ä»£å¯†ç 的弥补措施 243
19.9.4 å¯†ç æ”¹å˜çš„弥补措施 244
19.9.5 默认密ç 的弥补措施 244
19.9.6 釿”¾æ”»å‡»çš„弥补措施 244
19.9.7 密ç 验è¯å™¨çš„弥补措施 244
19.9.8 在线暴力攻击的弥补措施 245
19.9.9 ç™»å½•ä¿¡æ¯æ³„露的弥补措施 246
19.9.10 忘记密ç 的弥补措施 246
19.10 其他防御措施 246
19.11 å…¶ä»–èµ„æº 246
19.12 æœ¬ç« å°ç»“ 247
第20ç« å¼±éšæœºæ•° 249
20.1 æ¼æ´žæ¦‚è¿° 249
20.2 cweå‚考 249
20.3 å—å½±å“的编程è¯è¨€ 250
20.4 æ¼æ´žè¯¦è¿° 250
20.4.1 å—æ¼æ´žå½±å“çš„éžå¯†ç 生æˆå™¨ 250
20.4.2 å—æ¼æ´žå½±å“的密ç 生æˆå™¨ 251
20.4.3 å—æ¼æ´žå½±å“çš„çœŸéšæœºæ•°ç”Ÿæˆå™¨ 251
20.4.4 ç›¸å…³æ¼æ´ž 252
20.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 252
20.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 252
20.6.1 ä»€ä¹ˆæ—¶å€™åº”è¯¥ä½¿ç”¨éšæœºæ•° 252
20.6.2 查找使用prng的地方 253
20.6.3 判æ–crngæ˜¯å¦æ£ç¡®åœ°æ’ç§ 253
20.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 254
20.8 æ¼æ´žç¤ºä¾‹ 254
20.8.1 tcp/ipåºåˆ—å· 254
20.8.2 odfæ–‡æ¡£åŠ å¯†æ ‡å‡† 255
20.8.3 cve-2008-0166 debianâ€œéšæœºâ€å¯†é’¥çš„ç”Ÿæˆ 255
20.8.4 netscapeæµè§ˆå™¨ 256
20.9 弥补措施 256
20.9.1 windowsã€cå’Œc++ 256
20.9.2 带tpm支æŒçš„windows 257
20.9.3 .net代ç 258
20.9.4 unix 258
20.9.5 java 259
20.9.6 釿”¾æ•°å—æµ 259
20.10 其他防御措施 260
20.11 å…¶ä»–èµ„æº 260
20.12 æœ¬ç« å°ç»“ 261
第21ç« ä½¿ç”¨é”™è¯¯çš„å¯†ç æŠ€æœ¯ 263
21.1 æ¼æ´žæ¦‚è¿° 263
21.2 cweå‚考 264
21.3 å—å½±å“的编程è¯è¨€ 264
21.4 æ¼æ´žè¯¦è¿° 264
21.4.1 ä½¿ç”¨è‡ªåˆ¶çš„åŠ å¯†ç®—æ³• 264
21.4.2 在高级åè®®å¯ç”¨æ—¶ï¼Œä»Žä½Žçº§ç®—法ä¸åˆ›å»ºä¸€ä¸ªåè®® 264
21.4.3 使用脆弱的密ç 基元 265
21.4.4 䏿£ç¡®åœ°ä½¿ç”¨å¯†ç 基元 265
21.4.5 使用错误的密ç 基元 267
21.4.6 使用错误的通信åè®® 267
21.4.7 未使用salt 267
21.4.8 æœªä½¿ç”¨éšæœºiv 268
21.4.9 使用脆弱的密钥派生函数 268
21.4.10 未æä¾›å®Œæ•´æ€§æ£€æŸ¥ 268
21.4.11 ä¸ä½¿ç”¨æ•æ·åР坆 268
21.4.12 ç›¸å…³çš„æ¼æ´ž 269
21.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 269
21.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 269
21.6.1 ä½¿ç”¨è‡ªåˆ¶çš„åŠ å¯†ç®—æ³•(vb.netå’Œc++) 269
21.6.2 在高级åè®®å¯ç”¨æ—¶ï¼Œä»Žä½Žçº§ç®—法ä¸åˆ›å»ºä¸€ä¸ªåè®® 270
21.6.3 使用脆弱的密ç 基元(c#å’Œc++) 270
21.6.4 䏿£ç¡®åœ°ä½¿ç”¨å¯†ç 基元(rubyã€c#å’Œc++) 271
21.6.5 使用错误的密ç 基元 271
21.6.6 使用错误的通信åè®® 271
21.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 272
21.8 æ¼æ´žç¤ºä¾‹ 272
21.8.1 æ•°å—è¯ä¹¦å’Œè„†å¼±çš„æ•£åˆ— 272
21.8.2 microsoft office xor困惑 272
21.8.3 adobe acrobat和microsoft office的脆弱kdf 272
21.9 弥补措施 273
21.9.1 ä½¿ç”¨è‡ªåˆ¶åŠ å¯†ç®—æ³•çš„å¼¥è¡¥æŽªæ–½ 273
21.9.2 在高级åè®®å¯ç”¨æ—¶ï¼Œä»Žä½Žçº§ç®—法ä¸åˆ›å»ºä¸€ä¸ªå议的弥补措施 273
21.9.3 使用脆弱的密ç 基元的弥补措施 273
21.9.4 䏿£ç¡®åœ°ä½¿ç”¨å¯†ç 基元的弥补措施 274
21.9.5 使用错误的密ç 基元的弥补措施 275
21.9.6 未使用salt的弥补措施 275
21.9.7 æœªä½¿ç”¨éšæœºiv的弥补措施 275
21.9.8 使用脆弱的密钥派生函数的弥补措施 275
21.9.9 未æä¾›å®Œæ•´æ€§æ£€æŸ¥çš„弥补措施 276
21.9.10 ä¸ä½¿ç”¨æ•æ·åŠ å¯†çš„å¼¥è¡¥æŽªæ–½ 276
21.9.11 使用错误通信å议的弥补措施 277
21.10 其他防御措施 277
21.11 å…¶ä»–èµ„æº 277
21.12 æœ¬ç« å°ç»“ 277
第iv部分 è” ç½‘ æ¼ æ´ž
第22ç« æœªèƒ½ä¿æŠ¤å¥½ç½‘ç»œé€šä¿¡ 281
22.1 æ¼æ´žæ¦‚è¿° 281
22.2 cweå‚考 282
22.3 å—å½±å“的编程è¯è¨€ 282
22.4 æ¼æ´žè¯¦è¿° 282
22.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 285
22.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾æ¼æ´ž 285
22.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 285
22.8 æ¼æ´žç¤ºä¾‹ 286
22.8.1 tcp/ip 286
22.8.2 电å邮件åè®® 286
22.8.3 电å商务 286
22.9 弥补措施 287
22.10 其他防御措施 287
22.11 å…¶ä»–èµ„æº 287
22.12 æœ¬ç« æ€»ç»“ 288
第23ç« æœªèƒ½æ£ç¡®ä½¿ç”¨pki,尤其是ssl 289
23.1 æ¼æ´žæ¦‚è¿° 289
23.2 cweå‚考 290
23.3 å—å½±å“的编程è¯è¨€ 290
23.4 æ¼æ´žè¯¦è¿° 290
23.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 291
23.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 291
23.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 292
23.8 æ¼æ´žç¤ºä¾‹ 293
23.8.1 cve-2007-4680 293
23.8.2 cve-2008-2420 293
23.9 弥补措施 294
23.10 其他防御措施 297
23.11 å…¶ä»–èµ„æº 297
23.12 æœ¬ç« å°ç»“ 297
第24ç« è½»ä¿¡ç½‘ç»œåŸŸåè§£æž 299
24.1 æ¼æ´žæ¦‚è¿° 299
24.2 cweå‚考 299
24.3 å—å½±å“的编程è¯è¨€ 299
24.4 æ¼æ´žè¯¦è¿° 300
24.4.1 å—æ¼æ´žå½±å“çš„åº”ç”¨ç¨‹åº 302
24.4.2 ç›¸å…³æ¼æ´ž 303
24.5 æŸ¥æ‰¾æ¼æ´žæ¨¡å¼ 303
24.6 在代ç å®¡æŸ¥æœŸé—´æŸ¥æ‰¾è¯¥æ¼æ´ž 303
24.7 å‘çŽ°è¯¥æ¼æ´žçš„æµ‹è¯•技巧 304
24.8 æ¼æ´žç¤ºä¾‹ 304
24.8.1 cve-2002-0676 304
24.8.2 cve-1999-0024 305
24.9 弥补措施 305
24.10 å…¶ä»–èµ„æº 306
24.11 æœ¬ç« å°ç»“ 306
