Novinky v Nette Http 3.1
Novinky v Nette Http verze 3.1 se týkají především aktuálního vývoje prohlížečů ve vztahu ke cookies. Současné prohlížeče už konečně umí pracovat bez chyb s příznakem SameSite, proto jej Nette automaticky odesílá.
Nyní tedy Nette všechny cookies (včetně session id) posílá ve výchozím nastavení:
- s příznakem
SameSite=Lax
- s příznakem
Secured
, pokud server používá HTTPS
To, že má cookie příznak Lax
znamená, že nemusí být
odeslána při přístupu
z jiné domény.
Dále můžete nově konfigurovat výchozí hodnoty cookiePath a
cookieDomain. Atribut cookieDomain
určuje, které domény
mohou cookie přijímat. Není-li uveden, cookie přijímá stejná
(sub)doména, jako ji nastavila, ale nikoliv její subdomény. Pokud je
cookieDomain
zadaný, jsou zahrnuty i subdomény. Proto je
uvedení cookieDomain
méně omezující než vynechání.
Například při cookieDomain: nette.org
jsou cookies dostupné
i na všech subdoménách jako doc.nette.org
. Téhož lze
dosáhnout také pomocí speciální hodnoty domain
, tedy
cookieDomain: domain
.
Deprecated je volba session › cookieSecure
, protože její
hodnota se přebírá z obecnějšího http › cookieSecure
.
Další novinky
Metoda Nette\Http\FileUpload::getName()
se přejmenovala na
více „odstrašující“ getUntrustedName()
, aby programátor
měl na zřeteli, že datům od uživatele, což je i jméno uploadovaného
souboru, nelze důvěřovat. Samozřejmě původní název stále funguje
jako alias.
Změnil se název automaticky odesílané cookie pro detekci CSRF útoku
z původního nette-samesite
na stručnější _nss
,
aby nebyl zjevný název frameworku.
Metody Url::isEqual()
a Url::canonicalize()
normalizují IDN domény.
Přibyla nová metoda
Nette\Http\Response::sendAsFile(string $fileName)
, která zajistí,
že odpověď bude stažena pomocí dialogového okna Uložit jako pod
uvedeným názvem. Samotný soubor na výstup neposílá.
$httpResponse->sendAsFile('faktura.pdf');
Komentáře
na stručnější _nss, aby nebyl zjevný název frameworku – Kvůli názvu FW je zbytečné to měnit, když se odesílá v hlavičce ‚X-Powered-By: Nette Framework 3‘ ne?
$httpResponse->sendAsFile(‚faktura.pdf‘); – přibude i nějaká možnost odesílat soubory na klienta pro stažení pomocí ‚X-sendfile‘ hlavičky, nebo je to vzhledem k ne vždy zapnuté konfiguraci na serveru a různému zápisu hlavičky na různých serverech nemožné?
Myslím, že můžeš kombinovat
sendAsFile()
s odesláním hlavičkyX-sendfile
, ale nezkoušel jsem to.#2 David Grudl Díky
Chcete-li odeslat komentář, přihlaste se