Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Php + Osobne Programy
Forum PHP.pl > Forum > PHP
basf
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.
FiDO
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 smile.gif
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.
radzaw
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 winksmiley.jpg
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.