图书介绍
Web应用安全权威指南PDF|Epub|txt|kindle电子书版本网盘下载
![Web应用安全权威指南](https://www.shukui.net/cover/49/30622811.jpg)
- (日)徳丸浩著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115370471
- 出版时间:2014
- 标注页数:378页
- 文件大小:53MB
- 文件页数:402页
- 主题词:网页制作工具
PDF下载
下载说明
Web应用安全权威指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 什么是Web应用的安全隐患1
1.1 安全隐患即“能用于作恶的Bug”2
1.2 为什么存在安全隐患会有问题3
经济损失3
法律要求3
对用户造成不可逆的伤害4
欺骗用户4
被用于构建僵尸网络4
1.3 产生安全隐患的原因6
1.4 安全性Bug与安全性功能7
1.5 本书的结构8
第2章 搭建试验环境9
2.1 试验环境概要10
2.2 安装VMware Player11
什么是VMware Player11
下载VMware Player11
安装VMware Player12
2.3 安装虚拟机及运行确认14
虚拟机启动确认14
虚拟机的使用方法15
编辑hosts文件16
使用ping确认连接16
Apache与PHP的运行确认17
设置并确认邮箱账号17
2.4 安装Fiddler18
什么是Fiddler18
安装Fiddler18
Fiddler的运行确认及简单用法18
参考:虚拟机的数据一览19
参考:如果无法连接试验环境的POP3服务器20
第3章 Web安全基础:HTTP、会话管理、同源策略21
3.1 HTTP与会话管理22
为什么要学习HTTP22
最简单的HTTP22
使用Fiddler观察HTTP消息23
请求消息24
响应消息24
状态行25
响应头信息25
如果将HTTP比喻为对话25
输入-确认-注册模式26
POST方法28
消息体28
百分号编码29
Referer29
GET和POST的使用区别29
hidden参数能够被更改30
将hidden参数的更改比作对话32
hidden参数的优点32
无状态的HTTP认证33
体验Basic认证33
专栏 认证与授权36
Cookie与会话管理36
使用Cookie的会话管理39
会话管理的拟人化解说39
会话ID泄漏的原因42
Cookie的属性42
专栏 Cookie Monster Bug44
总结45
3.2 被动攻击与同源策略46
主动攻击与被动攻击46
主动攻击46
被动攻击46
恶意利用正规网站进行的被动攻击47
跨站被动攻击48
浏览器如何防御被动攻击48
沙盒49
同源策略49
应用程序安全隐患与被动攻击52
专栏 第三方JavaScript53
JavaScript以外的跨域访问54
frame元素与iframe元素54
专栏 X-FRAME-OPTIONS54
img元素54
script元素54
CSS55
form元素的action属性55
总结56
第4章 Web应用的各种安全隐患57
4.1 Web应用的功能与安全隐患的对应关系58
安全隐患产生于何处58
注入型隐患59
总结60
4.2 输入处理与安全性61
什么是Web应用的输入处理61
检验字符编码62
转换字符编码62
检验并转换字符编码的实例62
专栏 字符编码的自动转换与安全性64
输入校验64
输入校验的目的64
输入校验与安全性65
二进制安全与空字节攻击65
仅校验输入值并不是安全性策略66
输入校验的依据是应用程序的规格67
哪些参数需要校验67
PHP的正则表达式库67
使用正则表达式检验输入值的实例(1)1~5个字符的字母数字68
使用正则表达式检验输入值的实例(2)住址栏70
专栏 请注意mb_ereg中的\d与\w70
范例70
专栏 输入校验与框架71
总结72
参考:表示“非控制字符的字符”的正则表达式73
4.3 页面显示的相关问题75
4.3.1 跨站脚本(基础篇)75
概要75
攻击手段与影响76
XSS窃取Cookie值76
通过JavaScript攻击79
篡改网页80
反射型XSS与存储型XSS82
安全隐患的产生原因84
HTML转义的概要84
元素内容的XSS85
没有用引号括起来的属性值的XSS85
用引号括起来的属性值的XSS85
对策86
XSS对策的基础86
指定响应的字符编码87
XSS的辅助性对策88
对策总结89
参考:使用Perl的对策示例89
使用Perl进行HTML转义的方法89
指定响应的字符编码89
4.3.2 跨站脚本(进阶篇)90
href属性与src属性的XSS91
生成URL时的对策92
校验链接网址92
JavaScript的动态生成92
事件绑定函数的XSS92
script元素的XSS94
JavaScript字符串字面量动态生成的对策95
DOM based XSS97
允许HTML标签或CSS时的对策99
参考:Perl中转义Unicode的函数99
4.3.3 错误消息导致的信息泄漏100
总结100
继续深入学习100
4.4 SQL调用相关的安全隐患101
4.4.1 SQL注入101
概要101
攻击手段与影响102
示例脚本解说102
错误消息导致的信息泄漏103
UNION SELECT致使的信息泄漏104
使用SQL注入绕过认证104
通过SQL注入攻击篡改数据106
其他攻击107
专栏 数据库中表名与列名的调查方法108
安全隐患的产生原因109
字符串字面量的问题109
针对数值的SQL注入攻击110
对策110
使用占位符拼接SQL语句111
专栏 采用MDB2的原因111
为什么使用占位符会安全111
参考:LIKE语句与通配符113
使用占位符的各种处理114
SQL注入的辅助性对策116
总结117
继续深入学习117
参考:无法使用占位符时的对策117
参考:Perl+MySQL的安全连接方法118
参考:PHP+PDO+MySQL的安全连接方法118
参考:Java+MySQL的安全连接方法118
4.5 关键处理中引入的安全隐患120
4.5.1 跨站请求伪造(CSRF)120
概要120
攻击手段与影响121
“输入-执行”模式的CSRF攻击121
CSRF攻击与XSS攻击124
存在确认页面时的CSRF攻击125
专栏 针对内部网络的CSRF攻击127
安全隐患的产生原因128
对策129
筛选出需要防范CSRF攻击的页面129
确认是正规用户自愿发送的请求130
专栏 令牌与一次性令牌131
CSRF的辅助性对策133
对策总结133
4.6 不完善的会话管理134
4.6.1 会话劫持的原因及影响134
预测会话ID134
窃取会话ID134
挟持会话ID135
会话劫持的方法总结135
会话劫持的影响135
4.6.2 会话ID可预测136
概要136
攻击手段与影响136
常见的会话ID生成方法136
使用推测出的会话ID尝试伪装137
伪装造成的影响137
安全隐患的产生原因137
对策138
改善PHP的会话ID的随机性的方法138
参考:自制会话管理机制产生的其他隐患139
4.6.3 会话ID嵌入URL139
概要139
攻击手段与影响140
会话ID嵌入URL所需的条件140
范例脚本解说141
通过Referer泄漏会话ID所需的条件142
攻击流程142
事故性的会话ID泄漏143
影响144
安全隐患的产生原因144
对策144
PHP144
Java Servlet(J2EE)145
ASP.NET145
4.6.4 固定会话ID145
概要145
攻击手段与影响146
示例脚本介绍146
会话固定攻击解说148
登录前的会话固定攻击148
会话采纳151
仅在Cookie中保存会话ID的网站固定会话ID151
会话固定攻击的影响151
安全隐患的产生原因152
对策152
无法更改会话ID时采用令牌153
登录前的会话固定攻击的对策154
总结154
4.7 定向相关的安全隐患155
4.7.1 自由重定向漏洞155
概要155
攻击手段与影响156
安全隐患的产生原因159
允许自由重定向的情况159
对策160
固定重定向的目标URL160
使用编号指定重定向的目标URL160
校验重定向的目标域名160
专栏 警告页面162
4.7.2 HTTP消息头注入162
概要162
攻击手段与影响163
重定向至外部域名165
专栏 HTTP响应截断攻击166
生成任意Cookie166
显示伪造页面168
安全隐患的产生原因170
专栏 HTTP消息头与换行171
对策171
对策1:不将外界参数作为HTTP响应消息头输出171
对策2:执行以下两项内容171
专栏 PHP的header函数中进行的换行符校验173
4.7.3 重定向相关的安全隐患总结173
4.8 Cookie输出相关的安全隐患174
4.8.1 Cookie的用途不当174
不该保存在Cookie中的数据174
参考:最好不要在Cookie中保存数据的原因174
专栏Padding Oracle攻击与MS10-070176
4.8.2 Cookie的安全属性设置不完善176
概要176
攻击手段与影响177
关于抓包方法的注意点180
安全隐患的产生原因181
什么样的应用程序不能在Cookie中设置安全属性181
对策181
给保存会话ID的Cookie设置安全属性的方法182
使用令牌的对策182
使用令牌能确保安全性的原因184
除安全属性外其他属性值需要注意的地方184
Domain属性184
Path属性185
Expires属性185
HttpOnly属性185
总结185
4.9 发送邮件的问题186
4.9.1 发送邮件的问题概要186
邮件头注入漏洞186
使用hidden参数保存收件人信息186
参考:邮件服务器的开放转发187
4.9.2 邮件头注入漏洞187
概要187
攻击手段与影响188
攻击方式1:添加收件人190
攻击方式2:篡改正文191
通过邮件头注入攻击添加附件192
安全隐患的产生原因193
对策194
使用专门的程序库来发送邮件194
不将外界传入的参数包含在邮件头中194
发送邮件时确保外界传入的参数中不包含换行符195
邮件头注入的辅助性对策195
总结196
继续深入学习196
4.10 文件处理相关的问题197
4.10.1 目录遍历漏洞197
概要197
攻击手段与影响198
专栏 从脚本源码开始的一连串的信息泄漏200
安全隐患的产生原因200
对策201
避免由外界指定文件名201
文件名中不允许包含目录名201
专栏 basename函数与空字节202
限定文件名中仅包含字母和数字202
总结203
4.10.2 内部文件被公开203
概要203
攻击手段与影响203
安全隐患的产生原因204
对策205
参考:Apache中隐藏特定文件的方法205
4.11 调用OS命令引起的安全隐患206
4.11.1 OS命令注入206
概要206
攻击手段与影响207
调用sendmail命令发送邮件207
OS命令注入攻击与影响209
安全隐患的产生原因210
在Shell中执行多条命令210
使用了内部调用Shell的函数211
安全隐患的产生原因总结212
对策212
在设计阶段决定对策方针213
选择不调用OS命令的实现方法213
避免使用内部调用Shell的函数213
不将外界输入的字符串传递给命令行参数216
使用安全的函数对传递给OS命令的参数进行转义216
OS命令注入攻击的辅助性对策217
参考:内部调用Shell的函数218
4.12 文件上传相关的问题219
4.12.1 文件上传问题的概要219
针对上传功能的DoS攻击219
专栏 内存使用量与CPU使用时间等其他需要关注的资源220
使上传的文件在服务器上作为脚本执行220
诱使用户下载恶意文件221
越权下载文件222
4.12.2 通过上传文件使服务器执行脚本222
概要222
攻击手段与影响223
示例脚本解说223
专栏 警惕文件名中的XSS224
PHP脚本的上传与执行224
安全隐患的产生原因225
对策225
专栏 校验扩展名时的注意点228
4.12.3 文件下载引起的跨站脚本228
概要228
攻击手段与影响229
图像文件引起的XSS229
PDF下载引起的XSS231
安全隐患的产生原因234
内容为图像时234
内容不为图像时235
对策236
文件上传时的对策236
专栏 BMP格式的注意点与MS07-057238
文件下载时的对策238
其他对策239
专栏 将图像托管在其他域名240
参考:用户PC中没有安装对应的应用程序时240
总结241
4.13 include相关的问题242
4.13.1 文件包含攻击242
概要242
攻击手段与影响243
文件包含引发的信息泄漏244
执行脚本1:远程文件包含攻击(RFI)244
专栏 RFI攻击的变种245
执行脚本2:恶意使用保存会话信息的文件246
安全隐患的产生原因248
对策248
总结248
4.14 eval相关的问题249
4.14.1 eval注入249
概要249
攻击手段与影响250
存在漏洞的应用250
攻击手段252
安全隐患的产生原因253
对策253
不使用eval253
避免eval的参数中包含外界传入的参数254
限制外界传入eval的参数中只包含字母和数字254
参考:Perl的eval代码块形式254
总结255
继续深入学习255
4.15 共享资源相关的问题256
4.15.1 竞态条件漏洞256
概要256
攻击手段与影响257
安全隐患的产生原因258
对策259
避免使用共享资源259
使用互斥锁259
总结260
参考:Java Servlet的其他注意点260
第5章 典型安全功能261
5.1 认证262
5.1.1 登录功能262
针对登录功能的攻击262
通过SQL注入攻击来跳过登录功能262
通过SQL注入攻击获取用户密码263
在登录页面进行暴力破解263
通过社会化攻击得到用户密码263
通过钓鱼方法获取密码264
登录功能被破解后的影响264
如何防止非法登录264
确保系统中不存在SQL注入等安全性Bug264
设置难以猜测的密码265
密码的字符种类和长度要求265
密码的使用现状266
应用程序设计中关于密码的需求266
严格的密码检查原则267
5.1.2 针对暴力破解攻击的对策268
初步认识账号锁定268
暴力破解攻击的检测和对策268
字典攻击269
Joe账号检索269
逆向暴力破解269
针对变种暴力破解的对策269
5.1.3 密码保存方法271
保护密码的必要性271
利用加密方式进行密码保护及其注意事项271
专栏 数据库加密和密码保护272
利用信息摘要来进行密码保护及其注意事项272
什么是信息摘要272
专栏 密码学级别的散列函数需要满足的要求273
利用信息摘要保护密码273
威胁1:离线暴力破解274
威胁2:彩虹破解(Rainbow Crack)275
威胁3:在用户数据库里创建密码字典276
如何防止散列值被破解277
对策1:salt(加盐)277
对策2:stretching(延展计算)278
实现示例278
专栏 密码泄露途径280
5.1.4 自动登录280
危险的实现方式示例281
安全的自动登录实现方式281
延长会话有效期282
使用令牌实现自动登录283
基于认证票的自动登录方式286
三种方法的比较286
如何降低自动登录带来的风险286
5.1.5 登录表单286
专栏 密码确实需要掩码显示吗287
5.1.6 如何显示错误消息288
5.1.7 退出登录功能289
5.1.8 认证功能总结290
参考:彩虹表原理290
5.2 账号管理293
5.2.1 用户注册293
邮箱地址确认293
防止用户ID重复295
例子1:ID相同密码不同可以注册的网站295
例子2:用户ID没有添加唯一性约束的网站295
应对自动用户注册296
利用CAPTCHA防止自动注册296
5.2.2 修改密码297
确认当前密码297
修改密码后向用户发送邮件通知298
密码修改功能容易发生的漏洞298
5.2.3 修改邮箱地址298
修改邮箱地址功能要考虑的安全对策299
5.2.4 密码找回299
面向管理员的密码找回功能300
面向用户的密码找回功能300
对用户进行身份确认301
如何发送密码通知301
5.2.5 账号冻结302
5.2.6 账号删除303
5.2.7 账号管理总结303
5.3 授权304
5.3.1 什么是授权304
5.3.2 典型的授权漏洞304
更改资源ID后可以查看没有权限查看的信息304
只控制菜单的显示或不显示305
使用hidden参数或者Cookie保存权限信息306
授权漏洞总结307
专栏 将私密信息嵌入URL进行授权处理307
5.3.3 授权管理的需求设计307
专栏 什么是角色308
5.3.4 如何正确实现授权管理308
5.3.5 总结309
5.4 日志输出310
5.4.1 日志输出的目的310
5.4.2 日志种类310
错误日志311
访问日志311
调试日志311
5.4.3 有关日志输出的需求311
需要记录到日志里的所有事件312
日志里应包括的信息和格式312
日志文件保护312
日志文件保存位置313
日志文件保存期限313
服务器的时间调整313
5.4.4 实现日志输出313
5.4.5 总结314
第6章 字符编码和安全315
6.1 字符编码和安全概要316
6.2 字符集317
什么是字符集317
ASCII和ISO-8859-1317
JIS规定的字符集318
微软标准字符集318
Unicode319
GB2312319
GBK319
GB18030320
不同字符相同编码的问题320
字符集的处理引起的漏洞320
6.3 字符编码方式321
什么是编码方式321
Shift_JIS321
EUC-JP325
ISO-2022-JP326
UTF-16326
UTF-8327
GB2312329
GBK330
GB18030331
6.4 由字符编码引起的漏洞总结332
字符编码方式中非法数据导致的漏洞332
对字符编码方式处理存在纰漏导致的漏洞332
在不同字符集间变换导致的漏洞332
6.5 如何正确处理字符编码333
在应用内统一使用的字符集333
输入非法数据时报错并终止处理335
处理数据时使用正确的编码方式335
专栏 调用htmlspecialchars函数时必须指定字符编码方式336
输出时设置正确的字符编码方式336
其他对策:尽量避免编码自动检测337
6.6 总结338
第7章 如何提高Web网站的安全性339
7.1 针对Web服务器的攻击途径和防范措施341
7.1.1 利用基础软件漏洞进行攻击341
7.1.2 非法登录341
7.1.3 对策341
停止运行不需要的软件342
定期实施漏洞防范措施342
选定软件时确认软件的升级状况342
确定打补丁方式343
关注各种漏洞相关信息344
确认漏洞后调查补丁状况以及防范对策、并制定对应计划344
执行漏洞对应计划345
对不需要对外公开的端口或服务加以访问限制346
通过端口扫描确认各端口服务状态347
提高认证强度348
7.2 防范伪装攻击的对策349
7.2.1 网络伪装的手段349
针对DNS服务器的攻击349
专栏 VISA域名问题350
ARP欺骗攻击350
7.2.2 钓鱼攻击350
7.2.3 Web网站的伪装攻击对策351
网络层的对策351
同一网段内不放置可能存在漏洞的服务器351
强化DNS运维351
引入SSL/TLS352
专栏 免费的数字证书354
使用便于记忆的域名354
7.3 防范网络监听、篡改的对策355
7.3.1 网络监听、篡改的途径355
通过无线网进行监听、篡改355
利用交换机端口镜像355
利用代理服务器355
伪装成DHCP服务器355
使用ARP欺骗攻击和DNS缓存污染攻击(DNS cache poisoning)355
7.3.2 中间人攻击356
使用Fiddler模拟中间人攻击356
专栏 请不要手动安装证书358
7.3.3 对策359
使用SSL时的注意事项359
专栏 SSL认证标签360
7.4 防范恶意软件的对策361
7.4.1 什么是Web网站的恶意软件对策361
7.4.2 恶意软件的感染途径361
7.4.3 Web网站恶意软件防范对策概要362
7.4.4 如何确保服务器不被恶意软件感染363
探讨是否需要制定针对恶意软件的防范措施363
制定病毒防范政策并向用户公开363
使用防病毒软件364
专栏 Web网站的防病毒对策和Gumblar的关系365
7.5 总结366
第8章 开发安全的Web应用所需要的管理367
8.1 开发管理中的安全对策概要368
8.2 开发体制369
开发标准的制定369
教育培训369
8.3 开发过程371
8.3.1 规划阶段的注意事项371
8.3.2 招标时的注意事项371
专栏 谁应该对安全漏洞负责372
8.3.3 需求分析时的注意事项372
8.3.4概要设计的推进方法373
8.3.5 详细设计和编码阶段的注意事项374
8.3.6 安全性测试的重要性及其方法374
8.3.7 Web健康诊断基准374
8.3.8 承包方测试376
8.3.9 发包方测试(验收)376
8.3.10 运维阶段的注意事项377
8.4 总结378