常見軟件安全性漏洞主要有:XSS,CSRF,cookie和http頭篡改,sql注入,非法輸入攻擊,身份驗證漏洞,敏感數據泄露,日志不全,非法用戶鑒別等。
1、XSS:互聯網常見的攻擊手段,常見的腳本注入攻擊,如在留言中加入一段js腳本,導致整個頁面被破壞。防御手段可以在接收請求的時候,把一些特征標記改掉即可。比如:<改成<,>改成>等。
由防止XSS攻擊帶來的問題是,頁面需要實現自定義標簽來替換一些特殊需要。比如在編輯框中要輸入一張圖片,並顯示。這就需要自定義一些標簽來描述圖片。
2、CSRF:也是常見的攻擊手段之一,如某人登錄了含有非法腳本的網站,非法腳本中會發送一個指向某個網站的扣款請求,不巧的是,用戶正好也打開了這個網站,因此,根據cookie等認證手段,服務端無法判斷請求的合法性,從而導致一些非法操作產生。防御手段也比較簡單,扣款頁面帶入一個一次性的隨機token,提交請求的時候也帶上這個token,服務端需要驗證這個token的合法性。
3、cookie和http頭篡改:許多網站都是采用cookie或http頭來進行身份驗證,但是一旦被篡改了會導致身份泄露。常用的處理方法就是給關鍵的信息加密,服務端驗證加入一些token。
4、sql注入:java中現在用的一些中間件,如mybatis都有防止sql注入的功能。
5、非法輸入攻擊:非法輸入包含很多類型,我在這里舉一個例子。
某人上傳了一張含有病毒的圖片,那么所有訪問這張圖片的用戶都將感染病毒,防止的手段可以在上傳后,對圖片進行一次壓縮或轉編碼即可。
6、身份驗證漏洞:包括訪問未授權的功能,訪問未授權的數據。訪問未授權的功能主要是通過菜單權限進行限制。訪問未授權的數據主要是限制用戶不能訪問別的用戶數據或別的組織數據。
7、敏感數據泄露:主要是表現在一些關鍵數據泄露到前端或在網絡上傳輸。比如用戶的身份證。解決方法一般是在傳輸前進行隱藏,加密,替換等。
8、日志不全是線上問題調試的最大殺手。
9、非法用戶鑒別:在互聯網項目中,防止外掛是必不可少的。主要分為2步:鑒別和處理。鑒別非法用戶可以采用一些特征描述,比如前端限制用戶單位時間內只能訪問某個接口幾次,超過次數的訪問就是非法用戶造成的。處理一般采用限流,封號,限ip等手段。