1991年,图灵奖获得者、万维网之父、万维网联盟的创建者蒂姆·伯纳斯-李(Tim Berners-Lee)正式公开发布了全世界第一个网页。根据Netcraft的统计,到2017年底,全球活动网站数量已经超过一亿个。根据中国互联网协会统计,中国的网站数量已经超过500万个。从其迅猛发展的过程可知网站在信息时代的地位和它对社会发展起到的重要作用。
随着网站的广泛普及与应用,网站安全入侵事件也变得层出不穷,商业网站、政府网站、大学和教育部门的网站被黑客攻击造成的损失更是难以统计。从国家信息安全漏洞报告平台、乌云网(WooYun,自2016年7月20日停止服务)等一些互联网漏洞报告平台公开的信息可知,出现安全漏洞的网站数量之广泛、问题之严重已达到惊人的地步。在赛门铁克2015年扫描的网站中,有四分之三的网站存在漏洞。全球最大的社交网站Facebook在2018年9月28日表示遭到黑客攻击,涉及近5000万用户;即使FBI、五角大楼的网站也不能幸免。2013年,美国、荷兰等十余个国家的银行系统遭受攻击,黑客“黑”进银行预付借记卡系统,盗取了4500万美元。2015年5月28日,国内某大型在线票务服务公司官网出现大面积瘫痪,瘫痪每小时损失高达106.5万美元。受此影响,其股价盘前暴跌11.67%。2017年,我国公安系统破获了一起黑客攻击窃取国内航空公司网站信息的特大型案件。在该起案件中,黑客非法入侵50多家民用航空类公司网站,窃取乘客票务信息,再利用这些信息实施网络诈骗,骗取受害者资金累计金额高达1000多万元。
网站之所以遭到攻击,主要是因为存在一些安全漏洞,如SQL注入漏洞、跨站脚本攻击漏洞等。本书希望通过作者精心设计的项目案例起到抛砖引玉的作用,使网站开发程序员认识到网站漏洞的危害,掌握常见的网站攻击原理和防御手段,建立网站安全意识,重视安全测试和代码审计工作。特别需要注意的是网站的安全是一个系统工程,它还涉及主机安全、操作系统安全、网络安全、容灾备份等方面,代码安全只是满足系统安全的一个方面。
本书以项目为依托,通过重现网站漏洞,并在此基础上进行漏洞测试与防护,以满足实际的Web安全技术学习的需求和国家法律要求。据权威统计,在所有运行的网站中,PHP语言设计的网站占有的比例超过了80%,而Apache在Web服务器市场占有率排名第一。因此,本书从网站开发的角度,以Apache和PHP组合作为Web服务器来具体阐述Web安全防护问题。但是,不管网站的开发语言使用的是PHP、JSP、ASP、Python语言还是reviewer EE架构,不管是前后端混合还是前后端分离,不管是使用MVC模型还是RESTful风格,都面临着同样的安全威胁。所以,本书对其他Web编程语言和Web服务器平台的安全防护,仍然有重要的参考价值。
需要特别提醒的是,除非在获得合法授权的情况下,网站安全漏洞测试不能在商业网站或者政府、教育机构等单位的网站进行。《中华人民共和国刑法》第二百八十五条规定了非法侵入计算机信息系统罪,第二百八十六条规定了破坏计算机信息系统罪。《中华人民共和国治安管理处罚法》第二十九条规定了违反国家规定,侵入计算机信息系统等行为的处罚标准。此外,《中华人民共和国网络安全法》、《中华人民共和国电信条例》等法律法规均禁止破坏信息系统的行为。另一方面,国家法律也规定了网络运营者有维护网络安全的义务和责任,经监管部门责令采取改正措施而拒不改正者将受到法律的制裁。
本书共包括四篇十六个项目,第一篇为预备知识,包括Web服务器平台安装与配置和Web开发基础两个项目;第二篇为SQL注入攻击及防护,包括万能密码登录——Post型注入攻击、数据库暴库——Get型注入攻击、更新密码——二阶注入攻击、Cookie注入攻击和HTTP头部注入攻击五个项目;第三篇为前端攻击及防护,包括Session欺骗攻击、Cookie欺骗攻击、XSS跨站攻击、CSRF跨站伪造请求攻击和验证码五个项目;第四篇为文件漏洞及防护,包括文件上传漏洞、文件下载漏洞、文件解析漏洞和文件包含漏洞四个项目。
本书在编写期间得到了编者所在单位师生的大力配合和协助,在此表示衷心的感谢!同时也要感谢出版社编辑们的耐心交流与指导,使得本书能够顺利与读者见面。
由于作者水平有限以及编写时间仓促,书中难免会出现一些疏漏或不足之处,恳请读者批评指正,使我们共同进步。欢迎您通过西安电子科技大学出版社网站与笔者联系,也欢迎直接与笔者交流。
作 者
2019年1月