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