應(yīng)用安全:Web攻擊手段及防御之—網(wǎng)絡(luò)層或漏洞
常見的XSS攻擊、SQL注入、CSRF攻擊等攻擊方式和防御手段,這些都是針對代碼或系統(tǒng)本身發(fā)生的攻擊,另外還有一些攻擊方式發(fā)生在網(wǎng)絡(luò)層或者潛在的攻擊漏洞在這里也總結(jié)一下。
DOS/DDOS攻擊
DOS攻擊不是說攻擊DOS系統(tǒng),或者通過DOS系統(tǒng)攻擊。
DOS攻擊全稱為Denial of service,即拒絕服務(wù),其主要攻擊目的是使計算機(jī)硬件或網(wǎng)絡(luò)寬帶資源耗盡從而造成服務(wù)器無法提供正常服務(wù),而DDOS攻擊就是Distributed denial of service,即分布式的拒絕服務(wù)攻擊,攻擊者利用多臺服務(wù)器資源對同一個目標(biāo)服務(wù)器發(fā)起攻擊,從而使目的服務(wù)器快速陷入崩潰。
不管是DOS還是DDOS,它們的本質(zhì)都是通過各種手段消耗目標(biāo)服務(wù)器資源,從而使目標(biāo)服務(wù)器癱瘓不能接受用戶的服務(wù)。
一般租用像阿里云或者其他的服務(wù)器資源都是有web應(yīng)用防火墻能阻止dos攻擊的,如果是自己的服務(wù)器需要專業(yè)的運維人員對服務(wù)器進(jìn)行相關(guān)設(shè)置以防止DOS攻擊。
DNS攻擊
DNS攻擊包括有DNS劫持和DNS污染。
DNS劫持即通過某種手段控制DNS服務(wù)器,篡改域名真實的解析結(jié)果,并返回攻擊者的ip地址,從而跳到了攻擊者的頁面。像我們寬帶快到期了或者有什么推廣信息,電信總會彈出一個營銷界面提示我們寬帶快到期了或者什么活動的,這其實就是運營商DN劫持搞的鬼。像在我們本地,也經(jīng)常會配置host文件以開發(fā)測試聯(lián)調(diào),或者訪問那些訪問不了你又想訪問的網(wǎng)址。
防止DNS劫持可以用國外知名的DNS服務(wù)器,像google的8.8.8.8,或者準(zhǔn)備兩個域名,一個被劫持了引導(dǎo)用戶去訪問另一個。
DNS污染發(fā)生在請求DNS解析前第一步,直接在協(xié)議上對DNS解析請求進(jìn)行干擾,因為DNS查詢是基于不可靠無連接的UDP協(xié)議,它是沒有經(jīng)過認(rèn)證的,很容易被篡改,所以攻擊者通過在UDP的53端口進(jìn)行DNS查詢檢測,并返回攻擊者錯誤的解析結(jié)果給用戶,這就是DNS污染。
DNS污染可以通過自己搭建DNS服務(wù)器,采用TCP加密的形式,但可能延遲比較大。
錯誤回顯
這個在SQL注入防御篇幅中有描述,就是不能把數(shù)據(jù)庫表及代碼關(guān)鍵信息輸出到用戶瀏覽器,這里不再詳細(xì)描述。
網(wǎng)頁注釋
為了開發(fā)或聯(lián)調(diào)的便利性,我們經(jīng)常在代碼使用注釋,某些注釋可能包括重要信息,給攻擊者以可乘之機(jī),所以這個最好養(yǎng)成良好的習(xí)慣及時刪除敏感的注釋或者開發(fā)完成對代碼進(jìn)行審視。
文件上傳
一般的網(wǎng)站都會有文件上傳功能,如人才網(wǎng)就會有包括用戶的頭像、簡歷附件什么的,如果攻擊者上傳一個.exe可執(zhí)行程序到服務(wù)器,那么這個執(zhí)行程序很有可能操控這個服務(wù)器,或者通過這個服務(wù)器間接攻擊其他內(nèi)部服務(wù)器群,后果是十分嚴(yán)重的。
所以,針對上傳功能要限制用戶可上傳的文件類型,比如頭像肯定是jpg等圖片格式;文件最好分開存儲,一是能提高系統(tǒng)性能,二是就算攻擊者攻擊了文件服務(wù)器也不一定能攻擊到別的服務(wù)器;另外,存儲采用重命名方式,像QQ之間傳送文件一般會在文件名后面加上一個".重命令"后綴,就是為了防止用戶點擊.exe文件造成病毒攻擊。