1991年,圖靈獎獲得者、萬維網(wǎng)之父、萬維網(wǎng)聯(lián)盟的創(chuàng)建者蒂姆·伯納斯-李(Tim Berners-Lee)正式公開發(fā)布了全世界第一個網(wǎng)頁。根據(jù)Netcraft的統(tǒng)計,到2017年底,全球活動網(wǎng)站數(shù)量已經(jīng)超過一億個。根據(jù)中國互聯(lián)網(wǎng)協(xié)會統(tǒng)計,中國的網(wǎng)站數(shù)量已經(jīng)超過500萬個。從其迅猛發(fā)展的過程可知網(wǎng)站在信息時代的地位和它對社會發(fā)展起到的重要作用。
隨著網(wǎng)站的廣泛普及與應(yīng)用,網(wǎng)站安全入侵事件也變得層出不窮,商業(yè)網(wǎng)站、政府網(wǎng)站、大學(xué)和教育部門的網(wǎng)站被黑客攻擊造成的損失更是難以統(tǒng)計。從國家信息安全漏洞報告平臺、烏云網(wǎng)(WooYun,自2016年7月20日停止服務(wù))等一些互聯(lián)網(wǎng)漏洞報告平臺公開的信息可知,出現(xiàn)安全漏洞的網(wǎng)站數(shù)量之廣泛、問題之嚴(yán)重已達到驚人的地步。在賽門鐵克2015年掃描的網(wǎng)站中,有四分之三的網(wǎng)站存在漏洞。全球最大的社交網(wǎng)站Facebook在2018年9月28日表示遭到黑客攻擊,涉及近5000萬用戶;即使FBI、五角大樓的網(wǎng)站也不能幸免。2013年,美國、荷蘭等十余個國家的銀行系統(tǒng)遭受攻擊,黑客“黑”進銀行預(yù)付借記卡系統(tǒng),盜取了4500萬美元。2015年5月28日,國內(nèi)某大型在線票務(wù)服務(wù)公司官網(wǎng)出現(xiàn)大面積癱瘓,癱瘓每小時損失高達106.5萬美元。受此影響,其股價盤前暴跌11.67%。2017年,我國公安系統(tǒng)破獲了一起黑客攻擊竊取國內(nèi)航空公司網(wǎng)站信息的特大型案件。在該起案件中,黑客非法入侵50多家民用航空類公司網(wǎng)站,竊取乘客票務(wù)信息,再利用這些信息實施網(wǎng)絡(luò)詐騙,騙取受害者資金累計金額高達1000多萬元。
網(wǎng)站之所以遭到攻擊,主要是因為存在一些安全漏洞,如SQL注入漏洞、跨站腳本攻擊漏洞等。本書希望通過作者精心設(shè)計的項目案例起到拋磚引玉的作用,使網(wǎng)站開發(fā)程序員認(rèn)識到網(wǎng)站漏洞的危害,掌握常見的網(wǎng)站攻擊原理和防御手段,建立網(wǎng)站安全意識,重視安全測試和代碼審計工作。特別需要注意的是網(wǎng)站的安全是一個系統(tǒng)工程,它還涉及主機安全、操作系統(tǒng)安全、網(wǎng)絡(luò)安全、容災(zāi)備份等方面,代碼安全只是滿足系統(tǒng)安全的一個方面。
本書以項目為依托,通過重現(xiàn)網(wǎng)站漏洞,并在此基礎(chǔ)上進行漏洞測試與防護,以滿足實際的Web安全技術(shù)學(xué)習(xí)的需求和國家法律要求。據(jù)權(quán)威統(tǒng)計,在所有運行的網(wǎng)站中,PHP語言設(shè)計的網(wǎng)站占有的比例超過了80%,而Apache在Web服務(wù)器市場占有率排名第一。因此,本書從網(wǎng)站開發(fā)的角度,以Apache和PHP組合作為Web服務(wù)器來具體闡述Web安全防護問題。但是,不管網(wǎng)站的開發(fā)語言使用的是PHP、JSP、ASP、Python語言還是reviewer EE架構(gòu),不管是前后端混合還是前后端分離,不管是使用MVC模型還是RESTful風(fēng)格,都面臨著同樣的安全威脅。所以,本書對其他Web編程語言和Web服務(wù)器平臺的安全防護,仍然有重要的參考價值。
需要特別提醒的是,除非在獲得合法授權(quán)的情況下,網(wǎng)站安全漏洞測試不能在商業(yè)網(wǎng)站或者政府、教育機構(gòu)等單位的網(wǎng)站進行!吨腥A人民共和國刑法》第二百八十五條規(guī)定了非法侵入計算機信息系統(tǒng)罪,第二百八十六條規(guī)定了破壞計算機信息系統(tǒng)罪!吨腥A人民共和國治安管理處罰法》第二十九條規(guī)定了違反國家規(guī)定,侵入計算機信息系統(tǒng)等行為的處罰標(biāo)準(zhǔn)。此外,《中華人民共和國網(wǎng)絡(luò)安全法》、《中華人民共和國電信條例》等法律法規(guī)均禁止破壞信息系統(tǒng)的行為。另一方面,國家法律也規(guī)定了網(wǎng)絡(luò)運營者有維護網(wǎng)絡(luò)安全的義務(wù)和責(zé)任,經(jīng)監(jiān)管部門責(zé)令采取改正措施而拒不改正者將受到法律的制裁。
本書共包括四篇十六個項目,第一篇為預(yù)備知識,包括Web服務(wù)器平臺安裝與配置和Web開發(fā)基礎(chǔ)兩個項目;第二篇為SQL注入攻擊及防護,包括萬能密碼登錄——Post型注入攻擊、數(shù)據(jù)庫暴庫——Get型注入攻擊、更新密碼——二階注入攻擊、Cookie注入攻擊和HTTP頭部注入攻擊五個項目;第三篇為前端攻擊及防護,包括Session欺騙攻擊、Cookie欺騙攻擊、XSS跨站攻擊、CSRF跨站偽造請求攻擊和驗證碼五個項目;第四篇為文件漏洞及防護,包括文件上傳漏洞、文件下載漏洞、文件解析漏洞和文件包含漏洞四個項目。
本書在編寫期間得到了編者所在單位師生的大力配合和協(xié)助,在此表示衷心的感謝!同時也要感謝出版社編輯們的耐心交流與指導(dǎo),使得本書能夠順利與讀者見面。
由于作者水平有限以及編寫時間倉促,書中難免會出現(xiàn)一些疏漏或不足之處,懇請讀者批評指正,使我們共同進步。歡迎您通過西安電子科技大學(xué)出版社網(wǎng)站與筆者聯(lián)系,也歡迎直接與筆者交流。
作 者
2019年1月