gpt4 book ai didi

security - 为什么不建议在 MongoDB 中使用服务器端存储函数?

转载 作者:行者123 更新时间:2023-12-01 18:06:04 24 4
gpt4 key购买 nike

根据 MongoDB documentation ,不建议使用服务器端存储函数。此警告背后的原因是什么?

最佳答案

尽管 Google 搜索结果中只有人们告诉您如何做,但我确信我已多次陈述该列表:

  • 这是评估
  • eval 具有易于注入(inject)的天然能力,它就像 SQL 的非 PDO 等价物,如果你不围绕它建立一个完整的转义库,它会让你陷入困境。通过使用这些函数,您可以有效地将 MongoDB 更安全的 native 语言替换为与任何旧 SQL 一样不安全的语言。
  • 它需要全局锁,并且可以获取写锁,并且在操作完全完成之前不会释放,这与其他操作在某些情况下会释放不同。
  • eval 仅适用于主节点,不适用于副本集的任何其他成员
  • 它基本上是在捆绑的 V8/spidermonkey envo 中运行,未经检查,大量 JS 与 MongoDB 一起提供,完全能够访问数据库和管理命令的任何部分,这听起来安全吗?
  • 它不是 MongoDB,也不是“MongoDB SQL”,它在内置 JS 环境中运行,而不是 MongoDB C++ 代码本身(与聚合框架不同)。
  • 由于上一点,与许多其他选项相比,它的速度非常慢,这也适用于 $where 的使用。

这应该足以让您开始这方面的工作。

关于security - 为什么不建议在 MongoDB 中使用服务器端存储函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com