h5ai to lister plików w katalogach dla webserwerów oparty o PHP. Zamiast nudnego <ul>&t;li>… produkowanego przez Apache’a, nginxa i całą resztę możemy dostać dowolnie ułożony spis plików (siatka, lista, szczegóły…) z ikonkami, podglądem w colorboxie, kody QR z linkami oraz m.in. filtr. Twórca twierdzi, że żadna specyficzna dla serwera funkcja w tym aliasy (w nginxie server { ... } jest już takim aliasem) nie działa. Ma rację, ale dziś pokażę jak mu tę rację odebrać 😉
Problem ten dotyka głównie skrypty siedzące w katalogach hardadmin, mających super zabezpieczenia i przeznaczonych do wygodnej edycji plików konfiguracyjnych przez WWW bez konieczności wpinania się do SSH (głównie tam, gdzie nie jest to możliwe). Jeśli mamy stałą liczbę plików to nic prostszego jak je stablicować i nadać nawet prymitywne indeksy numeryczne. Ale szczególnie gdy chcemy mieć możliwość dodawania plików sprawa się komplikuje. Naszym zadaniem będzie uniemożliwić atakującemu podanie ../ lub innych cudów aby ten mógł w najgorszym wypadku namieszać tylko z tą jedną usługą którą zarządza nasz skrypt (np. konfigami nginx’a).
Tego łatwo się nie znajdzie, a potrafi krwi napsuć. W PHP var_dump() wyrzuca zmienną wraz z jej typem, o jest szczególnie użyteczne przy rzucaniu całych tablic (np. $_GET, czy $_SERVER). Ale jak ściągnąć wynik do zmiennej, żeby np. wrzucić go do pliku?
Jak udało mi się wykryć pod Suse Linux Enterprise Server (a dokładniej 11 SP2) podczas migraji do PHP 5.3 występują pewne problemy, których wolelibyśmy uniknąć na serwerze produkcyjnym.
Od razu z numerem v2.0 wydałem H-PLIKI – lekkie i proste webowe repozytorium plików napisane w PHP i napędzane przez MySQL. Ma podstawowe funkcjonalności i jest proste w rozbudowie: umożliwia upload plików, zamieszczanie linków oraz dowolną modyfikację plików – łącznie z kasacją (także z dysku) oraz ukrywaniem.
Kod krótki, ale jakże niezbędny. Podstawowa wersja podmienia wszystkie zmienne przekazane przez GET i POST: foreach ($_GET as &$z) $z = preg_replace(’/[^a-zA-Z0-9_ \[\]\.\(\)\{\}\^\@\#\?\!.,&]/s’, ”, $z);…
AES jest w miarę prostym i szybkim algorytmem nadającym się do szyfrowania danych wysyłanych przez sieć Internet Na początek odrobina historii. AES, czyli Advanced Encryption…