0

阅读这个答案,似乎使用 PL/Python 可能存在安全风险,我很好奇如何克服它们。我将“不受信任”解释为“不安全”的解释是否正确,如果是这样,如果您想使用 PL/Python,是否有办法以克服漏洞的方式配置数据库?模糊的想法,但例如是否有可能以某种方式将 python 代码执行沙箱化?

4

2 回答 2

2

链接的答案并没有说或暗示使用PL/Python 是一种安全风险。

我将“不受信任”解释为“不安全”的解释是否正确

这取决于威胁模型。

链接的答案不是关于你自己使用 PL/Python,而是让其他人在你的数据库上授予有限权限来创建和运行 PL/Python 函数。如果允许他们这样做,他们可以使用自己的 Python 代码来解决数据库可能强加给他们的限制。

于 2017-08-22T21:39:30.040 回答
0

这意味着 PostgreSQL 核心开发人员无法完全控制可以在该语言中使用的库和代码。用户可以使用具有文件访问权限的功能(并绕过 PostgreSQL 安全性),或者可以更改系统配置(信号处理)并可能导致服务器崩溃。

这就是为什么这种语言的使用仅限于 postgres 超级用户的原因,他们负责编写正确和安全的代码。没有超级用户权限的用户不能用这种语言编写函数。

于 2017-08-23T03:16:22.800 回答