Aktualizacja
Aktualizacja do wersji 3.4
Minimalna wymagana wersja PHP to 8.3.
- metoda
Request::isSameSite()jest przestarzała na rzeczisFrom(), która ustala pochodzenie żądania z nagłówkówSec-Fetch-*. Automatyczna ochrona formularzy i sygnałów staje się precyzyjniejsza, a jedno zachowanie się zmienia: bezpośrednie wejście (zakładka, ręcznie wpisany adres, odnośnik w e-mailu) nie jest już uznawane za same-site. Jeśli sygnał opiera się na odnośnikach akcji w e-mailach, oznacz go#[Requires(sameOrigin: false)]. - cookie
_nssjest teraz wysyłane tylko do przeglądarek, które nie wysyłają nagłówkaSec-Fetch-Site setCookie()wysyła atrybutMax-Agei wymusza flagęSecuredlaSameSite=Noneoraz dla cookies partycjonowanych- enum
SameSitezastępuje stałeIResponse::SameSiteLaxitd., które są przestarzałe - wygaśnięcie interpretowane jest wszędzie tak samo: liczba to względna liczba sekund, ciąg to interwał albo data.
Przekazywanie absolutnego uniksowego timestampu jest przestarzałe, a cookie sesyjne reprezentuje
nullzamiast0. - przestarzała metoda
Request::getRemoteHost()zwracanull - dawno przestarzała klasa
Nette\Http\UserStoragezostała usunięta
Całą historię przejścia na nagłówki Sec-Fetch-* opowiada artykuł Ćwierć wieku CSRF.
Aktualizacja do wersji 3.2
- dane uwierzytelniające z HTTP Basic Authentication nie są już częścią obiektu
Url, więc$url->getUser()i$url->getPassword()zwracają pusty ciąg. Odczytasz je nową metodą$request->getBasicCredentials().
Powody tej zmiany wyjaśnia artykuł Nette Http 3.2: zmiana dostępu do danych uwierzytelniających.
Aktualizacja do wersji 3.1
- cookies wysyłane są z flagą
sameSite: Lax cookieSecurema teraz domyślnie wartość ‚auto‘- opcja
session.cookieSecurejest przestarzała, używane jest zamiast niejhttp.cookieSecure - cookie
nette-samesitezostało przemianowane na_nss Nette\Http\Request::getFile()przyjmuje tablicę kluczy i zwracaFileUpload|nullNette\Http\Session::getCookieParameters()jest przestarzałeNette\Http\FileUpload::getName()zostało przemianowane nagetUntrustedName()Nette\Http\Url:getBasePath(),getBaseUrl()igetRelativeUrl()są przestarzałe (metody te są częściąUrlScript)Nette\Http\Response::$cookieHttpOnlyjest przestarzałeNette\Http\FileUpload::getImageSize()zwraca parę[width, height]- przy
autoStart: smart(domyślne) sesja nie jest już uruchamiana zaraz po starcie aplikacji tylko dlatego, że przeglądarka wysłała cookie sesyjne; uruchamia się przy pierwszym odczycie albo zapisie. Dodano wartościalwaysinever. - gdy przeglądarka wyśle ID sesji, dla którego żadna sesja nie istnieje, Nette usuwa cookie zamiast tworzyć nową sesję
- do dostępu do sekcji sesji preferuj metody
set(),get()iremove(); w przeciwieństwie do dostępu przez właściwości poprawnie rozróżniają odczyt od zapisu i nie uruchamiają sesji niepotrzebnie - wartości domyślne
cookiePathicookieDomainmożna ustawić w konfiguracji
Zachowanie sesji opisuje szczegółowo artykuł Nette Http 3.1: znacznie sprytniejsze sesje.
Aktualizacja do wersji 3.0
- obiekt
Nette\Http\UrlScript(zwracany np. przezNette\Http\Request::getUrl()) jest teraz niezmienny - w
new Nette\Http\Url('abcd')abcdreprezentuje ścieżkę, a nie domenę; od 3.0(new Nette\Http\Url('abcd'))->setScheme('http')poprawnie generujehttp:abcdzamiast wcześniejszegohttp://abcd