foo*_*100 13 postgresql security python plpython
根据文档:
PL/Python 仅可用作“不受信任”的语言,这意味着它不提供任何方式来限制用户可以在其中执行的操作,因此被命名为 plpythonu。如果在 Python 中开发了安全执行机制,那么将来可能会出现可信变体 plpython。
为什么为 Python 开发安全执行机制却很难,而为其他语言(如 Perl)开发安全执行机制却没有?
Cra*_*ger 14
这与 Python 的对象模型有关 - 总有一种方法可以获得对可能不安全的对象的引用。有关问题的一些信息,请参阅rexec 模块文档和文档的受限执行章节,以及:
这些限制与 PostgreSQL 本身无关,它们是 CPython 解释器实现或什至可能是 Python 语言本身所固有的。
其他一些语言已经检查了运行时,如 Perl、Java、JavaScript 和 Lua。他们中的大多数都面临着一系列安全问题,因为这种受限的执行环境很难防范所有可能的越狱漏洞。
真的没有什么能阻止 PostgreSQL 添加一个半可信的 Python 解释器,因为 rexec 对于许多目的来说“足够好”。PostgreSQL 并不倾向于只热衷于 - 主要是有点足够好 - 不过。如果标记为仅限超级用户,它可能只会被接受,但您始终可以为特定用户授予访问权限。它会比不受信任的 Python 更好。
我个人认为 PL/V8 或类似版本是这里的未来,并希望看到它在核心中得到支持。
我还模糊地探索了一个可信赖的 Mono的想法,它可以加载用 C#、VB.NET、IronPython 或其他语言编写的“安全”程序集,但在该主题上没有做太多工作。
| 归档时间: |
|
| 查看次数: |
2555 次 |
| 最近记录: |