Xss(跨站腳本攻擊)
概念:將可執(zhí)行的前端腳本代碼植入到網(wǎng)頁(yè)中,通常是利用網(wǎng)頁(yè)開(kāi)發(fā)時(shí)留下的漏洞,注入惡意指令代碼到網(wǎng)頁(yè),使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁(yè)程序。
其分為兩種類型:一種是反射型,一種是持久型。
反射型是將腳本代碼放在URL中,當(dāng)用戶點(diǎn)擊URL,該請(qǐng)求就會(huì)通過(guò)服務(wù)器解析返回給瀏覽器,在返回的響應(yīng)內(nèi)容中出現(xiàn)攻擊者的XSS代碼,瀏覽器執(zhí)行時(shí)就會(huì)中招了。
存儲(chǔ)型是將惡意代碼被存儲(chǔ)在web server中。黑客通過(guò)XSS的漏洞,將內(nèi)容經(jīng)正常功能提交進(jìn)入數(shù)據(jù)庫(kù)持久保存,當(dāng)進(jìn)行數(shù)據(jù)庫(kù)查詢的時(shí)候,再將攻擊腳本渲染進(jìn)網(wǎng)頁(yè),返回給瀏覽器執(zhí)行。
XSS防御:
對(duì)輸入和URL參數(shù)進(jìn)行過(guò)濾,也就是說(shuō)對(duì)提交的內(nèi)容進(jìn)行過(guò)濾,對(duì)url中的參數(shù)進(jìn)行過(guò)濾,過(guò)濾掉會(huì)導(dǎo)致腳本執(zhí)行的相關(guān)內(nèi)容
對(duì)輸出進(jìn)行編碼,在輸出數(shù)據(jù)之前對(duì)潛在的威脅的字符進(jìn)行編碼,使腳本無(wú)法在瀏覽器中執(zhí)行。
使用HTTPOnly,一般XSS攻擊通過(guò)利用js腳本讀取用戶的cookie,設(shè)置了HTTPOnly后js腳本就無(wú)法獲取到cookie,應(yīng)用程序一般也不會(huì)在js中操作這些敏感的cookie。
Sql注入
概念:讓web服務(wù)器執(zhí)行攻擊者期望的sql語(yǔ)句,以便得到數(shù)據(jù)庫(kù)中的數(shù)據(jù),或?qū)?shù)據(jù)庫(kù)進(jìn)行讀取,修改,刪除,插入。sql注入常規(guī)套路在于將sql語(yǔ)句放在表單中提交給后端服務(wù)器 ,如果后端服務(wù)器沒(méi)有做任何安全性校驗(yàn),直接將變量取出進(jìn)行數(shù)據(jù)庫(kù)查詢,則極易中招。
sql注入防御:
限制數(shù)據(jù)類型,在傳入?yún)?shù)的地方限制參數(shù)的類型,比如整型,只有g(shù)et到的id為數(shù)字或者數(shù)字字符時(shí)才能執(zhí)行下一步。
正則表達(dá)式匹配傳入?yún)?shù),對(duì)傳入的值進(jìn)行匹配,如果不符合就過(guò)濾。正則表達(dá)式匹配很消耗服務(wù)器的性能,因此攻擊時(shí)可以構(gòu)造大量的正常語(yǔ)句騙過(guò)服務(wù)器,當(dāng)后臺(tái)對(duì)數(shù)據(jù)的處理達(dá)到最大限制的時(shí)候就會(huì)放棄匹配后面的非法語(yǔ)句。
函數(shù)過(guò)濾轉(zhuǎn)義,防止”和’進(jìn)行轉(zhuǎn)義,這里應(yīng)該是防止拼接
預(yù)編譯語(yǔ)句,使用預(yù)編譯語(yǔ)句綁定變量。使用預(yù)編譯相當(dāng)于將數(shù)據(jù)用代碼分離的方式,把傳入的參數(shù)綁定為一個(gè)變量,用?表示,攻擊者無(wú)法改變sql的結(jié)構(gòu)。將傳入的參數(shù)當(dāng)作純字符串的形式作為username執(zhí)行,避免sql語(yǔ)句中的拼接閉合查詢語(yǔ)句的過(guò)程。可以理解為字符串與sql語(yǔ)句的關(guān)系區(qū)分開(kāi),username此時(shí)作為字符串不會(huì)被當(dāng)做之前的sql語(yǔ)句被帶入數(shù)據(jù)庫(kù)執(zhí)行,從而避免了類似sql語(yǔ)句拼接,閉合等非法操作。
CSRF(跨站請(qǐng)求偽造攻擊)
概念:利用用戶已經(jīng)登陸的身份,在用戶毫不知情的情況下,以用戶的名義完成非法操作。攻擊者誘導(dǎo)受害者進(jìn)入第三方網(wǎng)站,在第三方網(wǎng)站中,向被攻擊網(wǎng)站發(fā)送跨站請(qǐng)求,利用受害者在被攻擊網(wǎng)站已經(jīng)獲取的注冊(cè)憑證(比如cookie),繞過(guò)后臺(tái)的用戶驗(yàn)證,達(dá)到冒充用戶對(duì)被攻擊的網(wǎng)站執(zhí)行某項(xiàng)操作的目的。
CSRF防御:
使用驗(yàn)證碼,在關(guān)鍵的操作頁(yè)面加上驗(yàn)證碼,后臺(tái)收到請(qǐng)求后通過(guò)判斷驗(yàn)證碼可以防御CSRF,但這種方法對(duì)用戶不太友好
在請(qǐng)求地址中加入token驗(yàn)證。連接請(qǐng)求中用戶驗(yàn)證信息都是存在cookie中,因此黑客可以通過(guò)cookie來(lái)通過(guò)安全驗(yàn)證(cookie也可以通過(guò)Xss攻擊獲得)。在http請(qǐng)求中以參數(shù)的形式加入一個(gè)隨機(jī)產(chǎn)生的token,在服務(wù)器端建立一個(gè)攔截器來(lái)驗(yàn)證這個(gè)token,如果驗(yàn)證不通過(guò),則拒絕該請(qǐng)求
驗(yàn)證http referer字段。http頭中的referer字段記錄了該http請(qǐng)求的來(lái)源地址。在通常情況下,訪問(wèn)一個(gè)安全受限頁(yè)面的請(qǐng)求來(lái)自于同一個(gè)網(wǎng)站,而如果黑客要實(shí)施csrf攻擊,一般只能在自己的網(wǎng)站構(gòu)造請(qǐng)求,因此可以通過(guò)驗(yàn)證referer值來(lái)防御csrf攻擊。
DDos
概念:攻擊者使用多臺(tái)計(jì)算機(jī)執(zhí)行dos攻擊。dos攻擊是攻擊者不斷向服務(wù)器提出請(qǐng)求,占用服務(wù)器多資源,導(dǎo)致服務(wù)器無(wú)法處理正常的請(qǐng)求。
DDos防御:
CDN,通過(guò)多個(gè)CDN連接點(diǎn)相互承受攻擊,不容易由于一個(gè)連接點(diǎn)被攻擊而導(dǎo)致癱瘓****(隱藏服務(wù)器IP,讓CDN為服務(wù)器承擔(dān)攻擊)。采用CDN要隱藏源服務(wù)器的ip地址,要不然攻擊可以越過(guò)CDN直接攻擊源服務(wù)器
配置web防火墻
高防IP,將攻擊流量引流到高防IP,從而保護(hù)真正的ip不被暴露,確保源站的穩(wěn)定可靠。
采用高防服務(wù)器,獨(dú)立單個(gè)硬防御應(yīng)對(duì)ddos攻擊和cc攻擊100g以上的服務(wù)器
審核編輯:黃飛
-
HTTP
+關(guān)注
關(guān)注
0文章
504瀏覽量
31194 -
Web服務(wù)器
+關(guān)注
關(guān)注
0文章
138瀏覽量
24399 -
網(wǎng)絡(luò)攻擊
+關(guān)注
關(guān)注
0文章
331瀏覽量
23444
原文標(biāo)題:常見(jiàn)網(wǎng)絡(luò)攻擊與防御方法
文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論