為了避免NoSQL注入,您必須始終將用戶輸入視為不受信任。您可以執行以下操作來驗證用戶輸入:
使用mongoose等數據庫。
如果找不到適合您環境的庫,請將用戶輸入轉換為期望的類型。例如,將用戶名和密碼轉換為字符串。
在MongoDB的情況下,切勿在用戶輸入中使用where,mapReduce或group運算符,因為這些運算符使攻擊者能夠注入JavaScript,因此比其他運算符更加危險。為了加強安全性,設置javascriptEnabled到false在mongod.conf如果可能的話。
此外,請始終使用最小特權模型:以盡可能低的特權運行您的應用程序,以便即使被利用,攻擊者也無法訪問其他資源。