Nasıl open_basedir bu gibi yazabilirsiniz ->

2 Cevap security

Bildiğiniz gibi. Sen vb open_basedir = '/var/home' yazmak zorunda

open_basedir = '/var/home/*/': Ben bu gibi yazmak istiyorum

Hangi istediğim php her farklı dizinleri, ev dizininde her dizin kısıtlamak gerektiğidir.

Kısa bir soru: Nasıl open_basedir bu gibi yazabilirsiniz: open_basedir = 'var/home/*/'?

Çok teşekkür ederim.

2 Cevap

Her kullanıcının kendi ev dizinine PHP kısıtlamak istiyorsanız size bir PHP kurulum gerekir:

  1. PHP kullanıcı kimlik bilgileri ile çalışır
  2. PHP bir kullanıcı başına yapılandırmasını kabul

Tipik bir durumda yerine Apache modülü olarak PHP çalışan daha bir CGI (veya FastCGI) kurulum vardır. Sonra her kullanıcı için özel bir php.ini dosyası sağlayabilir.

BTW, bunu test değil ama beklendiği gibi belki open_basedir = "~" çalışıyor ...

====== EDIT ======

OP'ın yorumun kaynaklanan bazı açıklamalar:

  1. Unix kabukları, "~" "geçerli kullanıcının ev dizini" için bir eşanlamlı öyledir "/ var / home / john" sen john vardır ve eğer "/ var / home / michael" Eğer michael iseniz. "Var / home / ~ /" özel bir anlamı vardır: ~ denir sadece bir dizin var.

  2. Birçok program bu kabuk kuralı kullanabilirsiniz. PHP yaparsa ben bilmiyorum.

  3. CGI bir kaykay bir uzay mekiği daha az güvenli olduğunu aynı şekilde statik HTML daha az güvenli olduğunu böylece sunucu üzerinde keyfi programları çalıştırmak için izin verir. Biz PHP yorumlayıcısı yürütme bahsediyoruz: Ama biz rasgele programlar yürütme bahsetmiyoruz. PHP ve çevre gibi o kadar güvenli olacak.

  4. Eğer konu, FastCGI (gelişmiş performans ile bir CGI uygulaması) için Google ilgileniyorsanız. Birçok barındırma sağlayıcıları kullanabilirsiniz.

Şunları yapabilirsiniz. Siz direktifte her yolunu belirtmeniz gerekir:

open_basedir = "/var/home/path1/:/var/home/path2/:/var/home/path3/"