Java mongoDB注射液
Java中是否有避免mongoDB注入攻击的通用模式Java mongoDB注射液,java,mongodb,code-injection,Java,Mongodb,Code Injection,Java中是否有避免mongoDB注入攻击的通用模式 谢谢大多数驱动程序都是在您将查询构造为BSON文档的语言表示形式的地方设置的。您打算在哪些语言中使用mongo?使用受支持的驱动程序之一。不要将字符串反序列化为JSON并将其作为查询传递,例如,不要这样做(在Ruby中): 其中query\u type和parameters是来自表单的字符串。但是,你做这件事必须是犯法的愚蠢 因为没有查询语言,所以没有相同的注入空间。SQL注入攻击可能的部分原因是要采取的操作(SELECT、UPDATE、DE
谢谢大多数驱动程序都是在您将查询构造为BSON文档的语言表示形式的地方设置的。您打算在哪些语言中使用mongo?使用受支持的驱动程序之一。不要将字符串反序列化为JSON并将其作为查询传递,例如,不要这样做(在Ruby中): 其中
query\u type
和parameters
是来自表单的字符串。但是,你做这件事必须是犯法的愚蠢
因为没有查询语言,所以没有相同的注入空间。SQL注入攻击可能的部分原因是要采取的操作(
SELECT
、UPDATE
、DELETE
)是查询字符串的一部分。MongoDB和许多其他较新的数据库不是这样工作的,相反,该操作是API的一部分。如果SQL驱动程序只有查询
,并且在某些情况下执行
,MongoDB有查找
,更新
,插入
和删除
,您可以在Where子句中使用Javascript构建MongoDB查询,在这里可以进行注入。这里解释如何防止这种情况:是的,通过使用正则表达式搜索。
例如:假设您通过用户名进行检查,并且您没有使用EQ op。
例如,如果我通过[a-z],我将绕过您的登录操作:)
但无论如何,这在很大程度上取决于解决方案中如何实现事物的逻辑。您能用您打算与mongo接口的语言澄清您的问题吗?
collection.send(query_type, JSON.parse(parameters))