2014-03-28 46 views

回答

2

簡短回答:沒有,因爲你提到的原因,在進入MongoDB時沒有必要清理用戶輸入。由於它的二進制傳輸格式(BSON),MongoDB中沒有「SQL注入」的等價物。

一個BSON文件裏面沒有字符串可以被錯誤地解釋爲代碼(例如";db.dropDatabase();),除非你確實努力 - 例如,如果你建立你想運行並傳遞到db.eval()的代碼你自己的字符串表示,你應該永遠不會這樣做。

只要您使用驅動程序的本地方法與Mongo進行通信,您的請求中包含的任何數據將在驅動程序發送到服務器之前由驅動程序映射到有效的BSON文檔 - 這是驅動程序的責任。

但是,您可以決定在進入Mongo用於其他目的(例如HTML編碼)時對用戶輸入進行清理,但這完全取決於您。就我個人而言,我會在出路的時候做這件事,而不是因爲各種原因而不是在這個問題的範圍之內。

相關問題