繁体   English   中英

BasicDBObject.parse()是否对NoSQL注入攻击安全?

[英]Is BasicDBObject.parse() secure against NoSQL injection attacks?

我正在使用mongo-java-driver连接到我的MongoDB。 所以我的问题是关于将MongoDB与Java客户端一起使用:

  • com.mongodb.BasicDBObject.parse(userInput)对NoSQL注入攻击是否安全?
  • 还是在解析之前必须清理userInput String?
  • 如果我必须清理输入内容:mongo-java-driver附带有用于清理的特殊方法吗?
  • 还是应该使用basicDBObject.put( "foo", "bar" )代替?

MongoDB文档描述了一种严格的模式

  • 严格模式是否可以清理输入?
  • 解析时如何激活严格模式?

OWASP指南描述了几种MongoDB注入攻击。 尚不清楚BasicDBObject.parse()是否BasicDBObject.parse()输入本身。

  1. com.mongodb.BasicDBObject.parse()不能防止NOSQL注入
  2. 一般而言,消毒是对抗注射的好事,但还不够
  3. 这里有一些针对NOSQL注入的OWASP指南: https : //www.owasp.org/index.php/Injection_Prevention_Cheat_Sheet_in_Java#Example_-__MongoDB

如果您要对查询进行参数化,建议您看一下Hibernate OGM: http : //hibernate.org/ogm/documentation/ 参数化是对抗注塑的唯一解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM