隨著互聯(lián)網(wǎng)的普及與發(fā)展,網(wǎng)絡(luò)安全變得越來(lái)越重要,程序員需要掌握最基本的網(wǎng)絡(luò)安全防范,下面會(huì)列出常見(jiàn)的幾類安全漏洞,及相應(yīng)的防范措施。
1-1:XSS簡(jiǎn)介
跨站腳本,簡(jiǎn)稱XSS,是web應(yīng)用中經(jīng)常出現(xiàn)的一種計(jì)算機(jī)安全漏洞,也是web中最主流的攻擊方法。
XSS是指惡意攻擊者利用網(wǎng)站不轉(zhuǎn)義用戶提交的數(shù)據(jù),或者是擁有過(guò)濾不足的缺點(diǎn),然后順便在網(wǎng)頁(yè)中添加一些代碼,讓其他用戶在訪問(wèn)時(shí)執(zhí)行相應(yīng)的嵌入代碼。
1-2:XSS攻擊的危害
竊取用戶信息,如:登錄賬號(hào)、網(wǎng)上銀行賬號(hào)等
使用用戶權(quán)利身份來(lái)標(biāo)識(shí)、讀取、篡改、添加、刪除數(shù)據(jù),等等
盜竊具有商業(yè)價(jià)值的材料
非法轉(zhuǎn)賬
惡意電子郵件
網(wǎng)站掛馬
控制受害機(jī)器對(duì)其他站點(diǎn)發(fā)起攻擊
1-3:防止XSS解決方案
XSS的根本原因是它沒(méi)有完全過(guò)濾客戶端提交的數(shù)據(jù),所以重點(diǎn)是過(guò)濾用戶提交的信息。將重要的cookie標(biāo)記為http>
只允許用戶輸入我們期望的數(shù)據(jù)。例如,年齡只允許用戶輸入一個(gè)數(shù)字,除數(shù)字外的所有字符都會(huì)被過(guò)濾掉。對(duì)數(shù)據(jù)進(jìn)行Html Encode編碼處理:當(dāng)用戶提交數(shù)據(jù)時(shí),用Html進(jìn)行編碼,將對(duì)應(yīng)的符號(hào)轉(zhuǎn)換為實(shí)體名稱,然后進(jìn)行下一步處理。
過(guò)濾或移除特殊的Html標(biāo)簽。過(guò)濾js事件的標(biāo)簽。例如 "onclick=", "onfocus" 等。
2-1:CSRF簡(jiǎn)介
跨站請(qǐng)求偽造(Cross -site request forgery),也稱為“一鍵攻擊”Session Riding”,通?s寫為CSRF或XSRF,是對(duì)網(wǎng)站的惡意使用
XSS主要利用站點(diǎn)內(nèi)的可信用戶,而CSRF則通過(guò)偽裝來(lái)自可信用戶的請(qǐng)求來(lái)利用可信站點(diǎn)。CSRF比XSS攻擊更危險(xiǎn)。
2-2:CSRF攻擊的危害
主要的危害來(lái)自于攻擊者竊取用戶的身份并發(fā)送惡意請(qǐng)求。例如:模擬用戶發(fā)送郵件、發(fā)送消息以及支付、進(jìn)行轉(zhuǎn)賬等等。
2-3:防止CSRF的解決方案
重要的數(shù)據(jù)交互使用POST來(lái)接收,當(dāng)然POST不是萬(wàn)能的,偽造Form表單是可以破解的。只要涉及到數(shù)據(jù)交互,首先驗(yàn)驗(yàn)證碼,這種方法就可以完全解決CSRF。
但出于用戶體驗(yàn)的考慮,網(wǎng)站不能在所有操作中都使用驗(yàn)證碼。因此,驗(yàn)證碼只能作為輔助手段,不能作為主要解決方案。
驗(yàn)證HTTP Referer字段,該字段記錄HTTP請(qǐng)求的源地址。最常見(jiàn)的應(yīng)用是圖像防盜鏈接。添加一個(gè)令牌token的同時(shí)并驗(yàn)證每個(gè)表單。
3-1:SQL注入漏洞簡(jiǎn)介
SQL注入是最常見(jiàn)的網(wǎng)絡(luò)攻擊之一,主要是通過(guò)在Web表單提交或輸入域名或頁(yè)面請(qǐng)求查詢字符串中插入SQL命令來(lái)實(shí)現(xiàn)無(wú)帳號(hào)登錄,甚至篡改數(shù)據(jù)庫(kù)。
3-2:SQL注入的危害
數(shù)據(jù)庫(kù)信息泄露:泄露存儲(chǔ)在數(shù)據(jù)庫(kù)中的用戶隱私信息;
篡改網(wǎng)頁(yè):操作數(shù)據(jù)庫(kù)篡改特定網(wǎng)頁(yè);
惡意操作數(shù)據(jù)庫(kù):攻擊數(shù)據(jù)庫(kù)服務(wù)器,篡改數(shù)據(jù)庫(kù)系統(tǒng)管理員帳號(hào);
服務(wù)器被遠(yuǎn)程控制和安裝后門;
刪除和修改數(shù)據(jù)庫(kù)表信息。
3-3:SQL注入的方式
通常,SQL注入的位置包括:
表單提交,主要是POST請(qǐng)求,也有GET請(qǐng)求;
URL參數(shù)提交,主要獲取請(qǐng)求參數(shù)
Cookie參數(shù)提交
HTTP請(qǐng)求頭的一些可修改值,如Referer、User_Agent等。
3-4:防止SQL注入的解決方案
驗(yàn)證用戶的輸入,并使用正則表達(dá)式篩選傳入?yún)?shù)。
使用參數(shù)化語(yǔ)句,不連接SQL,或使用安全存儲(chǔ)過(guò)程。
不要使用具有管理員權(quán)限的數(shù)據(jù)庫(kù)連接。為每個(gè)應(yīng)用程序使用具有有限特權(quán)的數(shù)據(jù)庫(kù)連接。
檢查數(shù)據(jù)存儲(chǔ)類型;
重要信息必須加密;
4-1:DOS攻擊和DDOS簡(jiǎn)稱
拒絕服務(wù)攻擊(Denial of Service ):由于網(wǎng)絡(luò)安全防護(hù)措施不足,導(dǎo)致用戶無(wú)法繼續(xù)使用正常服務(wù)的攻擊?梢苑Q為拒絕服務(wù)攻擊,是因?yàn)樗哪康氖蔷W(wǎng)絡(luò)或計(jì)算機(jī)通過(guò)消耗網(wǎng)絡(luò)寬帶或系統(tǒng)資源,從而無(wú)法提供正常的服務(wù)。
分布式拒絕服務(wù)攻擊,簡(jiǎn)稱DDOS,(Distributed Denial of Service)是一種分布式拒絕服務(wù)攻擊,攻擊者控制網(wǎng)絡(luò)上的傀儡主機(jī),對(duì)目標(biāo)主機(jī)發(fā)起拒絕服務(wù)攻擊。
4-2:DDOS的危害
造成客戶業(yè)務(wù)不能使用,金錢利益的損失;客戶網(wǎng)絡(luò)一項(xiàng)業(yè)務(wù)受到攻擊,聯(lián)網(wǎng)全面被封鎖,所有業(yè)務(wù)癱瘓,連鎖反應(yīng)嚴(yán)重;攻擊造成的政治影響和輿論壓力會(huì)給企業(yè)帶來(lái)巨大的聲譽(yù)損失。
4-3:如何防御DDOS攻擊
及時(shí)更新系統(tǒng)補(bǔ)丁
安裝殺毒軟件和硬件,及時(shí)更新病毒庫(kù)
設(shè)置復(fù)雜的密碼,減少系統(tǒng)控制的可能性
關(guān)閉不必要的端口和服務(wù)
網(wǎng)絡(luò)漏洞經(jīng)常被發(fā)現(xiàn),問(wèn)題被及時(shí)發(fā)現(xiàn)并修復(fù)。
對(duì)于重要的web服務(wù)器可以建立多個(gè)鏡像來(lái)實(shí)現(xiàn)負(fù)載均衡,在一定程度上可以降低DDOS的危害
總之就是既要做好過(guò)濾與編碼并使用參數(shù)化語(yǔ)句,也要把重要的信息進(jìn)行加密處理,這樣漏洞才能更好地被防范。
以上說(shuō)的這幾類攻擊還有防御方式并不是能完全抵擋住所有的和規(guī)模大的網(wǎng)絡(luò)攻擊,但是會(huì)有一定的輔助效果,能起到一定的的作用!