![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 11.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
[Pisalem o tym juz php Poczatkujacy, ale nikt nie odpowiedzial. Problem ten jest dla mnie bardzo wazny i mam nadzieje, ze nic sie nie stalo powtarzajac go tutaj] Pisze skrypt ktory ma wyswietlac dane o uzytkownikach w systemie. Chce zeby bylo to bezpieczne rozwiazanie. Pomyslalem ze stworze specjalne skrypty np w bashu czy perlu ktore beda uruchamiane z poziomu php i wykonywac odp rzecz. #1. Skrypt sprawdzjacy rozmiar calego katalogu domowego uzytkownika #2. Skrypty tworzace i usuwajace katalogi #3. Skrypty nadajace odpowiednie chmody #4. Skrypt restartujacy apacha. Zapewne wszystkie skrypty beda musialy miec suida i nalezec do apacha a wiec nobody.nogroup aby mial prawo je wykonywac. Teraz pytania: 1. W czym je napisac, w bashu? Perlu? w C? 2. Beda one operowac na parametrach - przez parametr bede np mowic skryptowi jaki katalog ma usunac. Jak dobrze zabezpieczyc ten przeplyw danych miedzy php a skryptem i jak zapobiegac roznym kombinacjom z tym - nie chce zeby mi ktos podrobil zapytanie i skasowal pol serwera. 3. Ich dzialanie ma sie na przyklad ograniczac tylko do katalogu /a/b i tylko w nim wykonywac - jak sprawdzac te parametry zeby miec 100% pewnosc. Jest to bardzo wazne dla mnie przy dalszym projektowaniu systemu, od poczatku najwieksza uwage zwracam na bezpieczenstwo. Myslalem, zeby skopiowac skrypty du (do sprawdzania wielkosci), mkdir,rmdir,chmod i chown do osobnego katalogu i sprobowac je schrotowac + do tego apache chrotowany ale z pewnych wzgledow to odpada. Jesli mozecie mi pomoc jakos, cos podpowiedziec bede ogromnie wdzieczny. |
|
|
![]()
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%) ![]() ![]() |
Cytat [Pisalem o tym juz php Poczatkujacy, ale nikt nie odpowiedzial. Problem ten jest dla mnie bardzo wazny i mam nadzieje, ze nic sie nie stalo powtarzajac go tutaj] To nie jest powod, zeby na Pro z tym leciec, aczkolwiek danie tego tematu na Poczatkujacy tez nie bylo dobrym pomyslem z Twojej strony. Przenosze na php. Cytat #1. Skrypt sprawdzjacy rozmiar calego katalogu domowego uzytkownika du -k -s --max-depth=1 /home/user 2>/dev/null | cut -f 1 Troche to za krotkie, zeby o tym skrypt pisac ![]() Cytat #4. Skrypt restartujacy apacha. To tylko root moze wykonac. Pozatym po co Ci to ? Opisz moze dokladniej do czego dazysz z tym systemem, bo tak to opieram sie tylko po czastkowych informacjach. Cytat Zapewne wszystkie skrypty beda musialy miec suida i nalezec do apacha a wiec nobody.nogroup aby mial prawo je wykonywac. Po pierwsze SUID dziala tylko na pliki wykonywalne, na skryptach, mimo ze da sie go ustawic, nie ma on zadnego dzialania. Po drugie z prawami nobody/nogroup to nie wykonasz zadnego z powyzszych punktow, do pierwszego potrzebowalbys conajmniej praw wlasciciela katalogu (bo jak user sobie jakis katalog odznaczy, zeby Others nie mogli go czytac - co swoja droga jest raczej naturalne - to juz nie sprawdzisz objectosci jego katalogu), do 2 i 3 zaleznie od katalogu w ktorym chcialbys to wyprawiac, ale tez conajmniej prawa wlasciciela tego katalogu wymagane. No i 4 punkt to juz root, wiec potrzebowalbys SUID'a na root'a a to niebezpieczne. Tak wiec napisz cos wiecej co ten system ma robic, pewnie jest lepsze rozwiazanie tego problemu. Cytat 2. Beda one operowac na parametrach - przez parametr bede np mowic skryptowi jaki katalog ma usunac. Jak dobrze zabezpieczyc ten przeplyw danych miedzy php a skryptem i jak zapobiegac roznym kombinacjom z tym - nie chce zeby mi ktos podrobil zapytanie i skasowal pol serwera. Przede wszystkim usunac wszystkie ../ z podanej sciezki, potem np, jezeli sciezka jest wzgledna to dokleic ja do pelnej sciezki do katalogu tego uzytkownika i dalej jak juz masz pelna bezwzgledna sciezke to latwo sprawdzic czy jest ona poprawna. Cytat 3. Ich dzialanie ma sie na przyklad ograniczac tylko do katalogu /a/b i tylko w nim wykonywac - jak sprawdzac te parametry zeby miec 100% pewnosc. Patrz wyzej. -------------------- Brak czasu :/
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 99 Pomógł: 0 Dołączył: 14.07.2003 Skąd: z epoki lodowcowej Ostrzeżenie: (0%) ![]() ![]() |
ja bym odpalal cron-em np. co 5 minut skrypt basha/perla ktory sprawdzi wszystko i zapisze do pliku - po co mieszac php wglab systemu, zwlaszcza jak do tego jest dostep przez www
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:55 |