![]() |
![]() ![]() |
![]() |
![]()
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? |
|
|
![]()
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.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
a wrzucane przez uzytkownikow pliki na innej domenie I najlepiej na innej planecie lub księżycu, a jeszcze lepiej w innym wymiarze ![]() 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 |
|
|
![]()
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ć.
-------------------- |
|
|
![]()
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"? |
|
|
![]()
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 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:35 |