Published on June 22, 2008 by Michał Przytulski
Od jakiegoś czasu zastanawiałem się jaka jest faktyczna różnica w szybkości działania poszczególnych wersji PHP. Przeglądając zasoby Internetu natrafiłem na ciekawą stronę - http://shootout.alioth.debian.org/ zawierającą porównanie wydajności różnych języków w tych samych zastosowaniach. Niestety testy zamieszczone na w/w witrynie ograniczają się tylko do jednej wersji PHP, więc nie jest to, to czego poszukiwałem. Postanowiłem jednak skorzystać z zgromadzonych tam skryptów i przeprowadzić własne testy porównawcze.
(more…)
Published on February 24, 2007 by Michał Przytulski

Jednym z głównych problemów związanych z wprowadzeniem Unicode dla PHP jest poprawne rozpoznanie kodowania znaków przychodzącego żądania. Sposobów na to jest przynajmniej kilka, jednak niestety żaden nie jest w 100% pewny, i nie można na nim polegać. Co za tym idzie twórcy PHP stanęli przed wyzwaniem stworzenia skutecznego i elastycznego rozwiązania niewpływającego znacznie na wydajność całego interpretera.
(more…)
Published on February 6, 2007 by Michał Przytulski
W poście tym chciałbym obalić jeden z popularnych mitów w programowaniu PHP - mianowicie przekonanie, iż wszelkiego rodzaju wywołania statyczne są bardzo powolne. W celu zbadania efektywności wykonywanie poszczególnych zadań skorzystałem z:
- - PHP 5.2.0 (cli) (built: Nov 2 2006 11:57:36)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with Xdebug v2.0.0RC3, Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, by Derick Rethans
- - WinCacheGrind 1.0.0.12
Testy zostały przeprowadzone na laptopie Asus M6870Ne (Pentium Mobile 1,8 GHz, 1536MB RAM), poniżej wyniki.
(more…)
Published on August 7, 2006 by Michał Przytulski
Chyba każdy już słyszał o nowej wersji PHP 5.2, w chwili obecnej RC1, jednak kto widział już nowy instalator PHP dla środowiska Windows ?
Instalator ten został napisany w całości od początku, i w odróżnieniu od swojego poprzednika, a właściwie swojej obecnej wersji – jest znacznie cięższy, co jest spowodowane dystrybuowaniem pełnego pakietu języka PHP wraz z modułami PECL, które do tej pory nie były dystrybuowane wraz z głównym pakietem PHP.
Oprócz powyższego nowy instalator pozwala na konfiguracje ponad dziesięciu serwerów www współpracujących z PHP, w tym najnowszy Apache 2.2.
Instalator pozwala również na automatyczną instalacje managera pakietów PEAR oraz Manuala PHP.
Na koniec dodam jeszcze, iż autorem nowego instalatora jest John Mertic, a wersja preview nowego instalatora dostępna jest pod adresem: http://mirrors.emini.eu/php-installer/php-5.2.0RC1-win32-installer.msi
Published on July 19, 2006 by Michał Przytulski
Jak często mamy do czynienia na serwera współdzielonych z włączonym tak zwanym trybem bezpiecznym czyli safe_mode, jednak czy tryb ten ma coś wspólnego z bezpieczeństwem ? Jak się bowiem okazuje stwarza on bowiem zwykłe pozory bezpieczeństwa, utwierdzając mniej obeznanych administratorów w przekonaniu, iż jest on złotym środkiem na ich problemy z bezpieczeństwem skryptów PHP na ich serwerze.
Ale może od początku – czym jest właściwie safe_mode? Ogólnie mówiąc safe_mode wymusza sprawdzanie właściciela pliku który jest wykonywany oraz właściciela zasobu (pliku, folderu), na którym ma zostać wywołana akcja dopuszczając jedynie operacje gdzie zasób i skrypt należą do tego samego właściciela. W mniej restrykcyjnym podejściu sprawdzanie może polegać na porównaniu wyłącznie grupy do której należy zasób. Brzmi sensownie? – możliwe, jednak w rzeczywistości rozwiązanie to sprawia więcej problemów, i stwarza jedynie pozory bezpieczeństwa (oczywiście odpowiednia konfiguracja serwera może zmniejszyć te pozory przekładając to na rzeczywiste bezpieczeństwo), niemniej jednak czy zrekomensuje to utrudnienia jakie spowoduje? Moim zdaniem nie (i wydaje mi się, iż zdanie to jest zgodne z myślą twórców PHP, bowiem od PHP 6.0 safe_mode zostanie zlikwidowany)
(more…)
Published on July 9, 2006 by Michał Przytulski
Nigdy nie byłem dobry z języka polskiego, dlatego tez nie ma co się spodziewać dobrej recenzji na temat “php|architect’s Guide to PHP Security” autorstwa Ilia Alshanetsky. Ksiązka ta dostępna jest poprzez internetowa witrynę phparchitect.com w wersji PDF jak również papierowej - osobiście preferuje wydania drukowane niemniej jednak tutaj postanowiłem zrobić wyjątek - i jestem z tego w 100% zadowolony - blisko 200 stronnicowe (po odliczeniu index i okładek) wydanie elektroniczne przetrawiłem przez jeden z styczniowych weekendów. Ksiązka ta z pewnością dostarcza cały arsenał informacji jak zabezpieczyć się przed problemami, porusza tematy związane z bezpieczeństwem chyba każdego z elementów aplikacji web. Początkowo spodziewałem się szerokiej publikacji na temat tego dlaczego złe jest używanie registry_globals, i dlaczego warto walidować dane wejściowe - jednak juz po pierwszych stronach mogłem się przekonać ze ksiązka porusza temat znacznie szerzej. Omówione zostały w niej zagadnienia związane z XSS, SQL Injection, Code Injection, Command Injection oraz bezpieczeństwo sesji i kilka innych nie mniej ważnych zagadnień związanych z bezpieczeństwem. Każdy z 10 rozdziałów prezentuje się w podobny sposób - omówienie problemu, przykłady ataków, oraz omówienie sposobów zabezpieczania się przed nimi - począwszy od prostych wbudowanych w php rozwiązań (których wady są przedstawiane dokładnie - jeśli takowe są) po indywidualne rozwiązania. Ksiązka ta układa się w logiczną całość, a zapoznanie się z jej zawartością moim zdaniem powinno być obowiązkiem każdego programisty PHP. Cóż więcej mogę na ten temat powiedzie - książka jest bardzo cennym uzupełnieniem mojej dotychczasowej wiedzy i zapewne każdy znajdzie cos dla siebie.