Python için paylaşımlı sunucu güvenliği sorununu çözme

3 Cevap php

So my group is trying to set up a shared-server environment for various and sundry web services. I think we've settled on setting disable_functions and disable_classes site wide in php.ini and php_admin_value to force open_basedir in each app's httpd.conf for php scripts, and passenger's user switching for ruby scripts.

Biz hala olsa Python için bir şeyler bulmalıyız. Yolcu python desteklemiyor, fakat belirli alt-dizinleri (bu etki düzeyinde tüm ya da hiçbir şey) için uygulama başına güvenlik için.

Herhangi bir öneriniz?

Önceki herhangi bir anlam ifade etmiyor ise (- Ve iyi, ben python desteğini kurmak gerekiyordu adam değilim, değil php veya yakut desteğini kurmak, bu nedenle bazı "ve sonra bazı sihirli hala var adam ) benim bakış açısıyla "Orada adımları olur.

3 Cevap

Peki, güvenli bir ortamda bir tür Python çalıştırmak ve sinek / yük / shutdown bu ortamları yapılandırmak için izin verir virtualenv denilen bir sistem var. Ben bu konuda çok bilmiyorum, ama bunu içine ciddi bir göz atmalısınız; Burada kendi web sayfasından (sadece Google'da ve onu bulacaksınız) den açıklaması:

Ele alınan temel problem bağımlılıkları ve sürümlerinden biri ve dolaylı izinleri olduğunu. Eğer LibFoo sürümünü 1 gereken bir uygulama var, ama başka bir uygulama Nasıl bu uygulamaların hem de kullanabilirsiniz sürüm 2. Gerektirir düşünün? Eğer / usr/lib/python2.4/site-packages (veya platformun standart konumu ne olursa olsun) içine her şeyi yüklerseniz, o istemeden yükseltilmesi gerektiğini bir uygulama yükseltme bir durumda sonuna kadar kolaydır.

Ya da daha genel olarak, ne bir uygulama yüklemek ve olmaya bırakmak istiyorum? Bir uygulama çalışırsa, onun kütüphaneler veya bu kütüphanelerin sürümleri herhangi bir değişiklik uygulamayı kırabilir.

Ayrıca, küresel site paketleri dizine paketlerini ne yükleyemezse? Örneğin, paylaşılan bir bilgisayar üzerinde.

Bütün bu durumlarda, virtualenv size yardımcı olabilir. Diğer virtualenv ortamlarında (ve isteğe bağlı ya da küresel yüklü kütüphaneleri kullanmak değildir) ile kütüphane paylaşmak değil, kendi yükleme dizinleri vardır bir ortam oluşturur.

Net değil tüm kullanıcıları biliyorum şahsen, nispeten iyi niyetli olması onlara güven veya taranır bir kamu sunucu değil, zorla, kaba, ... Sen, app motoru Sandbox exmaples de yarar Mill, CodePad ve IronPython'ı bakmak olabilir / silverlight

http://utilitymill.com/

http://code.google.com/appengine/docs/python/

http://codepad.org/

http://ironpython-urls.blogspot.com/2008/06/try-python-python-in-browser-with.html

(Ayrıca Brett Cannon çalışma

http://sayspy.blogspot.com/2007/05/i-have-finished-securing-python.html

Eğer kendi dizinleri onları sınırlamak için Python komut dosyaları için chroot kullanabilir miyim?