Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: include ("/etc/passwd") - jak temu zapobi
Forum PHP.pl > Forum > Serwery WWW > Apache
HaRy
tak jak w temacie.

Cytat
Zdzichu otworzyl plik /etc/passwd. Równie dobrze móglby otworzy kady inny plik na dysku serwera, który ma ,,r" dla wszystkich. Rozwizaniem tego problemu jest funkcja safe_mode. Jest to jedna z najwaniejszych funkcji php zwizanych z bezpieczestwem. Umieszczenie w pliku php.ini zapisu:
      safe_mode = On
  spowoduje, że skrypty dostan dostp tylko do tych plików, których wlaciciel jest identyczny z wlacicielem skryptu. Jeli powyszy index.php naley do Zdzicha, skrypt bdzie mógl otworzy tylko pliki, których wlacicielem jest Zdzichu.


To wiadomo ... ale, czy systemy typy Smarty beda dzialac (tworza sobie przeciez wlascilem tmp'owych plików powstalych w wyniku parsowania szablonow jest nobody, a wiadomo, ze wlascicielem "normalnych" scryptow jest przykladowy "Zdzichu".

jak to obejsc, lub jak inaczej zabezpieczyc przed

[php:1:a883a0bef5]<?php
include ("/etc/passwd")
?>[/php:1:a883a0bef5]
HaRy
hmm ... chyba sam sobie klikne "pomogl mi" ;P

Polecam wszystkim http://linux.insurgents.net/pliki/szczelne_php.pdf
Yacho
eee ja nie rozumiem....

Przeciez apache ma osobnego uzytkownika w systemie - ten uzytkownik ma prawo odczytu tylko tych plikow ktore chce - wiec niby jakim sposobem php potrafi ominac zabezpieczenia systemowe ? skoro dam /etc/passwd prawa dostepu np tylko rootowi to jakim cudem uzytkownik apache moze je owtorzyc ?
Sh4dow
Cytat
eee ja nie rozumiem....

Przeciez apache ma osobnego uzytkownika w systemie - ten uzytkownik ma prawo odczytu tylko tych plikow ktore chce - wiec niby jakim sposobem php potrafi ominac zabezpieczenia systemowe ? skoro dam /etc/passwd prawa dostepu np tylko rootowi to jakim cudem uzytkownik apache moze je owtorzyc ?

Yacho, do pliku passwd maja dostep wszyscy uzytkownicy systemu. Wiec user apache tez, kwestia jest taka zeby zapobiec aby klient poprzez apache dostal sie do tego pliku.
Yacho
Wiec bede drazyc temat dalej - da sie jakos zabezpieczyc przed takim includem nei wlaczajac safe mode ?

Uzywam smarty a ono z safe mode nie chce dzialac :/
HaRy
smarty moga dzialac z safe mode.

cytat z Smarty.class.php


[php:1:7506faf8dc]<?php

/**
* This tells Smarty whether or not to use sub dirs in the cache/ and
* templates_c/ directories. sub directories better organized, but
* may not work well with php safe mode enabled.
*
* @var boolean
*
*/
var $use_sub_dirs = false; // domyslnie true
?>[/php:1:7506faf8dc]

pozdrawiam
scanner
Z forum na Smrty.php.net ->
[php:1:e97514905e]<?php
$this->use_sub_dirs = !ini_get('safe_mode');
?>[/php:1:e97514905e]
pozmu
A kto mi powie, jaki jest sens włączania SafeMode bez php w trybie cgi i czegoś w stylu suexec? Skonfigurowałem serwer tak jak w tym artykule i niby wszystko fajnie, ale poziomu php nie można tworzyć nowych plików i katalogów... bo php jako moduł chodzi z userem takim jak apache (w moim przypadku nazywa się on apache) i nie ma sposobu, żeby user apache mieszał w katalogach/ plikach innych ludziów... Ma ktoś rozwiązanie jak bezpiecznie ustawić php dla wielu ludzików? Nie interesuje mnie uruchamianie php jako cgi... ciekawym rozwiązaniem jest open_basedir, ale jest jedno ale - ta dyrektywa nie ogranicza wywołań systemowych typu system("vi etc/passwd") ... wyłączenie tych funkcji niby nie jest złe, ale co, gdy czasami trzeba którejś z nich użyć? przydało by się coś takiego jak safe_mode_exec_dir działające bez włączania safe_mode...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.