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