ďťż
 
 
   konfiguracja php - który wariant bezpieczniejszy
 
 

Tematy

 
    
 

 

 

 

konfiguracja php - który wariant bezpieczniejszy





zlywilk - 09-05-2009 11:08
Maszyna na której kilkunastu użytkowników uruchamia swoje aplikacje php.

Dwie opcje:lWłączamy mechanizm pozwalający skryptom php działać z uprawnieniami użytkownika, który jest ich właścicielem (np. suphp).[list:07d057e7cc]+ aplikacja jednego użytkownika nie może grzebać w plikach należących do innego
+ pliki tworzone przez skrypty php mogą być usuwane/zmieniane przez ftp i vice-versa

- skrypty php mają prawa do modyfikowania samych siebie
- znacznie gorsza wydajnośćl
[*]Zostawiamy domyślną konfiguracje. Skrypty php działają z uprawnieniami użytkownika www-data.
    l+ skrypty php mogą zmieniać tylko utworzone przez siebie pliki
    + mniej problematyczna konfiguracja

    - brak uprawnień do nadpisywania eFTePem plików stworzonych przez aplikacje php
    - skrypty php jednego użytkownika mogą grzebać w plikach innegol
Ten ostatni minus jest znaczący. Jeżeli aplikacja jednego z użytkowników będzie zawierała lukę to włamywacz prawie automatycznie zyskuje dostęp do wszystkich pozostałych. Czy to zagrożenie da się jakoś ograniczyć? Jak to rozwiązują dostawcy usług hostingowych?[/list:o:07d057e7cc]Który wariant byście wybrali? A może jest jakieś lepsze rozwiązanie? Czy ma sens uruchomienie osobnej instancji apache dla każdego użytkownika?



zlywilk - 30-05-2009 12:48
Trochę poeksperymentowałem i stanęło na czymś takim:

1. Nie bawię się w żadne suphp itp. Php mam uruchomione jako moduł Apache. Zależy mi na wydajności, a ramu maszyna ma więcej niż potrzebuje.

2. Użytkownicy tworzą pliki chmod 640. Użytkownik www-data należy do grup wszystkich użytkowników. Tym sposobem użytkownicy nie mogą grzebać nawzajem w swoich plikach, a mimo to strony mogą być serwowane przez serwer php. Użytkownicy mogą manipulować plikami tworzonymi przez www-data bo są właścicielami katalogów, w których są tworzone te pliki.

3. Problem dostępu do plików innych przez spreparowany skrypt php rozwiązuje dyrektywa open_basedir definiowana dla każdego vhosta oddzielnie. Dodatkowo zastosowałem bardzo restrykcyjne ograniczenia używanych funkcji za pomocą suhosin (function blacklist). Zwykłe disable_function się nie sprawdza bo nie można różnicować uprawnień (per vhost).

Może idea się komuś przyda. Uwagi mile widziane.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis