《白帽子讲Web安全 第2版》正式出版!

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 历时近2年,《白帽子讲Web安全》第2版终于要跟读者见面了。在撰写这本书的过程中,我不禁回想起自己入门网络安全的经历,我深知一份好的指引能让初学者少走很多弯路。我把自己这些年对Web安全的理解写在这本书中,希望对网络安全的初学者能有所帮助。

01 前言

在2021年中秋假期前一天,吴翰清找到我,问我有没有兴趣参与编写《白帽子讲Web安全》的第2版,我当时第一反应是想拒绝,因为我自认为不擅长写东西,这么多年连博客都没怎么写,而且那时候我刚从阿里离职出来创业,周末都不休息,也担心自己抽不出时间来写。我给的答复是先考虑一下,等假期后再给确切的答复。

但很快我内心就想明白了,我肯定会接受这件事,一来感觉自己做了这么多年安全需要留下一点总结,再者我要挑战一下自己没做过的事,其实从那天开始我就已经在构思该如何写这本书了。

历时近2年,《白帽子讲Web安全》第2版终于要跟读者见面了。在撰写这本书的过程中,我不禁回想起自己入门网络安全的经历,我深知一份好的指引能让初学者少走很多弯路。我把自己这些年对Web安全的理解写在这本书中,希望对网络安全的初学者能有所帮助。

02 我的安全之路

跟很多同行一样,我走上安全这条路也是因为对计算机的强烈兴趣,父母为此还给家里添置了一台电脑,但我永远都会记得当年我安全入门时的艰难。

当时我们农村还没有通网络,仅有的信息来源是邮购的电脑杂志以及附送的CD。没人指引我应该学什么、怎么学,有段时间我很想学编程,但没有网络,我不知道能从哪里能获得一个Visual Basic的安装包。研究网络攻防更是不太可能了,我只能看着杂志上零散的文章一边学习软件逆向和破解,一边拿CD上附送的共享软件(有免费试用期的软件)练练手。

我花了很多时间去学习,在学业繁重的高中,我甚至用课堂时间阅读电脑杂志,然而进步非常有限。由于缺少必要的技术知识储备,逆向软件更像是碰运气去寻找并修改关键的跳转指令。那些年的经历让我深刻明白,一份系统性介绍安全知识的书籍或教程对初学者有多么重要。

直到我上大学后,才有了更多的机会去学习安全技术。大学几年对我的影响很大:有小伙伴一起每天研究技术、导师带领我们参加全国信息安全大赛(那时候国内还没流行CTF)、每天打DotA(虽然很菜)并研究怎么通过技术手段获胜。

但是大学期间更重要的是我真正系统性的学习了计算机和安全课程,不再停留在工具的使用,而是对问题的理解从“知其然”到了“知其所以然”。这对我后续的工作产生了深远的影响,大学期间的成长也让我获得了去阿里巴巴工作的机会。

03 我对学习安全技术的思考

如今互联网上的资源跟我当年安全入门的时候完全不一样,初学者动动手指就可以找到任何想要的学习资料。安全技术是一个实战属性非常强的领域,大部分安全从业人员(包括我自己)都是冲着对漏洞挖掘、攻击技术的热情而走进网络安全领域。现在网络上能找到大量现成的黑客工具和速成教程,初学者很容易就会被这些内容吸引,并且能很快找到攻击实践的成就感。

特别是Web安全领域,初学者不需要很了解操作系统,也不需要研究网络协议,甚至可以不会写代码,都可以尝到挖掘Web安全漏洞的甜头。这会让很多安全初学者形成错误的认知,认为计算机基础知识和基本原理不重要,安全技术就是会挖漏洞、会使用各种安全工具。

但是真正从事安全领域的工作时,需要的技术能力会比漏洞挖掘和攻击技术要多得多,从我个人的经历,以及这十多年招聘新人的经验来看,对于基础技术原理的理解深度,会决定一个人学习新技术的能力,从而决定未来成长的高度。同时,掌握不同领域的技术,在工作当中解决问题时会有更灵活的思路、更优雅的解决方案。

在给阿里巴巴投简历之前,我没接触过Web安全,从同学那里得知阿里巴巴的笔试和面试会侧重Web安全,于是我临时抱佛脚学了几天Web安全,还逆向分析了一下每天使用的酷狗音乐客户端,通过Hook API修改发送给服务端的数据包,挖掘了一个存储型XSS漏洞,我心里想面试过程中我也有Web安全实战经验可以讲。我估计当时面试官并不仅是认可了我在Web安全领域的能力而录取我。

进入阿里实习后,我认为在Web安全领域自己还是半桶水。当时淘宝网小号泛滥,导师让我为淘宝网做一个人机识别功能。我现学了前端和JavaScript,再学了后端数据分析,做完这些就回学校参加毕业答辩去了。有天导师远程给我报喜,说这个功能上线后垃圾账号数量悬崖式下跌,后来这个功能变成了在阿里全集团使用的一个重要内部产品。

大学毕业后我就很少研究二进制相关的安全了,工作前两年做Web安全相关的SDL,负责阿里云安全产品的攻防能力建设之后我在Web安全领域也研究得少了,后来我做了很多不同细分领域的工作,但是我学习到的计算机基础课程和安全基本原理让我受用至今,我可以很快胜任不同领域的工作。虽然网络安全是个实践性很强的领域,但是我认为掌握基础原理和方法才是学习网络安全的核心。

这个想法贯穿在编写本书的整个过程中,我的理念是把Web安全的基本原理讲述清楚,让读者明白安全漏洞、攻击和防御的本质,在往后学习和工作过程中面临新的问题时就能得心应手。

04 关于第2版

目前市面上关于Web安全的书籍,要么侧重在漏洞挖掘和安全工具的使用,要么内容已经跟不上时代发展。Web安全攻防在近十年有了飞速发展,浏览器和Web标准的快速更新迭代带来了大量新的安全特性,同时也引入了新的安全威胁,在这过程中也有很多陈旧的技术已经退出了历史舞台。这本书与第一版的定位一样,是一本站在白帽子角度全面介绍Web安全和攻防原理的书籍,我根据这十年的技术发展,加入了很多新的安全内容,并删掉了部分过时的技术。同时我也根据自己的工作经验增加了安全产品中用到的检测和防御技术,希望对自建安全产品的读者有所帮助。

在第一版已有的内容上更新总觉得有点别扭,所以很多技术章节我还是按照自己的思路重写了。我与吴翰清的写作风格还是有比较大的差异,读者在阅读本书不同章节时可能会感受到截然不同的画风。

这一版中我弱化了非技术的内容,我个人的偏好是写技术内容,写其他内容就容易卡壳。我把安全运营的章节删掉了,主要是考虑到这并非我擅长的领域,而且我近几年都在做安全产品,已经远离甲方安全运营很多年,这个领域又非常依赖实践经验。如果我从网上看看别人的经验再来写书,我自己写得难受,也担心写出来的东西没营养。我也建议读者多从实践和交流中学习企业安全运营的知识。

我的原计划是将本书用到的示例代码放到GitHub,并且把演示环境做成Docker镜像,但是随着写作的进行,我发现绝大部分的示例代码都不长,而且我也认为读者要有一定的亲自搭建环境和编码的实践才能加深对安全原理的理解,所以就没有做这部分工作,还请读者见谅。

写这本书让我真正体验到了写书不易,创业以来的这两年是我人生到目前为止最忙的两年,只能挤出时间来写。这个过程中我时常在想:想做一件事还是要趁早!我应该在7、8年前就来写这本书,那时候我有大把的业余时间,也是自己研究技术最多的时候,可能会投入更多精力把它写得更好。

到了本书的审阅阶段,看到书中好多处我都在想:我这样写能不能让读者理解、要不要加一个示例、要不要再延伸一下。实在是最近个人精力非常有限,书虽已完,但一定有很多地方未能写得更为深入细致,还请读者多多包涵。

在此我要感谢电子工业出版社的编辑许艳,她在长达三个多月的时间里耐心的给我细致、专业的修改建议,教会我更严谨的表达,让第一次写书的我受益匪浅。

这本书的封面上写有“白帽子安全讲义系列丛书”字眼,我们的目标是未来推出更多白帽子系列书籍,这可能需要更多人的努力,我也期待未来有更多的白帽子加入。

相关文章
|
14天前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
35 1
|
17天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
52 4
|
16天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
44 2
|
18天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
51 3
|
20天前
|
SQL 安全 Go
PHP在Web开发中的安全实践与防范措施###
【10月更文挑战第22天】 本文深入探讨了PHP在Web开发中面临的主要安全挑战,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并详细阐述了针对这些风险的有效防范策略。通过具体案例分析,揭示了安全编码的重要性,以及如何结合PHP特性与最佳实践来加固Web应用的安全性。全文旨在为开发者提供实用的安全指南,帮助构建更加安全可靠的PHP Web应用。 ###
32 1
|
24天前
|
Kubernetes 安全 应用服务中间件
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
44 3
|
1月前
|
缓存 安全 JavaScript
掌握JAMstack:构建更快、更安全的Web应用
JAMstack 是一种现代 Web 开发架构,结合 JavaScript、APIs 和 Markup,创建更快、更安全的 Web 应用。其核心优势包括高性能、安全性、可扩展性和易维护性。JAMstack 通过预构建静态页面和 API 实现高效渲染,利用静态站点生成器如 Gatsby 和 Next.js,并借助 CDN 和缓存策略提升全球访问速度。尽管面临复杂交互、SEO 和数据更新等挑战,但通过 Serverless Functions、预渲染和实时 API 更新等方案,这些挑战正逐步得到解决。
|
1月前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
69 0
|
1月前
|
云安全 SQL 安全
数字时代下的Web应用程序安全:漏洞扫描服务的功能与优势
在当今这个数字化时代,Web应用程序不仅是企业与用户之间互动的桥梁,更是企业展示服务、传递价值的核心平台。然而,随着技术的不断进步,Web应用程序的复杂性也在不断增加,这为恶意攻击者提供了可乘之机。安全漏洞的频发,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等,严重威胁着企业的数据安全、服务稳定性乃至经济利益。在这样的背景下,漏洞扫描服务作为一道重要的安全防线,显得尤为重要。本文将深入探讨漏洞扫描服务在面对Web应用程序安全问题时,所具备的功能优势。
|
2月前
|
SQL 开发框架 安全
Web开发中常见的安全缺陷及解决办法
Web开发中常见的安全缺陷及解决办法