开发安全是极为重要的一个话题。本系列按四步展开:先了解业内趋势和常见漏洞,再逐个吃透重点攻击方式,然后上手实践,最后理解渗透测试全流程。
第一步:业内趋势和常见漏洞
学习安全需要总体了解安全趋势和常见的 Web 漏洞,首推了解 OWASP,因为它代表着业内 Web 安全漏洞的趋势。
- OWASP Top 10 —— OWASP(开放式 Web 应用程序安全项目)最有名的就是”十大安全隐患列表”:不但总结了 Web 应用程序最可能、最常见、最危险的十大安全隐患,还包括如何消除这些隐患的建议;此外还有辅助项目和指南帮助 IT 公司和开发团队规范开发与测试流程。这个”十大”差不多每隔三年更新一次
第二步:重点攻击方式详解
- 注入攻击详解 —— 最常见的攻击方式,作为开发必须完全避免。常见形式包括 SQL 注入、XPath 注入、命令注入、LDAP 注入、CRLF 注入、Host 头注入、Email 头注入等——本质其实一样,防御措施也大同小异
- CSRF 详解 —— Cross-site request forgery 跨站请求伪造,也被称为”one click attack”或 session riding,是一种对网站的恶意利用
- XSS 详解 —— 跨站脚本攻击(Cross Site Scripting,为与层叠样式表 CSS 区分故缩写为 XSS)。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页时,嵌入其中的脚本会被执行,从而达到攻击用户的目的
- 点击劫持详解 —— 一种视觉上的欺骗手段:攻击者将一个透明的、不可见的 iframe 覆盖在网页上,通过调整 iframe 页面位置诱使用户点击,在不知情的情况下点到 iframe 页面上的功能按钮
- DDoS 详解 —— 分布式拒绝服务攻击:处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器同时实施攻击
第三步:学习和实践
一个比较好的学习常见 Web 漏洞的平台——DVWA:
- Web 安全测试平台 DVWA —— Damn Vulnerable Web Application 是一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用,为安全专业人员测试专业技能和工具提供合法环境,帮助 Web 开发者更好地理解 Web 应用安全防范的过程
第四步:渗透测试
用渗透测试的整体流程,理解项目发布时安全团队如何做渗透测试来尽量避免漏洞:
- 渗透测试流程示例 —— 在应用程序上线之前,都会进行多次内部或外部的渗透测试。对开发而言,有必要了解整体流程,从而知己知彼,避免开发中的问题