Nello scorso script (https://www.aspitalia.com/script/1258/Compressione-GZip-ASP.NET-Core.aspx) abbiamo visto come attivare il supporto a GZip in ASP.NET Core.
Una nota importante riguarda HTTPS: per default, infatti, il middleware di compressione non funziona se l'applicazione viene acceduta via HTTPS. Questo comportamento è stato imposto per motivi precauzionali, per l'esistenza di un potenziale attacco al protocollo HTTPS denominato CRIME/BREACH.
Dato che HTTPS rende riservato il contenuto della risposta ma non la sua dimensione in byte, è teoricamente possibile per un attaccante determinare se un testo è contenuto nella risposta semplicemente osservando il variare della dimensione di un contenuto compresso.
Maggiori dettagli sono disponibili in questa pagina del sito ArsTechnica (https://arstechnica.com/security/2013/08/gone-in-30-seconds-new-attack-plucks-secrets-from-https-protected-pages/).
L'attacco è rivolto solo a risposte che contengono dati sensibili, come indirizzi e-mail, carte di credito o token CSRF. Per tutti gli altri tipi di contenuto, come pagine statiche HTML, immagini SVG o file CSS e JS, possiamo tranquillamente abilitare la compressione su HTTPS modificando in questo modo l'invocazione a AddResponseCompression che abbiamo visto in precedenza.
services.AddResponseCompression(options => { options.EnableForHttps = true; });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Eseguire script pre e post esecuzione di un workflow di GitHub
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Utilizzare gRPC su App Service di Azure
Recuperare l'ultima versione di una release di GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Cambiare la chiave di partizionamento di Azure Cosmos DB
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8