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
Hosting di componenti WebAssembly in un'applicazione Blazor static
Usare il versioning con i controller di ASP.NET Core Web API
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Usare le variabili per personalizzare gli stili CSS
Evitare la command injection in un workflow di GitHub
Short-circuiting della Pipeline in ASP.NET Core
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Usare lo spread operator con i collection initializer in C#
Disabilitare automaticamente un workflow di GitHub
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Criptare la comunicazione con mTLS in Azure Container Apps
I più letti di oggi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Steel Style CheckBox per Silverlight 4.0
- Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
- Speciale Windows Store app: costruire app con WinRT per Windows 8