NoSQL注入類型有以下這些:
重言式注入:又稱為永真式,此類攻擊是在條件語句中注入代碼,使生成的表達式判定結果永遠為真,從而繞過認證或訪問機制。
聯合查詢注入:聯合查詢是一種眾所周知的SQL注入技術,攻擊者利用一個脆弱的參數去改變給定查詢返回的數據集。聯合查詢最常用的用法是繞過認證頁面獲取數據。
JavaScript注入:MongoDBServer支持JavaScript,這使得在數據引擎進行復雜事務和查詢成為可能,但是傳遞不干凈的用戶輸入到這些查詢中可以注入任意的JavaScript代碼,導致非法的數據獲取或篡改。
盲注:當頁面沒有回顯時,那么我們可以通過$regex正則表達式來達到和傳統SQL注入中substr()函數相同的功能,而且NoSQL用到的基本上都是布爾盲注。
AND注入:這種注入就是攻擊者會會構造由”&”操作符和用戶引入的的參數組成的正常查詢在LDAP目錄中搜索,如果攻擊者輸入一個有效地用戶名,然后再這個名字后面注入恰當的語句,密碼檢查機制就會被繞過。
OR注入:攻擊者會構造由”|”操作符和用戶引入的的參數組成的正常查詢在LDAP目錄中搜索,攻擊者可以注入代碼,維持正確的過濾器結構但能使用查詢實現他自己的目標。
防御注入攻擊的方法有以下這些:
使用參數化篩選語句,兩種方法可以確保應用程序不易受到SQL注入攻擊。一種是使用代碼審查,另一種是強制使用參數化語句。強制使用參數化語句意味著在運行時將拒絕嵌入用戶輸入中的SQL語句。但是,目前對此功能的支持不多。
避免使用解釋程序,這是黑客用來執行非法命令的手段。
防止SQL注入,但也避免一些詳細的錯誤消息,因為黑客可以使用這些消息。標準的輸入驗證機制用于驗證所有輸入數據的長度、類型、語句和企業規則。
使用專業的漏洞掃描工具。企業應該投資于專業的漏洞掃描工具,如著名的Accunetix網絡漏洞掃描程序。完美的漏洞掃描器不同于網絡掃描器,它專門在網站上查找SQL注入漏洞。最新的漏洞掃描程序可以找到最新發現的漏洞。
企業在Web應用程序開發過程的所有階段執行代碼安全檢查。首先,安全測試應該在部署Web應用程序之前實現,這比以前更重要、更深遠。企業還應在部署后使用漏洞掃描工具和站點監控工具測試網站。