常見的web攻擊
1.什么是SQL注入攻擊
攻擊者在HTTP請求中注入惡意的SQL代碼,服務器使用參數(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)容,使查詢出來的用戶列表不為空。
如何防范SQL注入攻擊使用預編譯的PrepareStatement是必須的,但是一般我們會從兩個方面同時入手。
Web端
1)有效性檢驗。
2)限制字符串輸入的長度。
服務端
1)不用拼接SQL字符串。
2)使用預編譯的PrepareStatement。
3)有效性檢驗。(為什么服務端還要做有效性檢驗?第一準則,外部都是不可信的,防止攻擊者繞過Web端請求)
4)過濾SQL需要的參數(shù)中的特殊字符。比如單引號、雙引號。
prepareStatement對象防止sql注入的方式是把用戶非法輸入的單引號用\反斜杠做了轉(zhuǎn)義,從而達到了防止sql注入的目的
2.什么是XSS攻擊
答; 跨站點腳本攻擊,指攻擊者通過篡改網(wǎng)頁,嵌入惡意腳本程序,在用戶瀏覽網(wǎng)頁時,控制用戶瀏覽器進行惡意操作的一種攻擊方式。如何防范XSS攻擊
1)前端,服務端,同時需要字符串輸入的長度限制。
2)前端,服務端,同時需要對HTML轉(zhuǎn)義處理。將其中的”<”,”>”等特殊字符進行轉(zhuǎn)義編碼。
防 XSS 的核心是必須對輸入的數(shù)據(jù)做過濾處理。
3.什么是CSRF攻擊
答; 跨站點請求偽造,指攻擊者通過跨站請求,以合法的用戶的身份進行非法操作?梢赃@么理解CSRF攻擊:攻擊者盜用你的身份,以你的名義向第三方網(wǎng)站發(fā)送惡意請求。CRSF能做的事情包括利用你的身份發(fā)郵件,發(fā)短信,進行交易轉(zhuǎn)賬,甚至盜取賬號信息。
如何防范CSRF攻擊:
安全框架,例如Spring Security。
token機制。在HTTP請求中進行token驗證,如果請求中沒有token或者token內(nèi)容不正確,則認為CSRF攻擊而拒絕該請求。
驗證碼。通常情況下,驗證碼能夠很好的遏制CSRF攻擊,但是很多情況下,出于用戶體驗考慮,驗證碼只能作為一種輔助手段,而不是最主要的解決方案。
referer識別。在HTTP Header中有一個字段Referer,它記錄了HTTP請求的來源地址。如果Referer是其他網(wǎng)站,就有可能是CSRF攻擊,則拒絕該請求。但是,服務器并非都能取到Referer。很多用戶出于隱私保護的考慮,限制了Referer的發(fā)送。在某些情況下,瀏覽器也不會發(fā)送Referer,例如HTTPS跳轉(zhuǎn)到HTTP。
1)驗證請求來源地址;
2)關鍵操作添加驗證碼;
3)在請求地址添加 token 并驗證。
4.DDos 攻擊
客戶端向服務端發(fā)送請求鏈接數(shù)據(jù)包,服務端向客戶端發(fā)送確認數(shù)據(jù)包,客戶端不向服務端發(fā)送確認數(shù)據(jù)包,服務器一直等待來自客戶端的確認
沒有徹底根治的辦法,除非不使用TCP
DDos 預防:
1)限制同時打開SYN半鏈接的數(shù)目
2)縮短SYN半鏈接的Time out 時間
3)關閉不必要的服務
5.SYN攻擊
在三次握手過程中,服務器發(fā)送SYN-ACK之后,收到客戶端的ACK之前的TCP連接稱為半連接(half-open connect).此時服務器處于Syn_RECV狀態(tài).當收到ACK后,服務器轉(zhuǎn)入ESTABLISHED狀態(tài).
Syn攻擊就是 攻擊客戶端 在短時間內(nèi)偽造大量不存在的IP地址,向服務器不斷地發(fā)送syn包,服務器回復確認包,并等待客戶的確認,由于源地址是不存在的,服務器需要不斷的重發(fā)直 至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統(tǒng)運行緩慢,嚴重者引起網(wǎng)絡堵塞甚至系統(tǒng)癱瘓。
Syn攻擊是一個典型的DDOS攻擊。檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀態(tài)時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊.在Linux下可以如下命令檢測是否被Syn攻擊
netstat -n -p TCP | grep SYN_RECV
一般較新的TCP/IP協(xié)議棧都對這一過程進行修正來防范Syn攻擊,修改tcp協(xié)議實現(xiàn)。主要方法有SynAttackProtect保護機制、SYN cookies技術、增加最大半連接和縮短超時時間等.
但是不能完全防范syn攻擊。