使用PL / Python有哪些安全隐患?

时间:2017-08-22 21:28:17

标签: python postgresql security plpgsql trusted

阅读此answer看来,使用PL / Python可能存在安全风险,我很好奇如何克服它们。我对'不信任"的解释是什么? as"不安全"正确,如果你想使用PL / Python,是否有办法以克服漏洞的方式配置数据库?模糊的想法,但是例如是否可能以某种方式沙盒化python代码执行?

2 个答案:

答案 0 :(得分:2)

linked answer并未暗示或暗示使用 PL / Python存在安全风险。

  

我对“不信任”的解释是否“不安全”正确

这取决于威胁模型。

linked answer不是自己使用PL / Python,而是让你在数据库上授予有限权限的其他人创建和运行PL / Python函数。如果他们被允许这样做,他们可以使用他们自己的Python代码来解决数据库否则会对他们施加的限制。

答案 1 :(得分:0)

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

这就是为什么这种语言的使用仅限于postgres超级用户,他们负责编写正确且安全的代码。没有超级用户访问权限的用户无法使用该语言编写函数。