SQL注入
---
危害:
- 非法讀取、篡改、添加、刪除數據庫中的數據;
- 盜取用戶的各類敏感信息,獲取利益;
- 通過修改數據庫來修改網頁上的內容等。
原理:大部分關系型數據庫都是基于SQL語法,而程序使用了用戶輸入的數據拼接組成sql語句,數據庫執行之后產生了語氣之外的效果。
(舉例說明)
預防方法:
- 過濾用戶輸入的數據并進行檢驗
- 使用數據庫的預編譯(prepare)和參數綁定功能(舉例說明)。
XSS跨站腳本攻擊
---
危害:
- 竊取用戶的隱私信息
- 控制用戶的動作
原理: 攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意用戶的特殊目的。
預防方法:
- 對用戶的輸入過濾并校驗
- 用戶輸入的數據顯示在網頁時,將特殊字符轉義。
CSRF跨站請求偽造
---
危害:偽造用戶請求,在用戶不知情的情況下控制用戶的動作。
原理: 用戶訪問并登陸正常網站A后,打開了惡意網站B,由B通過瀏覽器發出請求到A站,此時會攜帶A站的cookie等信息,A的服務器并不知道請求是B偽造的。
預防方法:
- 驗證http請求頭的Referer
- 用戶輸入數據需要使用post方法,并分配一個一次性的token用于驗證。
短信驗證碼
---
危害:
- 消耗公司的短信資源(浪費錢)
- 并發發送短信,影響正常用戶的使用。
原理: 現在為了用戶體驗,很多公司的短信驗證取消了圖片驗證碼等人機校驗功能,給攻擊者造成了可乘之機。攻擊者可以使用多個代理,構造多個手機號,避開后臺的ip和手機號發送次數限制。
預防: 增加人機身份校驗(最簡單的是圖形驗證碼)。