微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – 为什么PL / Python不受信任?

根据文件

PL/Python is only available as an “untrusted” language, meaning it does not offer any way of restricting what users can do in it and is therefore named plpythonu. A trusted variant plpython might become available in the future if a secure execution mechanism is developed in Python.

为什么难以为Python开发安全执行机制,而不是为其他语言(如Perl)开发?

解决方法:

它与Python的对象模型有关 – 总是有一种方法可以获得对不安全的对象的引用.有关问题的一些信息,请参阅rexec module documentationrestricted execution chapter of the docs,以及:

> https://www.researchgate.net/publication/228612669_Controlling_access_to_resources_within_the_python_interpreter
> http://tav.espians.com/paving-the-way-to-securing-the-python-interpreter.html
> https://stackoverflow.com/q/525056/398670

这些限制与Postgresql本身没有任何关系,它们是cpython解释器实现所固有的,甚至可能是Python语言本身.

其他一些语言已经检查过运行时,比如Perl,Java,JavaScript和Lua.他们中的大多数都面临着一系列安全问题,因为这种受限制的执行环境很难防止所有可能的越狱攻击.

实际上没有什么可以阻止Postgresql添加一个半透明的Python解释器,因为rexec在很多方面都“足够好”. Postgresql并不倾向于只关注 – 大多数有点好 – 但也许.如果仅标记为超级用户,则可能只接受它,但您可以始终为特定用户授予对其的访问权限.它比不受信任的Python更好.

就个人而言,我认为PL / V8或类似的未来就在这里,并且希望看到它在核心方面得到支持.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐