2010-11-12 24 views
11

在Java中有避免mongoDB注入攻擊的常見模式嗎?mongoDB注入

感謝

+1

您能否用您打算與mongo連接的語言來澄清您的問題? – 2010-11-12 18:48:02

+0

問題已更新 – Mark 2010-11-13 16:25:25

回答

16

使用其中一個受支持的驅動程序。不要將字符串反序列化爲JSON並將它們作爲查詢傳遞,例如不」做到這一點(在Ruby中):

collection.send(query_type, JSON.parse(parameters)) 

其中query_typeparameters是從表單來的字符串。儘管如此,你將不得不犯罪。

由於沒有查詢語言,因此沒有相同的注射空間。 SQL注入攻擊可能的部分原因是要採取的操作(SELECT,UPDATE,DELETE等)是查詢字符串的一部分。 MongoDB和許多其他較新的數據庫不能像那樣工作,而是該操作是API的一部分。在SQL驅動程序只有query和某些情況下exec,MongoDB有find,update,insertremove

1

大部分車手都在這裏您構建查詢,BSON文檔的語言表示的設置。你打算用什麼語言來使用mongo?

1

是的,通過使用正則表達式搜索。例如:假設您通過用戶名進行檢查,並且您沒有使用EQ操作。 如果我通過[a-z]例如,我將繞過您的登錄操作:)。

但無論如何,它非常依賴於解決方案中如何實現事物的邏輯。