PHP 5.5
PHP 5.5 to wersja języka PHP wydana w czerwcu 2013 roku, która wprowadziła kilka zmian istotnych dla wydajności i bezpieczeństwa aplikacji. Najważniejszą z nich było włączenie mechanizmu OPcache bezpośrednio do jądra języka, co przyspieszyło działanie skryptów bez potrzeby instalowania zewnętrznych rozszerzeń.
Na czym polegało znaczenie PHP 5.5
PHP 5.5 skupiło się na dojrzewaniu języka i lepszej ochronie danych użytkowników:
- OPcache — wbudowany bufor skompilowanego kodu bajtowego, redukujący czas wykonywania powtarzalnych żądań;
- generatory (yield) — leniwe przetwarzanie dużych zbiorów danych bez ładowania wszystkiego do pamięci;
- nowe API haseł — funkcje password_hash i password_verify, upraszczające bezpieczne przechowywanie haseł;
- blok finally — pełniejsza obsługa wyjątków w konstrukcjach try/catch.
Wbudowane API haseł miało szczególne znaczenie — zachęcało programistów do porzucenia słabych funkcji haszujących na rzecz nowoczesnych algorytmów odpornych na ataki.
Zastosowanie w praktyce
Oficjalne wsparcie dla PHP 5.5 zakończyło się w 2016 roku, więc dziś jest to wersja przestarzała. Mimo to jej dziedzictwo pozostaje żywe: OPcache i API haseł to standardowe elementy współczesnego PHP. Aplikacje wciąż działające na tej wersji powinny zostać zaktualizowane ze względów bezpieczeństwa. Na nowoczesnym hostingu i serwerach VPS dostępne są wyłącznie wspierane wydania, a migracja z PHP 5.5 do nowszej gałęzi, na przykład PHP 5.6, jest zwykle stosunkowo prosta ze względu na zbliżoną składnię.
Wpływ na bezpieczeństwo haseł
Największym praktycznym dziedzictwem PHP 5.5 pozostaje wbudowane API haseł. Przed jego pojawieniem się programiści często stosowali przestarzałe funkcje haszujące, podatne na łamanie metodą tablic tęczowych. Funkcje password_hash i password_verify ukryły złożoność bezpiecznego solenia i doboru algorytmu za prostym interfejsem, dzięki czemu nawet mniej doświadczeni twórcy mogli przechowywać hasła użytkowników zgodnie z aktualnymi standardami. To rozwiązanie jest używane do dziś w niezmienionej formie.
