什麼是sql注入攻擊
攻擊者在http請求中注入惡意的sql**,伺服器使用引數構建資料庫sql命令時,惡意sql被一起構造,並在資料庫中執行。
使用者登入,輸入使用者名稱 lianggzone,密碼 『 or 『1』=』1 ,如果此時使用引數構造的方式,就會出現
select * from user where name = 『lianggzone』 and password = 『』 or 『1』=『1』
不管使用者名稱和密碼是什麼內容,使查詢出來的使用者列表不為空。如何防範sql注入攻擊使用預編譯的preparestatement是必須的,但是一般我們會從兩個方面同時入手。
web端
1)有效性檢驗。
2)限制字串輸入的長度。
服務端1)不用拼接sql字串。
2)使用預編譯的preparestatement。
3)有效性檢驗。(為什麼服務端還要做有效性檢驗?第一準則,外部都是不可信的,防止攻擊者繞過web端請求)
4)過濾sql需要的引數中的特殊字元。比如單引號、雙引號。
什麼是xss攻擊
跨站點指令碼攻擊,指攻擊者通過篡改網頁,嵌入惡意指令碼程式,在使用者瀏覽網頁時,控制使用者瀏覽器進行惡意操作的一種攻擊方式。如何防範xss攻擊
1)前端,服務端,同時需要字串輸入的長度限制。
2)前端,服務端,同時需要對html轉義處理。將其中的」<」,」>」等特殊字元進行轉義編碼。
防 xss 的核心是必須對輸入的資料做過濾處理。
什麼是csrf攻擊
跨站點請求偽造,指攻擊者通過跨站請求,以合法的使用者的身份進行非法操作。可以這麼理解csrf攻擊:攻擊者盜用你的身份,以你的名義向第三方**傳送惡意請求。crsf能做的事情包括利用你的身份發郵件,發簡訊,進行交易轉賬,甚至盜取賬號資訊。如何防範csrf攻擊
安全框架,例如spring security。
token機制。在http請求中進行token驗證,如果請求中沒有token或者token內容不正確,則認為csrf攻擊而拒絕該請求。
驗證碼。通常情況下,驗證碼能夠很好的遏制csrf攻擊,但是很多情況下,出於使用者體驗考慮,驗證碼只能作為一種輔助手段,而不是最主要的解決方案。
referer識別。在http header中有乙個欄位referer,它記錄了http請求的**位址。如果referer是其他**,就有可能是csrf攻擊,則拒絕該請求。但是,伺服器並非都能取到referer。很多使用者出於隱私保護的考慮,限制了referer的傳送。在某些情況下,瀏覽器也不會傳送referer,例如https跳轉到http。
1)驗證請求**位址;
2)關鍵操作新增驗證碼;
3)在請求位址新增 token 並驗證。
什麼是檔案上傳漏洞
檔案上傳漏洞,指的是使用者上傳乙個可執行的指令碼檔案,並通過此指令碼檔案獲得了執行服務端命令的能力。
許多第三方框架、服務,都曾經被爆出檔案上傳漏洞,比如很早之前的struts2,以及富文字編輯器等等,可被攻擊者上傳惡意**,有可能服務端就被人黑了。如何防範檔案上傳漏洞
檔案上傳的目錄設定為不可執行。
1)判斷檔案型別。在判斷檔案型別的時候,可以結合使用mime type,字尾檢查等方式。因為對於上傳檔案,不能簡單地通過字尾名稱來判斷檔案的型別,因為攻擊者可以將可執行檔案的字尾名稱改為或其他字尾型別,誘導使用者執行。
2)對上傳的檔案型別進行白名單校驗,只允許上傳可靠型別。
3)上傳的檔案需要進行重新命名,使攻擊者無法猜想上傳檔案的訪問路徑,將極大地增加攻擊成本,同時向shell.php.rar.ara這種檔案,因為重新命名而無法成功實施攻擊。
4)限制上傳檔案的大小。
5)單獨設定檔案伺服器的網域名稱。
ddos 攻擊
客戶端向服務端傳送請求鏈結資料報,服務端向客戶端傳送確認資料報,客戶端不向服務端傳送確認資料報,伺服器一直等待來自客戶端的確認
沒有徹底**的辦法,除非不使用tcp
ddos 預防:
1)限制同時開啟syn半鏈結的數目
2)縮短syn半鏈結的time out 時間
3)關閉不必要的服務
常見Web攻擊
1.sql注入的危害 2.例項 mysqldb 通過在使用者名稱裡面構建乙個sql語句,達到了我們在執行sql語句的時候永遠為真的情況 username or 1 1 username request.post.get username password request.post.get passw...
常見的 Web 應用攻擊
在 owasp 組織列舉的十大 web 應用安全隱患中,有兩個概率最高的攻擊手段,它們分別是 跨站點指令碼攻擊 cross site scripting 和 注入缺陷 injection flaws 下面將通過舉例來說明這兩種攻擊是如何實施的。1 跨站點指令碼攻擊 首先來看一下跨站點指令碼的利用過程...
Web常見的攻擊手段
type text name name value 當輸入的內容為 alert hello script 最終的效果為 type text name name value alert hello script 這時候就會彈出來hello。這樣的惡作劇還好,如果是獲取使用者賬號密碼的的指令碼呢,那樣的...