- 看到相关 php+mongodb 的示例,看漏洞原因,感觉主要 php 动态语言对参数进行解析变为了 php 中的合法复杂类型,后传递给 mongodb 的驱动。这样用户输入可能解析为合法的列表之类的 php 对象,以及未区分 bson 中的 String 跟 JavaScript 类型,从而造成注入。
- 我看了下 Golang 的 MongoDB 官方驱动,BSON 对 JavaScript 类型的数据是跟 string 分开进行处理的,对 string 有做转义,而 golang 中输入一般是 string 类型的。
问题: 那在 Golang 使用 MongoDB 过程中,如果 MongoDB 查询不传拼接后的 JavaScript ,只有单纯的 string ,是否可以防止相关注入呢?