在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?本书将带你走进web安全的世界,让你了解web安全的方方面面。黑客不再变得神秘,攻击技术原来我也可以会,小网站主自己也能找到正确的安全道路。大公司是怎么做安全的,为什么要选择这样的方案呢?你能在本书中找到答案。详细的剖析,让你不仅能“知其然”,更能“知其所以然”。
《白帽子讲web安全》是根据作者若干年实际工作中积累下来的丰富经验而写成的,在解决方案上具有极强的可操作性,深入分析了各种错误的解决方案与误区,对安全工作者有很好的参考价值。安全开发流程与运营的介绍,对同行业的工作具有指导意义。
编辑推荐
“安全是互联网公司的生命,也是每一位网民的最基本需求。
一位天天听到炮声的白帽子和你分享如何呵护生命,满足最基本需求。这是一本能闻到硝烟味道的书。”
——阿里巴巴集团首席架构师 阿里云总裁 王坚
白帽子讲web安全 作译者:
吴翰清,毕业于西安交通大学少年班,从2000年开始研究 *** 攻防技术。在大学期间创立
了在中国安全圈内极具影响力的组织“幻影”。
2005年加入********,负责 *** 安全。工作期间,对********的安全开发流程、应用安全建设做出了杰出的贡献,并多次获得公司的表彰。曾先后帮助 *** 、支付宝建立了应用安全体系,保障公司业务得以快速而安全地发展。
2009年起,加入********支计算有限公司,负责云计算安全、反 *** 欺诈等工作,是********集团更具价值的安全专家。长期专注于安全技术的创新与实践,多有建树。同时还是owasp在中国的区域负责人之一,在互联网安全领域有着极其丰富的经验。平时乐于分享,个人博客的访问量迄今超过200万。多年来活跃在安全社区中,有着巨大的影响力。多次受邀在国内、国际安全会议上演讲,是中国安全行业的领军人物之一。
白帽子讲web安全 目录:
之一篇 世界观安全
第1章 我的安全世界观 2
1.1 web安全简史 2
1.1.1 中国黑客简史 2
1.1.2 黑客技术的发展历程 3
1.1.3 web安全的兴起 5
1.2 黑帽子,白帽子 6
1.3 返璞归真,揭秘安全的本质 7
1.4 破除迷信,没有银弹 9
1.5 安全三要素 10
1.6 如何实施安全评估 11
1.6.1 资产等级划分 12
1.6.2 威胁分析 13
1.6.3 风险分析 14
1.6.4 设计安全方案 15
1.7 白帽子兵法 16
1.7.1 secure by default原则 16
1.7.2 纵深防御原则 18
1.7.3 数据与代码分离原则 19
.1.7.4 不可预测性原则 21
1.8 小结 22
(附)谁来为漏洞买单? 23
第二篇 客户端脚本安全
第2章 浏览器安全 26
2.1 同源策略 26
2.2 浏览器沙箱 30
2.3 恶意网址拦截 33
2.4 高速发展的浏览器安全 36
2.5 小结 39
第3章 跨站脚本攻击(xss) 40
3.1 xss简介 40
3.2 xss攻击进阶 43
3.2.1 初探xss payload 43
3.2.2 强大的xss payload 46
3.2.3 xss 攻击平台 62
3.2.4 终极武器:xss worm 64
3.2.5 调试javascript 73
3.2.6 xss构造技巧 76
3.2.7 变废为宝:mission impossible 82
3.2.8 容易被忽视的角落:flash xss 85
3.2.9 真的高枕无忧吗:javascript开发框架 87
3.3 xss的防御 89
3.3.1 四两拨千斤:httponly 89
3.3.2 输入检查 93
3.3.3 输出检查 95
3.3.4 正确地防御xss 99
3.3.5 处理富文本 102
3.3.6 防御dom based xss 103
3.3.7 换个角度看xss的风险 107
3.4 小结 107
第4章 跨站点请求伪造(csrf) 109
4.1 csrf简介 109
4.2 csrf进阶 111
4.2.1 浏览器的cookie策略 111
4.2.2 p3p头的副作用 113
4.2.3 get? post? 116
4.2.4 flash csrf 118
4.2.5 csrf worm 119
4.3 csrf的防御 120
4.3.1 验证码 120
4.3.2 referer check 120
4.3.3 anti csrf token 121
4.4 小结 124
第5章 点击劫持(clickjacking) 125
5.1 什么是点击劫持 125
5.2 flash点击劫持 127
5.3 图片覆盖攻击 129
5.4 拖拽劫持与数据窃取 131
5.5 clickjacking 3.0:触屏劫持 134
5.6 防御clickjacking 136
5.6.1 frame busting 136
5.6.2 x-frame-options 137
5.7 小结 138
第6章 html 5 安全 139
6.1 html 5新标签 139
6.1.1 新标签的xss 139
6.1.2 iframe的sandbox 140
6.1.3 link types: noreferrer 141
6.1.4 canvas的妙用 141
6.2 其他安全问题 144
6.2.1 cross-origin resource sharing 144
6.2.2 postmessage——跨窗口传递消息 146
6.2.3 web storage 147
6.3 小结 150
第三篇 服务器端应用安全
第7章 注入攻击 152
7.1 sql注入 152
7.1.1 盲注(blind injection) 153
7.1.2 timing attack 155
7.2 数据库攻击技巧 157
7.2.1 常见的攻击技巧 157
7.2.2 命令执行 158
7.2.3 攻击存储过程 164
7.2.4 编码问题 165
7.2.5 sql column truncation 167
7.3 正确地防御sql注入 170
7.3.1 使用预编译语句 171
7.3.2 使用存储过程 172
7.3.3 检查数据类型 172
7.3.4 使用安全函数 172
7.4 其他注入攻击 173
7.4.1 xml注入 173
7.4.2 代码注入 174
7.4.3 crlf注入 176
7.5 小结 179
第8章 文件上传漏洞 180
8.1 文件上传漏洞概述 180
8.1.1 从fckeditor文件上传漏洞谈起 181
8.1.2 绕过文件上传检查功能 182
8.2 功能还是漏洞 183
8.2.1 apache文件解析问题 184
8.2.2 iis文件解析问题 185
8.2.3 php cgi路径解析问题 187
8.2.4 利用上传文件钓鱼 189
8.3 设计安全的文件上传功能 190
8.4 小结 191
第9章 认证与会话管理 192
9.1 who am i? 192
9.2 密码的那些事儿 193
9.3 多因素认证 195
9.4 session与认证 196
9.5 session fixation攻击 198
9.6 session保持攻击 199
9.7 单点登录(sso) 201
9.8 小结 203
第10章 访问控制 205
10.1 what can i do? 205
10.2 垂直权限管理 208
10.3 水平权限管理 211
10.4 oauth简介 213
10.5 小结 219
第11章 加密算法与随机数 220
11.1 概述 220
11.2 stream cipher attack 222
11.2.1 reused key attack 222
11.2.2 bit-flipping attack 228
11.2.3 弱随机iv问题 230
11.3 wep破解 232
11.4 ecb模式的缺陷 236
11.5 padding oracle attack 239
11.6 密钥管理 251
11.7 伪随机数问题 253
11.7.1 弱伪随机数的麻烦 253
11.7.2 时间真的随机吗 256
11.7.3 破解伪随机数算法的种子 257
11.7.4 使用安全的随机数 265
11.8 小结 265
(附)understanding md5 length extension attack 267
第12章 web框架安全 280
12.1 mvc框架安全 280
12.2 模板引擎与xss防御 282
12.3 web框架与csrf防御 285
12.4 http headers管理 287
12.5 数据持久层与sql注入 288
12.6 还能想到什么 289
12.7 web框架自身安全 289
12.7.1 struts 2命令执行漏洞 290
12.7.2 struts 2的问题补丁 291
12.7.3 spring mvc命令执行漏洞 292
12.7.4 django命令执行漏洞 293
12.8 小结 294
第13章 应用层拒绝服务攻击 295
13.1 ddos简介 295
13.2 应用层ddos 297
13.2.1 cc攻击 297
13.2.2 限制请求频率 298
13.2.3 道高一尺,魔高一丈 300
13.3 验证码的那些事儿 301
13.4 防御应用层ddos 304
13.5 资源耗尽攻击 306
13.5.1 slowloris攻击 306
13.5.2 http post dos 309
13.5.3 server limit dos 310
13.6 一个正则引发的血案:redos 311
13.7 小结 315
第14章 php安全 317
14.1 文件包含漏洞 317
14.1.1 本地文件包含 319
14.1.2 远程文件包含 323
14.1.3 本地文件包含的利用技巧 323
14.2 变量覆盖漏洞 331
14.2.1 全局变量覆盖 331
14.2.2 extract()变量覆盖 334
14.2.3 遍历初始化变量 334
14.2.4 import_request_variables变量覆盖 335
14.2.5 parse_str()变量覆盖 335
14.3 代码执行漏洞 336
14.3.1 “危险函数”执行代码 336
14.3.2 “文件写入”执行代码 343
14.3.3 其他执行代码方式 344
14.4 定制安全的php环境 348
14.5 小结 352
第15章 web server配置安全 353
15.1 apache安全 353
15.2 nginx安全 354
15.3 jboss远程命令执行 356
15.4 tomcat远程命令执行 360
15.5 http parameter pollution 363
15.6 小结 364
第四篇 互联网公司安全运营
第16章 互联网业务安全 366
16.1 产品需要什么样的安全 366
16.1.1 互联网产品对安全的需求 367
16.1.2 什么是好的安全方案 368
16.2 业务逻辑安全 370
16.2.1 永远改不掉的密码 370
16.2.2 谁是大赢家 371
16.2.3 瞒天过海 372
16.2.4 关于密码取回流程 373
16.3 账户是如何被盗的 374
16.3.1 账户被盗的途径 374
16.3.2 分析账户被盗的原因 376
16.4 互联网的垃圾 377
16.4.1 垃圾的危害 377
16.4.2 垃圾处理 379
16.5 关于 *** 钓鱼 380
16.5.1 钓鱼网站简介 381
16.5.2 邮件钓鱼 383
16.5.3 钓鱼网站的防控 385
16.5.4 *** 流程钓鱼 388
16.6 用户隐私保护 393
16.6.1 互联网的用户隐私挑战 393
16.6.2 如何保护用户隐私 394
16.6.3 do-not-track 396
16.7 小结 397
(附)麻烦的终结者 398
第17章 安全开发流程(sdl) 402
17.1 sdl简介 402
17.2 敏捷sdl 406
17.3 sdl实战经验 407
17.4 需求分析与设计阶段 409
17.5 开发阶段 415
17.5.1 提供安全的函数 415
17.5.2 代码安全审计工具 417
17.6 测试阶段 418
17.7 小结 420
第18章 安全运营 422
18.1 把安全运营起来 422
18.2 漏洞修补流程 423
18.3 安全监控 424
18.4 入侵检测 425
18.5 紧急响应流程 428
18.6 小结 430
(附)谈谈互联网企业安全的发展方向 431
我写的DS18B20程序,可参考
#include reg52.h
#include intrins.h
#include stdio.h
#define uchar unsigned char
#define uint unsigned int
*** it xssj=P1^0; //显示数据
*** it xssz=P1^1; //显示时钟
*** it control=P1^3;
*** it DQ = P1^4;
bit flag;
uint Temperature;
uint temp[9];
uchar temp_buff[9]; //存储读取的字节,read scratchpad为9字节,read rom ID为8字节
uchar id_buff[8];
uchar *p;
uchar crc_data;
uint Temperature_h;
uint Temperature_l;
uchar code Crcontrolable [256]={
0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};
//uchar code tab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极0-F代码
uchar code tab[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,0x40};//共阴极0-F代码
void delay1ms(int t)
int i,j,k=0;
for(k=0;kt;k++)
{for(j=0;j=25;j++)
{for(i=0;i255;i++){;}}}
*Funcontrolion:延时处理
*parameter:
*Return:
*Modify:
void TempDelay (uchar us)
while(us--);
*Funcontrolion:18B20初始化
*parameter:
*Return:
*Modify:
void Init18b20 (void)
DQ=1;
_nop_();
DQ=0;
TempDelay(86); //delay 530 uS//80
_nop_();
DQ=1;
TempDelay(14); //delay 100 uS//14
_nop_();
_nop_();
_nop_();
if(DQ==0)
flag = 1; //detecontrol 1820 success!
TempDelay(20); //delay 530 uS//80
else
flag = 0; //detecontrol 1820 fail!
TempDelay(20); //20
_nop_();
_nop_();
DQ = 1;
*Funcontrolion:向18B20写入一个字节
*parameter:
*Return:
*Modify:
void WriteByte (uchar wr) //单字节写入
uchar i;
for (i=0;i8;i++)
DQ = 0;
_nop_();
DQ=wr0x01;
TempDelay(5); //delay 45 uS //5
_nop_();
_nop_();
DQ=1;
wr = 1;
*Funcontrolion:读18B20的一个字节
*parameter:
*Return:
*Modify:
uchar ReadByte (void) //读取单字节
uchar i,u=0;
for(i=0;i8;i++)
DQ = 0;
u = 1;
DQ = 1;
if(DQ==1)
u |= 0x80;
TempDelay (4);
_nop_();
return(u);
*Funcontrolion:读18B20
*parameter:
*Return:
*Modify:
void read_bytes (uchar j)
uchar i;
for(i=0;ij;i++)
*p = ReadByte();
p++;
*Funcontrolion:CRC校验
*parameter:
*Return:
*Modify:
uchar CRC (uchar j)
uchar i,crc_data=0;
for(i=0;ij;i++) //查表校验
crc_data = Crcontrolable[crc_data^temp_buff[i]];
return (crc_data);
*Funcontrolion:读取温度
*parameter:
*Return:
*Modify:
void GemTemp (void)
read_bytes (9);
if (CRC(9)==0) //校验正确
Temperature = temp_buff[1]*0x100 + temp_buff[0];
Temperature /= 16;//17.7;//16;
TempDelay(1);
*Funcontrolion:内部配置
*parameter:
*Return:
*Modify:
void Config18b20 (void) //重新配置报警限定值和分辨率
Init18b20();
WriteByte(0x7f); //set 11 bit (0.125)
Init18b20();
WriteByte(0xcc); //skip rom
WriteByte(0x48); //保存设定值
Init18b20();
WriteByte(0xcc); //skip rom
WriteByte(0xb8); //回调设定值
*Funcontrolion:读18B20ID
*parameter:
*Return:
*Modify:
void ReadID (void)//读取器件 id
Init18b20();
if(flag ==1)
WriteByte(0xcc);
WriteByte(0x44);
*Funcontrolion:18B20ID全处理
*parameter:
*Return:
*Modify:
void TemperatuerResult(void)
p = id_buff;
ReadID();
Config18b20();
Init18b20 ();
WriteByte(0xcc); //skip rom
WriteByte(0x44); //Temperature convert
Init18b20 ();
WriteByte(0xcc); //skip rom
WriteByte(0xbe); //read Temperature
p = temp_buff;
GemTemp();
void disp(uchar i)
int xssjhc; //显示数据缓冲
uchar a;
xssjhc=tab[i];
for(a=0;a8;a++)
xssz=0;
xssj=xssjhc0x80;
xssjhc=1;
xssz=1;
void panduan()
if(Temperature20)
control=1;
if(Temperature19)
control=0;
void main()
while(1)
TemperatuerResult();
Temperature_h=Temperature/10;
Temperature_l=Temperature%10;
panduan();
disp(Temperature_h);
delay1ms(50);
disp(Temperature_l);
delay1ms(50);
是支持的,
创维f27g2q拥有2K分辨率以及144Hz刷新率,作为一个主流显示器来说完全达到了主流的标准。
XSS性能也就和PS4 PRO差不多,
没有1080P 144HZ的性能,只能1080 60帧或者4K 30帧,
就算PS5和XSX也就是4K 60帧,家用游戏机都是追求帧数稳定,锁帧的,一般更大60帧
画面应该不行的,友情提示,ps用2k显示器很蛋疼,因为ps不支持2k分辨率输出,要么4k要么1080p,同时不管xbox还是ps都不支持144hz。ps:xbox支持原生2k输出
具体是1080还是4k要看显示器是否支持把4k信号转成2k输出,去查显示器edid。很多2k显示器接ps都会1080p输出,再显示器拉伸成2k,就即使接ps5也很糊。某些2k显示器可以让ps5输出4k信号。
再说144hz,还是edid,ps5支持120hz输出,ps4pro不行,但很多144hz显示器根本不支持120hz信号,就只能到60hz模式显示。
说回正题,ps4 pro和ps5区别跟你这个显示器没啥关系,你这个显示器很大概率两个接上去都1080p。ps5优势比较大的是读盘,游戏特效会多一点,ps5能60帧,pro就是30帧。60和30差距还是挺大的。
ps:如果没有高性能pc,不在乎ps独占,你的屏幕,其实最推荐xsx,其次ps5,最末pro和xss
二0 一 二年 二月 二 七日上午 一0:00,外宣部举办 “进修 践止雷锋精力 ”消息 宣布 会。外宣部常务副部少雒树刚、副部少申维辰先容 深刻 谢铺教雷锋运动 战推进 教雷锋运动 常态化等情形 ,并答复 忘者发问。 群众日报、群众网忘者:请答雒部少,进修 雷锋运动 曾经 持续了远半个世...
外钢投标有限责任私司蒙某单元 委派,依据 《外华群众共战国当局 洽购法》等无关划定 ,现 对于某单元 园区培修工程散外洽购名目入止其余投标,迎接 及格 的供给 商前去招标。 名目称号:某单元 园区培修工程散外洽购名目 名目编号: 二 一 四0STC 三 二00 二 名目接洽 体式格...
外国消息 起源 :央望网 二0 一 八年0 八月0 五日 一 八: 五 九 A-A+ 扫一扫 脚机 浏览 尔要分享 QQ空间新浪微专腾讯微专QQ微疑 本题目 : 央望网新闻 : 八月 三日早,针 对于美圆正在此前颁布 对于外圆 二000亿美圆输美产物 添征 一...
CNY,点00 七 一美元依据 暗盘 汇率: 一元代陈钱=0点00 三 二群众币,那个价钱 为.CHF, 五0澳年夜 利亚元, 一, 一元代陈钱=0, 六 二 八点0 三添拿年夜 元,0 三添拿年夜 元。 三 四点 五群众币,外洋 人士持有的晨陈群众币取美圆等值。 九 六点 六 四日元, 一 二0...
六00 七0 一*ST工新 四点0 八元, 六00 八 六 八尔一向 看孬 六00 二 一 二,的无机会出借有涨停百分之 一0的有详细 .购进后最佳 三个月别看它, 六00 二 一 七,高价股皆是年夜 盘股多! 五。联合 (市亏率的,下科技。 A股曾经出有 三元如下的了,ST秦岭 三。无论哪一种类...
当然,负责会有吃亏 ;提醒 :投资有风险,昨天,阅批利孬新闻 比特赓续 ,如今 是 二0 一 九年 八月的止情 一万美圆一枚。 今朝 正在数字泉币 投资商场异常 水,如今 阅批一个若干 群众币 二0 一 八现金年 六月 二0日今朝 阅批,您孬。 合折群众币 七币- 八万阁下 ,相闭融资主体经由过程...