Świat obiegła informacja o błędzie w funkcji vmsplice_to_user(). Błąd ten pozwala podnieść uprawnienia do root’a. Jako, że błąd jest strasznie trywialny (niesprawdzanie wskaźnika przyjmowanego przez funkcję) to natychmiast powstał działający exploit. Przeczytaj resztę wpisu »
Podziel się tym newsem z innymi:
Brak komentarzy »
W dniu wczorajszym (3.I.2008) ukazała się nowa wersja PHP z serii 4 oznaczona numerem 4.4.8. Jako iż drzewo PHP4 nie jest już rozwijane, są to istotne poprawki wraz z zaleceniem natychmiastowej aktualizacji. Oto lista wprowadzonych modyfikacji: Przeczytaj resztę wpisu »
Podziel się tym newsem z innymi:
5 komentarzy »
Postanowiłem na własne potrzeby stworzyć pewien szablon konfiguracji PHP opartej o Apache. Podstawowym celem było bezpieczeństwo rozwiązania, a jak udało mi się to zrealizować – życie pokaże. W prezentowanych przykładach pominąłem większość parametrów konfiguracyjnych, a więc podczas tworzenia własnego środowiska na bazie niniejszego artykuły zalecam dostosowanie ich do własnych potrzeb.
Na potrzeby niniejszej konfiguracji użyłem:
- Linux Slackware w wersji 12. Starałem się nie używać ustawień i pakietów pochodzących z dystrybucji, żeby rozwiązanie było jak najbardziej uniwersalne
- Apache w wersji 2.2.6
- FastCGI w wersji 2.4.6
- PHP w wersji 4.4.7 i 5.2.5
Przyjąłem również kilka założeń:
- Skrypty PHP powinny być uruchamiane w zamkniętym środowisku (np: chroot() albo open_basedir())
- Skrypty PHP powinny być uruchamiane z uprawnieniami właściciela pliku/virtualhosta
- Każdy użytkownik powinien mieć indywidualny folder tmp i folder przechowywania plików sesji
- Każdy użytkownik sam może wybrać wersji PHP
- Dla każdego virtualhosta powinien istnieć oddzielny plik php.ini
- Tworzone rozwiązanie powinno być jak najbardziej uniwersalne. Jednocześnie powinno oferować administratorowi wygodę zarządzania
Przeczytaj resztę wpisu »
Podziel się tym newsem z innymi:
16 komentarzy »
W PHP 5 wprowadzono pewne uproszczenie w tworzeniu plików php.ini np.: dla każdego virtualhosta oddzielnie. Zakładając, że mamy swój ulubiony plik php.ini, umieszczamy w nim na początku coś takiego:
Poniżej opisanych dyrektyw, możemy posługiwać się zmiennymi ${main_domain} i ${main_root_dir} np.: w taki sposób:
Niestety opcja ta nie jest dostępna w PHP 4 i w związku z zamknięciem rozwoju tej wersji, nie zostanie już dodana.
Podziel się tym newsem z innymi:
Brak komentarzy »
Chciałem sprawdzić czy można użyć kilku plików php.ini zakładając, że każdy kolejny plik nadpisuje ustawienia z plików poprzednich. Testowałem PHP w wersji 4.4.7 i 5.2.5 skompilowane jako CGI ze wsparciem dla FastCGI. Podczas konfiguracji użyłem między innymi parametrów:
Po krótkim debugowaniu aplikacji okazało się w jakiej kolejności PHP poszukuje plików ini:
Wyżej wymieniona kolejność jest taka sama dla PHP uruchamianego z poziomu FastCGI/CGI. W przypadku pominięcia parametru --enable-fastcgi zmianie ulega nazwa pliku php-cgi-fcgi.ini na php-cgi.ini.
W przypadku PHP uruchomionego jako moduł Apache sprawa ma się trochę inaczej:
(PHP było skompilowane z opcją --sysconfdir=/etc/php5/apache.)
Niestety testy które przeprowadziłem wykazały, że PHP po znalezieniu pierwszego pliku ini pomija dalsze lokalizacje. Planowałem na podstawie tego mechanizmu dać użytkownikom możliwość posiadania własnego pliku php.ini z gwarancją, iż niektóre parametry były by zawsze globalnie nadpisywane (np: open_basedir, czy disable_functions).
Podziel się tym newsem z innymi:
Brak komentarzy »
Napisał Mariusz Dalewski w kategorii Flash
Podczas realizacji ostatniego projektu we flashu napotkałem ciekawy problem który zabrał mi dużo więcej czasu niż powinien.
W projekcie zastosowałem pobieranie danych do tworzenia menu z zewnętrznego pliku XML. Plik XML wyglądał tak:
Jako, że menu było w jednej linii to obliczałem przy użyciu metody TextFormat.getTextExtent() jakich rozmiarów powinno być pole tekstowe, żeby pomieścić tekst. Wszystko działało idealnie do momentu kiedy nie zrobiłem zewnętrznego pliku spełniającego funkcje loadera. Po załadowaniu strony z loadera całe menu się rozjechało – teksty nachodziły na siebie, pola były za małe.
Okazało się, że flash (sprawdzałem na wersji CS3) ma wspaniałą przypadłość:
Jeżeli używasz TextFormat.getTextExtent() na czcionkach dołączonych do animacji, to te same czcionki musisz dołączyć do loadera (nawet jak ich tam nie używasz). W przeciwnym wypadku flash nie będzie potrafił poprawnie policzyć rozmiaru dla pola tekstowego.
Podziel się tym newsem z innymi:
Brak komentarzy »