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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 历时近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年前就来写这本书,那时候我有大把的业余时间,也是自己研究技术最多的时候,可能会投入更多精力把它写得更好。

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

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

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

相关文章
|
15天前
|
安全 Ubuntu 应用服务中间件
Web服务器安全最佳实践
【8月更文第28天】随着互联网的发展,Web服务器成为了企业和组织的重要组成部分。然而,这也使得它们成为黑客和恶意软件的目标。为了确保数据的安全性和系统的稳定性,采取适当的安全措施至关重要。本文将探讨一系列保护Web服务器的最佳策略和技术,并提供一些实用的代码示例。
35 1
|
12天前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
20 1
|
1天前
|
存储 安全 JavaScript
Web安全-XSS漏洞
Web安全-XSS漏洞
5 0
|
11天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
22 0
|
11天前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
24 0
|
11天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
36 0
|
12天前
|
存储 SQL 安全
【绝密攻略】Flask应用如何抵御黑客入侵?七大安全技巧助你构建固若金汤的Web防线!
【8月更文挑战第31天】安全性是Web应用开发中的关键部分。Flask作为一款轻量级且高度可定制的框架,虽灵活但需开发者确保应用安全。本文介绍如何通过具体措施加固Flask应用,包括更新依赖项、启用CSRF保护、使用HTTPS、安全存储密码、防止SQL注入及清理用户输入等。通过示例代码展示如何在实际开发中应用这些策略,帮助提升应用安全性,为用户提供更可靠的服务。
26 0
|
12天前
|
SQL 安全 算法
【惊险揭秘】Django高手的十大安全秘籍:如何从零构建坚不可摧的Web堡垒?
【8月更文挑战第31天】《Django安全性指南:构建安全Web应用的十大关键步骤》介绍了在使用Django框架开发Web应用时,如何通过十个关键步骤提升应用安全性。从使用HTTPS、设置CSRF保护到限制密码复杂度、防止SQL注入,文章详细阐述了每一步的具体实施方法及示例代码,帮助开发者构建更加安全可靠的Web应用。
9 0
|
1月前
|
存储 JavaScript 安全
Web安全之XSS跨站脚本攻击
XSS(跨站脚本攻击)
59 7
|
2月前
|
安全 Unix Shell
web安全之命令执行
应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行。
44 4