回答
2
瀏覽
267
1,只需要控制輸入,禁止使用危險的操作就可以基本避免NoSQL注入。通過參數過濾就可以避免。
2,對于JavaScript注入,$where 和Commend方法能不用就盡量不要用了,如果必須用的話一定要限制輸入或者把要執行的內容寫成JavaScript function通過參數的方式傳進去。
3,不要打開一些MongoDB相關的REST API,防止跨站請求偽造,給應用最小權限,不要存在未授權訪問用戶
回答所涉及的環境:聯想天逸510S、Windows 10。
為了避免NoSQL注入,您必須始終將用戶輸入視為不受信任。您可以執行以下操作來驗證用戶輸入:
使用mongoose等數據庫。
如果找不到適合您環境的庫,請將用戶輸入轉換為期望的類型。例如,將用戶名和密碼轉換為字符串。
在MongoDB的情況下,切勿在用戶輸入中使用where,mapReduce或group運算符,因為這些運算符使攻擊者能夠注入JavaScript,因此比其他運算符更加危險。為了加強安全性,設置javascriptEnabled到false在mongod.conf如果可能的話。
此外,請始終使用最小特權模型:以盡可能低的特權運行您的應用程序,以便即使被利用,攻擊者也無法訪問其他資源。
回答所涉及的環境:聯想天逸510S、Windows 10。