Skocz do zawartości
Zaloguj się, aby obserwować  
newbiededyk

uprawnienia php

Polecane posty

Witam

Mam takie małe pytanko dla starych wyjadaczy ;-)

 

Zainstalowałem sobie serwerek proftpd z obsługą mysql-a.

 

Wszysko fajnie, w pliku sql.conf wstawiłem DefalutRoot ~, i wszystko fajnie autoryzuje i nie wypuszcza usera poza folder zdefiniowany w bazie (np /var/www/jakastrona/). Ale... jeśli w php wklepie sobie include('../jakisplik.php'), to automatycznie wyjdzie mi poza katalog DefaultRoot i zaincluduje ten plik. Dlaczego?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Aimer

Tak, ponieważ proftpd to serwer FTP, a nie PHP.

PHP jest interpretowane po stronie serwera (na interpreterze PHP), serwer FTP może paść, PHP nadal pracuje.

Poustawiaj odpowiednie chmody to nie będziesz miał problemu. W jakim trybie pracuje na tym serwerze PHP?

A po 2 zły dział :\

Edytowano przez Aimer (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak poustawiać chmody?.

 

Ja mam proftpd przez mysql i chociaż mu przydziele usera proftpd to i tak jak zdefiniuje konto w mysql to on wychodzi katalogi wyżej

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ale... jeśli w php wklepie sobie include('../jakisplik.php'), to automatycznie wyjdzie mi poza katalog DefaultRoot i zaincluduje ten plik. Dlaczego?

 

To zainteresuj się open_basedir, wtedy nie będzie mógl zaincludować pliku spoza przydzielonego katalogu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok - dzięki

 

A nie ma innego sposobu na to?

 

bo np wchodzę na nazwa.pl i tam jest tak

 

/home/nazwauzytkownika/public_html/nazwadomeny

 

No i ok... i poza nazwa uzytkownika nie wyjdzie.

 

A ja stworzylem

 

useradd user1

useradd user2

 

No i mam...

 

/home/user1/

/home/user2/

 

i pomimo ze plik jest w /home/user1 to i tak wyjdzie poza user 1

 

np (z katalogu /home/user1)

 

include('../user2'/index.php);

 

i mi zaincluduje ten plik a nie powinno go wypuścić poza user1

 

zrobiłem chown user1:user1 /home/user1 ale dalej wypuszcza

 

Dlaczego?

 

Jest to o tyle nie bezpieczne, że jeśli 2 user będzie znał strukturę skryptu

 

to jeśli

 

$pass = 'dsadasdas';

 

to on u siebie wywoła tą zmienną a nie powinien mieć możliwości czytania skryptu z nie swojego katalogu

Edytowano przez newbiededyk (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

dla każdego usera musisz miec open_basedir na jego katalog

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam

 

Sprawdziłem na nazwie i...

 

/home/nazwausera/ftp/

 

Jesli się wyjdzie poza /ftp/ php zwraca permission denided.

 

A... Ja jak dam chmod 744 /home to mi blokuje wszystkie strony

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×