Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongoDB注射液_Java_Mongodb_Code Injection - Fatal编程技术网

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

Java中是否有避免mongoDB注入攻击的通用模式


谢谢

大多数驱动程序都是在您将查询构造为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))