Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zabezpieczenie servera, Na Windows'ie
Ccn
post 2.07.2005, 17:35:27
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.07.2005

Ostrzeżenie: (30%)
XX---


Mam server na Windows XP Professional SP2, system plików FAT32, wersja php 4.3.11, wersja apache 1.* (niepamiętam ile).

Server jest dla sieci lokalnej, safe_mode = On, register_globals = Off.

Skrypt rmdir('c:/windows'); zwraca Permissions Denied, ale np. unlink('c:/windows/jakiś_plik_systemowy'); już nie. Łatwo mi rozwalić komp. Da sie to jakoś zabezpieczyć questionmark.gif? (Chciałbym tak, żeby skrypty nie mogły operować na plikach, które znajdują się wyżej niż katalog domowy użytkownika)


--------------------
Mój localhost: Apache 1.3.*, PHP 4.3.11, MySQL 4.0.24-nt, Perl (Windows XP Pro SP2)
Go to the top of the page
+Quote Post
FiDO
post 2.07.2005, 20:15:44
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Zainteresuj sie opcja open_basedir w php.ini, mozesz ja ustawiac z poziomu httpd.conf'a dla kazdego katalogu inna, takze mozesz kazdemu userowi inaczej ustawic.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
FiDO
post 9.07.2005, 19:54:53
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Zle ustawiles sciezke w open_basedir..
W temacie, ktory zalozyles podales blad jaki Ci wyrzuca:
Kod
Warning: Unknown(): open_basedir restriction in effect. File(c:\usr\krasnal\www\ibp\index.php) is not within the allowed path(s): (c:\usr\apache\httpd) in Unknown on line 0

Ustawiles open_basedir na c:\usr\apache\httpd a powinienes na c:\usr\krasnal\www\ibp dla tego uzytkownika.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Ccn
post 9.07.2005, 21:14:50
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.07.2005

Ostrzeżenie: (30%)
XX---


Dobre smile.gif
Kod
Warning: unlink(): open_basedir restriction in effect. File(c:\test.txt) is not within the allowed path(s): (c:\usr\krasnal\www\ibp) in c:\usr\krasnal\www\ibp\unlink.php on line 2


Tylko jak do założyć dla każdego użytkownika servera ?


--------------------
Mój localhost: Apache 1.3.*, PHP 4.3.11, MySQL 4.0.24-nt, Perl (Windows XP Pro SP2)
Go to the top of the page
+Quote Post
FiDO
post 9.07.2005, 22:53:42
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


No niestety z tego co mi wiadomo nie da sie zrobic tego na tyle fajnie, ze ustawisz sobie UserDir w apachu, a sciezki do open_basedir sie same poustawiaja automatycznie, wiec trzeba kazdemu userowi zrobic vhosta, cos na ten wzor:
Kod
<VirtualHost *>
    DocumentRoot c:\usr\krasnal\www\ibp
    php_admin_value open_basedir c:\usr\krasnal\www\ibp
    [...inne opcje VH...]
</VirtualHost>

<VirtualHost *>
    DocumentRoot c:\usr\krasnal\www\inny_user
    php_admin_value open_basedir c:\usr\krasnal\www\inny_user
    [...inne opcje VH...]
</VirtualHost>

itd.. dla reszty uzytkownikow.
Takie cos napewno zadziala, bo kiedys tak komus udostepnialem konto w akademiku i tez nie chcialem, zeby za bardzo sobie szalal. Nie pamietam w tej chwili, ale jestem prawie pewien, ze mimo tego open_basedir'a uzytkownik bedzie mogl sobie odpalic zewnetrzny program i z niego namieszac.. np. exec("del C:\\Windows\\jakis_plik"); dlatego dobrym pomyslem bedzie tez wylaczenie wszytkich funkcji umozliwiajacych odpalanie zewnetrznych procesow.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Ccn
post 9.07.2005, 23:56:56
Post #6





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.07.2005

Ostrzeżenie: (30%)
XX---


Zrobiłem Safe_mode=On (a safe_mode_exec_dir zostawiłem pusty), więc system() exec() (i te inne do wykonywania programów) są niedostępne, a shell_exec() jest wyłączony w Safe Mode (w Windows jest to wykonanie czegoś z cmd.exe [Wiersza Poleceń], np. format c:)

Mam skrypty php do rejestracji usera na serverze i mógłbym do niego dodać dodanie VH do httpd.conf, ale jak przeładować pliki konfiguracyjne bez restaru servera ? Jest jakieś takie coś jak wysłanie do Apache zapytania do ponownego wczytania konfiguracji ?


--------------------
Mój localhost: Apache 1.3.*, PHP 4.3.11, MySQL 4.0.24-nt, Perl (Windows XP Pro SP2)
Go to the top of the page
+Quote Post
FiDO
post 10.07.2005, 13:37:59
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Nie za bardzo.. ale jesli masz tak jak mowisz to przy dodawaniu usera mozesz dodac wpis do harmonogramu zadan (ze wzgledu na raczej trudna automatyzacje windowsowego harmonogramu polecam nnCron Lite, ktory ma config rodem z unixowego cron'a i sprawdza jego zmiany co minute, wiec by sie nadal), ktory w ciagu minuty czy dwoch zrobi restart serwera (ewentualnie zaplanowac restart raz na dobe czy raz na godzine, wedle wlasnego upodobania).


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Ccn
post 29.08.2005, 21:47:00
Post #8





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.07.2005

Ostrzeżenie: (30%)
XX---


Ale sra błedem, że php_admin_value to zła komenda


--------------------
Mój localhost: Apache 1.3.*, PHP 4.3.11, MySQL 4.0.24-nt, Perl (Windows XP Pro SP2)
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:39