![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłem witrynę w całości opartą na zapisywaniu i odczytywaniu danych z plików textowych (bez bazy danych, takie bylo założenie). Pliki te są w jednym katalogu, który ma prawa dostępu ustawione na chmod 777.
Jest to bardzo niebezpieczne, poniewaz kazdy teoretycznie bedzie mial dostep do nich jesli pozna ich nazwy i nazwe katalogu w ktorym sie znajduja. Czy jest możliwość zabezpieczenia tych plików tak by operacje na nich (odczyt, zapis) były możliwe jedynie z poziomu skryptów przez mnie napisanych (po pomyslnym przejsciu przez proces autoryzacji). Innymi słowy chciałbym zapobiec sytuacji by ktoś ominął mój panel logowania i wpisując dokładną ścieżkę do pliku (w przeglądarce lub ftp'ie) uzyskał do nich bezpośredni dostęp. Z góry dzięki za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym dal 707 na plik i 701 na katalog w ktorym sie znajduje zamiast 707. Dlaczego? Ano bo wtedy nie bedzie mozna sobie wylistowac zawartosci katalogu i odkryc nazwy pliku.
Oczywiscie to NADAL nie jest w 100% bezpieczne bo mozna podejrzec, gdzie sa pliki php i jakie maja nazwy, a nastepnie je odczytac (za pomoca skryptu php, jesli brak uprawnien dla grupy nas blokuje) i stamtad wyciagnac sciezke. Nawet jesli jest safemode, to nie rozwiazuje to calkowicie problemu! Wystarczy, ze uzytkownik napisze sobie skrypcik CGI w Perlu lub C (jesli serwer to obsluguje) i juz ma uprawnienia serwera www i moze czytac Twoje pliki php. Rozwiazaniem jest suexec. Wtedy skrypt pracuje z uprawnieniami uzytkownika, ktory go napisal, wiec wszystkim plikom i katalogom mozna nadac uprawnienia np. 700. Jedyny problem jest wtedy, gdy w Twoim skrypcie bedzie dziura. Wtedy masz dopiero przerabane (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Tylko czy komus udalo sie zainstalowac suexec + php? Ja probowalem na OpenBSD i byla kicha. Suexec chodzil z Perlem dobrze, a z php nie chcial. Ale w manualu napisali, ze to powinno dzialac. BTW: W CGI w C nie ma tego problemu, bo nadaje sie atrybut 711 na pliki wynikowe i nikt sie do sciezki pliku ani haselek z baza danych nie dobierze. Serwer moze WYKONYWAC pliki, ale nie moze ich CZYTAC. I suexec nie jest potrzebny. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 04:16 |