Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Monitorowanie lub blokowanie dostępu do treści
Forum PHP.pl > Forum > PHP
Sephirus
Witam.

Temat (jak się zaraz okażę) jest dziwny ale ciekawy...

Załóżmy, że mamy kod:

  1. $plik = '/jakas/nieznana/sciezka/do/pliku.txt';
  2.  
  3. unlink($plik);


Proste - kasujemy podany plik... i teraz pytanie - czy jest możliwe (konfiguracyjnie może) zablokowanie wywołania unlink na określonych plikach?

Zakładam, że nie mam pojęcia co jest w zmiennej plik - dodatkowo pliki, które mogą zostać skasowane są określone (jest ich na przykład 3). Wywołanie unlink na jakimkolwiek innym pliku ma się nie powieść...

Nie chodzi mi tutaj o banał w postaci wywoływania funkcji unlink w zależności od tego co znajduje się w zmiennej $plik. Ma być sytuacja jak powyżej czyli unlink zawsze ma być wywoływany... niezależnie od tego co jest w dostarczonej do niego zmiennej - ale jeżeli znajdzie się tam coś co nie powinno to unlink ma się nie wykonać, zwrócić błąd - cokolwiek - aby tylko nie skasował pliku... Może jest możliwość monitorowania wykonania takiej funkcji - jako przykład dałem unlink ale chodzi o funkcję dostępu do plików, streamów...

Czy ktoś ma jakiś pomysłquestionmark.gif
nospor
chmod ?
Sephirus
Hmm no ok - to jest jakieś wyjście - a z poziomu samego PHP albo jego ustawień - jest możliwe coś takiego? ;/
abort
Jeśli to chodzi o samo "unlink", to nospor dał dobry pomysł, ja tylko rozszerzę:
Jak już, to zmienić w ogóle usera tego pliku na jakiegokolwiek innego i dać mu grupę usera "www" (czyli apacza). Zapobiegnie to sytuacji, gdy najpierw "przypadkowo" zmienisz hurtem atrybuty plików a potem róznież przypadkowo wykonasz unlink...
A jeśli chcesz walić z armaty i masz prawa roota na tym systemie, to poczytaj o chattr i atrybucie "i" (immutable) - nawet root nie usunie takiego pliku przez "rm -f" bez uprzedniego zdjęcia tego atrybutu.
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.