1.什么是 SQL 注入攻擊?
攻擊者在 HTTP 請(qǐng)求中注入惡意的 SQL 代碼,服務(wù)器使用參數(shù)構(gòu)建數(shù)據(jù)庫(kù) SQL 命令時(shí),惡意SQL 被一起構(gòu)造,并在數(shù)據(jù)庫(kù)中執(zhí)行。
用戶登錄,輸入用戶名 lianggzone,密碼 ‘ or ‘1’=’1 ,如果此時(shí)使用參數(shù)構(gòu)造的方式,就會(huì)出現(xiàn)select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’
不管用戶名和密碼是什么內(nèi)容,使查詢出來(lái)的用戶列表不為空。
2.如何防范 SQL 注入攻擊使用?
預(yù)編譯的 PrepareStatement 是必須的,但是一般我們會(huì)從兩個(gè)方面同時(shí)入手。
Web 端
1)有效性檢驗(yàn)。
2)限制字符串輸入的長(zhǎng)度。
服務(wù)端
1)不用拼接 SQL 字符串。
2)使用預(yù)編譯的 PrepareStatement。
3)有效性檢驗(yàn)。(為什么服務(wù)端還要做有效性檢驗(yàn)?第一準(zhǔn)則,外部都是不可信的,防止攻擊者繞過(guò) Web 端請(qǐng)求)
4)過(guò)濾 SQL 需要的參數(shù)中的特殊字符。比如單引號(hào)、雙引號(hào)。
3.什么是 XSS 攻擊?
跨站點(diǎn)腳本攻擊,指攻擊者通過(guò)篡改網(wǎng)頁(yè),嵌入惡意腳本程序,在用戶瀏覽網(wǎng)頁(yè)時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。
4.如何防范 XSS 攻擊?
1)前端,服務(wù)端,同時(shí)需要字符串輸入的長(zhǎng)度限制。
2)前端,服務(wù)端,同時(shí)需要對(duì) HTML 轉(zhuǎn)義處理。將其中的”<”,”>”等特殊字符進(jìn)行轉(zhuǎn)義編碼。防 XSS 的核心是必須對(duì)輸入的數(shù)據(jù)做過(guò)濾處理。
5.什么是 CSRF 攻擊?
跨站點(diǎn)請(qǐng)求偽造,指攻擊者通過(guò)跨站請(qǐng)求,以合法的用戶的身份進(jìn)行非法操作??梢赃@么理解 CSRF 攻擊:攻擊者盜用你的身份,以你的名義向第三方網(wǎng)站發(fā)送惡意請(qǐng)求。CRSF 能做的事情包括利用你的身份發(fā)郵件,發(fā)短信,進(jìn)行交易轉(zhuǎn)賬,甚至盜取賬號(hào)信息。
6.如何防范 CSRF 攻擊安全框架?
例如 Spring Security, token 機(jī)制。在 HTTP 請(qǐng)求中進(jìn)行 token 驗(yàn)證,如果請(qǐng)求中沒(méi)有 token 或者 token 內(nèi)容不正確,則認(rèn)為 CSRF 攻擊而拒絕該請(qǐng)求。
驗(yàn)證碼。通常情況下,驗(yàn)證碼能夠很好的遏制 CSRF 攻擊,但是很多情況下,出于用戶體驗(yàn)考慮,驗(yàn)證碼只能作為一種輔助手段,而不是最主要的解決方案。
referer 識(shí)別。在 HTTP Header 中有一個(gè)字段 Referer,它記錄了 HTTP 請(qǐng)求的來(lái)源地址。如果Referer 是其他網(wǎng)站,就有可能是 CSRF 攻擊,則拒絕該請(qǐng)求。但是,服務(wù)器并非都能取到Referer。很多用戶出于隱私保護(hù)的考慮,限制了 Referer 的發(fā)送。在某些情況下,瀏覽器也不會(huì)發(fā)送 Referer,例如 HTTPS 跳轉(zhuǎn)到 HTTP。
1)驗(yàn)證請(qǐng)求來(lái)源地址;
2)關(guān)鍵操作添加驗(yàn)證碼;
3)在請(qǐng)求地址添加 token 并驗(yàn)證。
7.什么是文件上傳漏洞?
文件上傳漏洞,指的是用戶上傳一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)端命令的能力。
許多第三方框架、服務(wù),都曾經(jīng)被爆出文件上傳漏洞,比如很早之前的 Struts2,以及富文本編輯器等等,可被攻擊者上傳惡意代碼,有可能服務(wù)端就被人黑了。如何防范文件上傳漏。文件上傳的目錄設(shè)置為不可執(zhí)行。
1)判斷文件類型。在判斷文件類型的時(shí)候,可以結(jié)合使用 MIME Type,后綴檢查等方式。
因?yàn)閷?duì)于上傳文件,不能簡(jiǎn)單地通過(guò)后綴名稱來(lái)判斷文件的類型,因?yàn)楣粽呖梢詫⒖蓤?zhí)行文件的后綴名稱改為圖片或其他后綴類型,誘導(dǎo)用戶執(zhí)行。
2)對(duì)上傳的文件類型進(jìn)行白名單校驗(yàn),只允許上傳可靠類型。
3)上傳的文件需要進(jìn)行重新命名,使攻擊者無(wú)法猜想上傳文件的訪問(wèn)路徑,將極大地增加攻擊成本,同時(shí)向 shell.php.rar.ara 這種文件,因?yàn)橹孛鵁o(wú)法成功實(shí)施攻擊。
4)限制上傳文件的大小。
5)單獨(dú)設(shè)置文件服務(wù)器的域名。
DDos攻擊客戶端向服務(wù)端發(fā)送請(qǐng)求鏈接數(shù)據(jù)包,服務(wù)端向客戶端發(fā)送確認(rèn)數(shù)據(jù)包,客戶端不向服務(wù)端發(fā)送確認(rèn)數(shù)據(jù)包,服務(wù)器一直等待來(lái)自客戶端的確認(rèn),沒(méi)有徹底根治的辦法,除非不使用 TCP。
8.DDos 預(yù)防:
1)限制同時(shí)打開(kāi) SYN 半鏈接的數(shù)目
2)縮短 SYN 半鏈接的 Time out 時(shí)間
3)關(guān)閉不必要的服務(wù)
更多關(guān)于“網(wǎng)絡(luò)安全培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。