Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Bezpieczeństwo. Dostep skryptu php do katalogów podrzędnych?, Jak ograniczyć zasięg kodu php.
starterrrrr
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

Ostrzeżenie: (0%)
-----


Witam.

Zastanawiam się nad kwestią bezpieczeństwa skryptu. Prosze mi podpowiedzieć, jak ograniczyć dostęp skryptom tylko do pewnego poziomu katalogów, tak, żeby któś z poziomu skryptu php nie mógł mi zajrzeć co mam niżej.


Kiedyś widziałem na serwerze taki mechanizm, wiem, że sprawiałmi problemy własnie z dostępem do pewnych niższych katalogów, nie wiem, czy admin to nie wyłączył, było to chyba w trybie safe_mode.
Teraz widze, że jest to bardzo dobre rozwiązanie.

Prosze o jakąś podpowiedź. Czy można to zrobić dla całego serwera? Czy można zrobić wyjątek dla okreslonych plików?
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Open_basedir. Generalnie wszystkie pliki powinny byc poza katalogiem public a wrzucane przez uzytkownikow pliki na innej domenie bez możliwości wykonywania ale zwłaszcza w darmowych skryptach nikt o to nie dba.


--------------------
Go to the top of the page
+Quote Post
Damonsson
post
Post #3





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(viking @ 24.08.2016, 11:50:41 ) *
a wrzucane przez uzytkownikow pliki na innej domenie

I najlepiej na innej planecie lub księżycu, a jeszcze lepiej w innym wymiarze wink.gif


Jak ustawisz na serwerze odpowiednie uprawnienia dla użytkownika, to użytkownik nie będzie miał żadnych praw do innych/niższych plików niż tylko te, które są w jego katalogu. Nie zablokujesz, jakoś sensownie, dostępu do plików/funkcji, które są używane przez inne skrypty w tym projekcie, bo projekt by po prostu nie działał.

Cytat
któś z poziomu skryptu php
dawanie komuś takiej możliwości to już jest niebezpieczeństwo.

Ten post edytował Damonsson 24.08.2016, 13:14:10
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nigdy w pełni nie zabezpieczysz się przed atakami. W związku z czym każdy wgrany materiał z zewnątrz (niepewny) wyświetlony na stronie to już niebezpieczeństwo. A z samymi obrazkami różne ciekawe rzeczy były robione. Wrzucanie ich na domenę która umożliwia wykonywanie języków skryptowych to kolejne ułatwienie ataku. Poza tym pliki serwowane statycznie są dostarczane szybciej przez serwer i można ładny cache im dać.


--------------------
Go to the top of the page
+Quote Post
lukaskolista
post
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Tylko co to ma do domeny?

Cytat
Wrzucanie ich na domenę która umożliwia wykonywanie języków skryptowych to kolejne ułatwienie ataku.

Od kiedy domena ma coś wspólnego z "wykonywaniem języków"?
Go to the top of the page
+Quote Post
kukix
post
Post #6





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Chodzi o to, że czasami "niestety" muszę udostępnić komuś dostęp przez FTP do pewnych katalogów na serwerze. Są tam często szablony graficzne, alebo katalog z webserwisem w php, który musi się wykonywac.

Boje się , że ktoś za pomocą skryptu php uzyska dostęp do najniższych katalogów serwera.

Jest to serwer nq.pl, wszystkie instancje skryptu wgrywam do katalogu html/ , wygląda to tak

/html/instancja_skryptu1
/html/instancja_skryptu2
/html/instancja_skryptu3
/html/instancja_skryptu4

w każdym z tych katalogów są skrypty php, czasami udostępniam dostęp do pewnych podkatalogów.

Czy moge ustawić, żeby np dla instancji 2 katalog: /html/instancja_skryptu2/ był najniższym poziomem i żeby nie można było zaglądnąć niżej, czyli do katalogu /html/ oraz innej instancji?



Ten post edytował kukix 25.08.2016, 11:46:52
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Cytat(lukaskolista @ 24.08.2016, 15:08:07 ) *
Od kiedy domena ma coś wspólnego z "wykonywaniem języków"?


Od zawsze. Na konkretnej domenie/subdomenie możesz aktywować języki skryptowe lub tylko statyczne pliki.

A odpowiadając na pytanie, nie możesz. Skrypt i tak będzie działał na prawach użytkownika.


--------------------
Go to the top of the page
+Quote Post
Damonsson
post
Post #8





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


instancja_skryptu1 - tworzysz nowego usera systemu o nazwie np: "instancja_skryptu1"
instancja_skryptu2 - tworzysz nowego usera systemu o nazwie np: "instancja_skryptu2"

Wtedy ustawiasz odpowiednie uprawnienia i użytkownik np. "instancja_skryptu2" nie zejdzie niżej niż do swojego folderu "instancja_skryptu2". I jak gość chce dostęp do FTP, podajesz mu dane do konta "instancja_skryptu2".

A jak chcesz dać dostęp do jeszcze wyższego katalogu, to sobie tworzysz jeszcze nowego usera np o nazwie "specjalny", który ma dostęp tylko do "/html/instancja_skryptu2/obrazki/nietajne" i wyżej, ale nie niżej. Oczywiście jak robisz to często to musiałbyś sobie napisać jakiś prosty skrypt do tworzenia takich użytkowników.
Go to the top of the page
+Quote Post
starterrrrr
post
Post #9





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

Ostrzeżenie: (0%)
-----


Witam.

Wyczytałem, że jest do tego mechanizm OPEN_BASEDIR, który nada się idealnie.

podglądając php_info() widzę, że open_basedir ma taką wartość:

Kod
/alt/home/webmaster.darex/:/home/webmaster.darex/:/usr/lib/php:/var/lib/php/darex



Myślałem, żeby w katalogu html/ umieścić plik .htaccess a w nim wartość:
Kod
php_value open_basedir /alt/home/webmaster.darex/html/katalog_z_instancja/


Zamiast "katalog_z_instancja" można by dac *, żeby wszystkie katalogi z automatu były objęte.

Ten post edytował starterrrrr 31.08.2016, 11:15:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:35