Wydano PHP 5.3.8, naprawiono poważny błąd w jednej z funkcji

24.08.2011 12:32, Autor: Tomasz Janusz (tomick), Kategoria: News
NewsImage

Po chwilowym zamieszaniu społeczność PHP wydała nową wersję popularnego interpretera skryptów, naprawiając poważny błąd, który ujawnił się w ostatnim czasie.

Przypomnijmy, w wydanym niespełna tydzień temu PHP 5.3.7 ujawniono błąd w działaniu funkcji crypt() i używanego w niej domyślnie algorytmu MD5. W opisywanym na stronie błędu #55439 scenariuszu, programista próbował wykonać kod crypt('password', '$1$U7AjYB.O$');, którego wynikiem powinna być suma kontrolna ciągu znaków zawierającego tzw. sól (w tym wypadku "$1$U7AjYB.O$"). Błąd w PHP powodował, że opisywana funkcja zwracała ciąg znaków podanych jako sól, a nie wynik działania funkcji skrótu. Programiści PHP zalecali wstrzymanie się z aktualizacjami do kolejnych wersji PHP aż do naprawienia tego błędu.

Wkrótce pod odkryciu błędu pojawiły się pierwsze, niestabilne wersje PHP. Wczoraj wieczorem oficjalnie poinformowano o wydaniu stabilnej wersji PHP oznaczonej numerem 5.3.8 w której pojawiły się poprawki dwóch błędów, w tym tego, który dotyczył działania funkcji crypt(). Drugi naprawiony błąd dotyczył obsługi stałych połączeń szyfrowanych z bazami MySQL.

Warto przyjrzeć się pozostałym zmianom jakie zostały wprowadzone w PHP 5.3.7, z której instalacją zalecano wstrzymać się. Jednocześnie przypominamy, że gałąź PHP 5.2.x nie jest już wspierana i nie będą się do nich pojawiały aktualizacje. Liderzy projektu zalecają instalację najnowszych wersji interpretera przeznaczonych dla systemu Windows oraz dla pozostałych systemów operacyjnych.

r   e   k   l   a   m   a

Komentarze (24)  

Avatar
Anonim (niezalogowany) | 24.08.2011 12:37#1

php jest jak mcdonalds, wszyscy wiedza ze to g0vvn0 ale ma miliony zwolennikow. beznadziejny jezyk dla beznadziejnych programistow.

AvatarUżytkownik jest nieaktywny
GioWDS | 24.08.2011 12:47#2

@qpasa (niezalogowany) powiedział nie programujący w ogóle, albo w C# - jedno i drugie to nie programowanie ;)
---
Co do newsa cieszę się, że już załatali.

Avatar
Anonim (niezalogowany) | 24.08.2011 12:49#3

@qpasa Pięknie to ująłeś

AvatarUżytkownik jest nieaktywny
XeonBloomfield | 24.08.2011 12:58#4

@qpasa (niezalogowany) | 24.08.2011 12:37:

Idź pisać Crysis'a w C#...

(z wyrazami szacunku dla programistów tworzących Crysis'a)

AvatarUżytkownik jest nieaktywny
wszerad | 24.08.2011 13:00#5

Ja też nie lubię PHP, ogólnie obiektowe języki są dużo fajniejsze. Ja trzymam kciuki za node.js!

Avatar
Anonim (niezalogowany) | 24.08.2011 13:04#6

@wszerad widać jaki z Ciebie znawca pehapa

Avatar
Anonim (niezalogowany) | 24.08.2011 13:15#7

@wszerad
PHP jest obiektowy.

AvatarUżytkownik jest nieaktywny
TheBlackMan | 24.08.2011 14:09#8

48h i jest poprawka.

To się nazywa potęga Open Source.

Chociaż w sumie to patch łatający był już dostępny kilka(naście ?) godzin po znalezieniu buga, więc chyba nawet szybciej.

Avatar
Anonim (niezalogowany) | 24.08.2011 14:13#9

Gdyby ktoś napisał Crysisa w C# to jeszcze długo długo byśmy nie mogli w niego grać. :) :)

Potrzebował by pewnie 3x i7 i 16 GB ramu.

AvatarUżytkownik jest nieaktywny
ra-v | 24.08.2011 16:06#10

Jak już wspominałem, żaden poważny administrator nie aktualizuje oprogramowania na wariata. Nawet jakby poprawka była za miesiąc nic by się nie stało.

AvatarUżytkownik jest nieaktywny
przemek1234 | 24.08.2011 16:13#11

@Anonim:
A słyszałeś o ngen'ie od Microsoft'u? Kompiluje on programy .NET do kodu natywnego i zapisuje w cache'u. Co za problem, by instalator gry odpalił ngen'a po skopiowaniu plików.

AvatarUżytkownik jest nieaktywny
Shaki81 | 24.08.2011 16:42#12

Szybko się postarali o naprawę swojego błędu. Inne firmy mogą się tylko uczyć od takich programistów.

AvatarUżytkownik jest nieaktywny
aptu | 24.08.2011 16:50#13

Crysis 2 (jako gra, a nie sam silnik) jak i spora cześć innych gier jest napisany w znaczącej części w Lua. Taki język skryptowy, co prawda dużo szybszy od PHP, ale też prostszy. Więc programowanie to nie tylko asm i c.
PHP to strasznie bałaganiarski język, a to przez to, że wrzucano do niego wszystko co popadnie, a język nie miał żadnych modułów, przestrzeni nazw, klas, nic co pozwalało by jako tako to uporządkować. Więc robił się bajzel. Obiektowość dorobiono do niego stosunkowo niedawno, jednak cały proceduralny bajzel został.

AvatarUżytkownik jest nieaktywny
aptu | 24.08.2011 16:54#14

@Shaki81
"Szybko się postarali o naprawę swojego błędu. Inne firmy mogą się tylko uczyć od takich programistów."

Tak poważny błąd nigdy nie powinien przejść przez testy, a testy podobno były tylko ich nie uruchomiono. To jest nad wyraz nieprofesjonalne podejście.

Avatar
Anonim (niezalogowany) | 24.08.2011 16:56#15

przemek1234:
ale nadal programy są uruchamiane w maszynie wirtualnej oraz w tle działa odśmiecacz który non-stop sprawdza każdy obiekt czy przypadkiem może nie jest już potrzebny. To są powody dlaczego C# nie jest wydajne.

AvatarUżytkownik jest nieaktywny
wszerad | 24.08.2011 17:07#16

Nie został stworzony jako język obiektowy i to niestety widać. PHP stara się być językiem obiektowym ale gdy porównam go sobie do JS to jeszcze mu bardzo daleko...

AvatarUżytkownik jest nieaktywny
DonM$ | 24.08.2011 18:13#17

@GioWDS, jak to c# to nie programowanie, a co według ciebie...

Oczywiście qpasa to zwykły troll hejter i takich trzeba tępić, ale na pewno nie zachowując się jak dzieci, w odwecie jadąc po innych technologiach.

Zapewne dobreprogramy jest napisane w c#, tak to tylko składnia, ogólnie .net, ale jednak i jakoś działa co.

I skoro już 'znafcy' poruszyli temat PHP =>

PHP NIE JEST OBIEKTOWE
Tylko wspiera programowanie zorientowane obiektowo, ale np. rzutowania obiektów jednej klasy na druga nie obsługuje.
Obiektowe programowanie to nie tylko możliwość utworzenia klasy i dodawania do niej funkcji, to cały runtime, środowisko uruchomieniowe musi być od podstaw budowane z myślą o OOP, a tylko nieliczna część wbudowanych funkcji php jest obiektowa. W OOP obiekty 'żyją', mogą zostać użyte wielokrotnie, a w php po przetworzeniu strony wszystko co było z nią związane umiera i koniec. Przez te lata do php doklejano tylko składnię OOP i trochę zmieniono w tym kierunku, ale nie tyle by uznać php za obiektowe.

AvatarUżytkownik jest nieaktywny
aptu | 24.08.2011 19:13#18

@DonM$
PHP nie obsługuje rzutowania obiektów bo jest to język dynamiczny, a nie statyczny. Nie ma to nic wspólnego z obiektowością. Tak samo trwałość obiektów. Jak chcesz aby twoje obiekty przeżyły dłużej niż program to musisz je sobie gdzieś zapisać, a po ponownym uruchomieniu programu odtworzyć. Nie ma to nic wspólnego z tym czy język jest obiektowy czy nie.

AvatarUżytkownik jest nieaktywny
aptu | 24.08.2011 23:58#19

@wszerad
JS nie jest językiem obiektowym, przynajmniej nie w tradycyjnym rozumieniu. Jest tak zbudowany, że pozwala całkiem udanie emulować sporo elementów tradycyjnej obiektowości, co do większości zastosowań w których stosuje się obecnie JS jest wystarczające. Ale np. encapsulacji już w JS nie ma normalnej co jest z jednym z filarów oop.

AvatarUżytkownik jest nieaktywny
TomaszK-Poz | 25.08.2011 0:11#20

@qpasa
A masz inny wybór przy tanich hostingach ? No może jeszcze Python...

AvatarUżytkownik jest nieaktywny
aptu | 25.08.2011 0:33#21

@TomaszK-Poz
https://openshift.redhat.com/ Pierwsza chmura która umożliwia hosting normalnym w pełni wypasionych aplikacji JEE6. Za darmo i nie tylko Java, ale taż Ruby, Python, PHP i Perl. Z poletka Javy i za darmo jest jeszcze CloudFoundry od VMWare, co prawda Jave obsługuje Tomcat wiec nie ma JEE, ale można swobodnie odpalić wszystko co nie wymaga JEE czyli Springi i całą resztę ferajny, ponadto RoR i Node.js.
Więc myślę że czasy gdy PHP było jedynym tanim rozwiązaniem odchodzą szybciej niż się wydaje.
Jak nie musi być tak bardzo tanio ale z pełną swobodą to jest chmura Amazona, tam można uruchamiać co się tylko podoba.

Avatar
Anonim (niezalogowany) | 25.08.2011 15:36#22

Jedną zaletą php jest to że łatwo można znaleźć taniego robola który to potrafi.. Wad nie będę pisał bo nie mam paru lat wolnych zresztą .. każdy kumaty i tak wie..

AvatarUżytkownik jest nieaktywny
nitro192007 | 25.08.2011 16:36#23

Się plujecie... jak nie walka systemów to przeglądarek. Używam PHP jest dla mnie prosty, łączę go z innymi językami programowania i wychodzą mi naprawdę super aplikacje. Jego sprawa kto jaki język używa.

AvatarUżytkownik jest nieaktywny
TomaszK-Poz | 25.08.2011 19:10#24

@aptu
Miałem na myśli o czymś popularnym.
To o czym piszesz, jest za darmo. Na razie za darmo.
Wszędzie, gdzie jest hosting do 300 na rok - tylko php i ew python

Dodaj komentarz

Zasady publikowania komentarzy
Autor
Treść
 
Polecamy
Huawei E583C

Test przenośnego routera 3G
Recenzja Samsung NP530U4B

Ultabook z nadwagą
Test: PocketBook Pro 612

Biblioteka w kieszeni
Top programy
  •  
Top programy ostatnie 7 dni
  •  
Top programy ostatnie 30 dni
  •  
Skanery antywirusowe
skaner av