Ini berkaitan dengan model objek Python - selalu ada cara untuk mendapatkan referensi ke objek yang mungkin tidak aman. Lihat dokumentasi modul rexec dan bab eksekusi terbatas dari dokumen untuk beberapa info tentang masalah, serta:
Keterbatasan tidak ada hubungannya dengan PostgreSQL sendiri, mereka melekat pada implementasi juru bahasa CPython atau bahkan mungkin bahasa Python sendiri.
Beberapa bahasa lain telah memeriksa runtimes, seperti Perl, Java, JavaScript dan Lua. Sebagian besar dari mereka telah menghadapi serangkaian masalah keamanan karena lingkungan eksekusi terbatas seperti itu sangat sulit untuk dilindungi dari semua kemungkinan eksploitasi jailbreak.
Benar-benar tidak ada yang menghentikan PostgreSQL dari menambahkan interpreter Python semitrusted, karena rexec "cukup baik" untuk banyak tujuan. PostgreSQL tidak cenderung tertarik pada hanya-sebagian-agak-cukup-baik-mungkin saja. Mungkin hanya akan diterima jika ditandai hanya pengguna super, tetapi Anda selalu dapat memberikan akses untuk itu untuk pengguna tertentu. Itu akan lebih baik daripada Python yang tidak dipercaya.
Secara pribadi saya pikir PL / V8 atau yang serupa adalah masa depan di sini, dan ingin melihatnya bergerak ke arah yang didukung pada intinya.
Saya juga secara samar-samar mengeksplorasi ide Mono tepercaya yang dapat memuat majelis "aman" yang ditulis dalam C #, VB.NET, IronPython, atau apa pun tetapi belum bisa berbuat banyak pada topik itu.
rexec
modul Python secara inheren tidak aman, seperti yang ditautkan di atas. Saya membayangkan mungkin sebuah plpython menggunakan PyPi mungkin dapat memberikan mode terbatas yang kemudian dapat digunakan Pg. Saya belum melihat apakah ada banyak pekerjaan. Anda juga tidak benar tentang "versi tepercaya dari Perl" - ini sebenarnya Perl yang biasa, penerjemah yang sama digunakan untuk plperl dan plperlu. Perbedaannya adalah konfigurasi runtime.pp_require_safe
danplperl_trusted_init
. Saya tidak cukup tahu untuk memiliki banyak pendapat tentang keamanan sebenarnya dari eksekusi Perl terbatas. Saya lebih suka melihat versi tepercaya Lua atau mendapatkan mindshare dan adopsi yang lebih baik, penerjemah JavaScript tepercaya. Tetapi apa yang kita miliki sekarang cukup untuk saat ini.