抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

阅读者(二十四):不容小觑的 Web 安全

2013 年 5 月 14 日

近日来互联网安全事件不断,前有 Evernote 遭黑客攻击用户数据存在泄露风险,后有 Cloudflare 被超大流量 DDoS,纽约时报称其为“欧洲电脑狂人引爆网络核战争”,再往前看段时间,CSDN 的600 万用户明文密码事件依然历历在目……照理来说,Web 安全向来都是不容忽视的,但在问题发生之前,又有多少人真的把安全问题放在心上?

记得还在读书时,一位“少年黑客”出版了一部《黑客攻击防范秘技》,红极一时,我当时出于好奇还买来读过,要知道影视剧作品中的黑客无所不能,入侵系统拯救世界,也许很多懵懂少年会因为这个形象去学习黑客攻击技术。“黑客”一词在诞生之初其实并非贬义,我相信很多人心中也有黑客精神,就像“中国黑客传说”系列中的黑哥 V .

去年,“道哥的黑板报”作者、前阿里巴巴安全专家吴翰清( @aullik5 ,人称“刺”或者“道哥”)结合自己的经验出版了一部安全领域的“实战宝典”——《白帽子讲 Web 安全》。该书前言中是这样来描述“白帽子”的:

黑帽子是指那些造成破坏的黑客,而白帽子则是研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。

好一句“以建设更安全的互联网为己任”,国内著名的安全网站乌云上就有不少白帽子在发现漏洞,向厂商积极反馈。道哥除了用自己的技术为无数网名保驾护航,还用文字来传播安全知识与技术。《白帽子讲 Web 安全》一书的内容安排非常清晰:

  1. 世界观安全(先统一认识,站在同一起跑线上再去谈具体的内容)
  2. 客户端脚本安全
  3. 服务器端应用安全
  4. 安全运营(光有技术、有想法,整个公司没有安全运营的意识,产品的规划和设计不当,技术上的投入都可能打水漂)

在介绍具体的安全技术时,基本分成了两部分——攻击方法说明和防御手段介绍,所谓知己知彼方能百战不殆,只有先了解攻击的原理,攻击是如何发生的,才能有更好的防御思路。以 XSS 和 CSRF 为例,这两个词耳熟能详,但说实话,我之前对它们的了解并不深刻,还是服务端的 SQL 注入比较熟悉,书中的介绍不止由浅入深,还有点手把手的感觉,更重要的是除了网上常见的做法之外,还能有很多进阶技术。在介绍 DDoS 时,除了常见的大流量暴力攻击外,还有诸如 Slowloris 这样的攻击方式,甚至还有正则引发的血案。随之而来的则是相对应的防御技术,特定的配置与参数,各种内容娓娓道来。

书中有一个观点,是我个人非常赞同的,即将部分安全相关的功能默认集成到开发框架之中。由于开发人员的水平参差不齐,而且有时迫于项目进度的压力,可能在安全方面考虑不周,很容易造成安全漏洞。而像 XSS、CSRF 等威胁,在框架层面上提供一些辅助方法后,只要使用得当即可起到很好的保护作用。对于限制频繁访问,可以在框架中加入限流模块,通过验证码或限流页面等方式保护系统,而那些非 Web 的提供接口服务的系统,同样也能融入类似的限流功能自我保护。

说到框架,其实众多流行的开发框架都有不同程度的安全漏洞,发布安全补丁也是常有的事情,书中就介绍了 Struts2、Spring MVC、Django、jQuery 等前后端框架的多个漏洞,其实不止这些,Rails 也曝出过多个严重漏洞, GitHub 一定深有感触。而且,近日Apache 官方宣布Struts 1.x 正式退出历史舞台,最关键的是宣布EOL 后,发现严重安全漏洞也不会再进行维护了,这时使用Struts 1.x 的用户只能自己解决了。可见,选择一个有大量用户使用,有团队稳定维护的框架是很重要的。

在本书的最后部分谈到了微软的SDL,对于互联网公司来说,可能经常需要上线新功能,修正线上问题等等,这时完整运用SDL 也许不太合适,但是不妨参考其中一些思想和做法。此外,事先制定一些突发安全事件的应急预案也是必须的,不光是技术的,还有业务和公关的等等……

前几天,从“道哥的黑板报”上得知《白帽子讲Web 安全》销量很好,还被评为2012 年10 大最佳原创技术类书籍,看来还是有很多同学对安全方面的知识非常感兴趣的,希望本书能帮助大家。


感谢张逸对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013 年 5 月 14 日 07:573156
用户头像

发布了 135 篇内容, 共 52.5 次阅读, 收获喜欢 33 次。

关注

评论

发布
暂无评论
发现更多内容

2020,云计算这一年

脑极体

【架构师训练营】大作业一:快递架构设计

MindController

架构设计 架构师

使用 Jenkins + Docker 构建与部署 Serverless 应用

donghui

Docker Serverless jenkins

精选算法面试-链表(反转)

李孟

算法 链表 28天写作

极客大学架构师训练营大作业

Meow

极客大学架构师训练营大作业

Meow

【得物技术】App需要什么样移动网关

得物技术

App 后端 网关 得物技术 移动端

[架构师训练营第 1 期] 大作业(一):通达系统概要设计图

猫切切切切切

架构师第七周总结

Geek_xq

联通链:5G时代的信任链

CECBC区块链专委会

中国联通

[架构师训练营第 1 期] 大作业(二):架构师技术知识导图

猫切切切切切

感谢 Gridea,让我有动力写作

和牛

程序员

爱了! Alibaba技术官甩出的“阿里内部Java成长笔记”,差距对比真的是不止一点点

Java架构之路

Java 程序员 架构 面试 编程语言

关于拼多多价值的思考

.

28天写作

三无小区整改,平安小区智能化管理平台搭建

t13823115967

智慧社区管理平台开发

MySQL慢查询(上):为啥会这么慢?

架构精进之路

MySQL MySQL优化 MySQL使用 28天写作

手把手教你如何巧用Github的Action功能

flutter android 持续集成

Junit4 Rules 使用

hungxy

Java JUnit

架构师训练营第七周课后作业

万有引力

聚焦产业链供应链 拓展数字经济新空间

CECBC区块链专委会

数字经济 企业融资

程序员如何让自己更快的废掉?

冰河

程序员 程序人生 规划 职业生涯

架构师必会知识大合集:五位架构师手写于西溪园区的技术使用心得

Java架构之路

Java 程序员 架构 面试 编程语言

邹平打造区块链生态环境监管体系

CECBC区块链专委会

区块链 生态环境

【架构师训练营】大作业二:架构知识总结

MindController

总结 架构师 架构师训练营第 1 期

趣店容器进化史

ZoaChou

k8s 容器化

喜提offer!支付宝Java研发岗四面,从基础到项目在到架构与业务

Java架构之路

Java 程序员 架构 面试 编程语言

智能电车小白从入门到了解(Day1/28)

mtfelix

自动驾驶 28天写作 智能电车 电动汽车

公安一体化警务,合成指挥作战平台搭建

t13823115967

智慧公安

Java并发包源码学习:CLH同步队列及同步资源获取与释放

程序员小毕

Java 源码 jdk 多线程 并发

用户体验提升计划:前端性能检测清单2021

知识乞丐

前端性能优化 28天写作

MySQL中的哥哥表、妹妹字段,是什么鬼?

云流

Java MySQL 数据库

Study Go: From Zero to Hero

Study Go: From Zero to Hero

阅读者(二十四):不容小觑的Web安全-InfoQ