Novinky v Nette Http 3.1

před 4 lety od David Grudl  

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

  1. 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é?

    před 4 lety
  2. Myslím, že můžeš kombinovat sendAsFile() s odesláním hlavičky X-sendfile, ale nezkoušel jsem to.

    před 4 lety · replied [3] Polki
  3. před 4 lety

Chcete-li odeslat komentář, přihlaste se