Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
.NET 11 ile ASP.NET Core Güvenliği: Fetch Metadata Tabanlı Otomatik CSRF Koruması, Device Bound Session Credentials ve TLS Channel Binding
.NET 11, WebApplication.CreateBuilder ile kurulan uygulamalara Sec-Fetch-Site ve Origin header'larına bakan, varsayılan açık bir CSRF koruması ekliyor; ama kararı yalnız form okuyan endpoint'ler uyguluyor ve DisableAntiforgery onu da kapatıyor. Karar tablosunu, CORS ile güvenilen origin'leri, aynı kuralları .NET 10'da uygulayan bir middleware'i, deneysel DBSC'yi, TLS channel binding'i, authorization metadata birleşmesini ve geçiş kontrol listesini anlatıyoruz.
.NET 8'den .NET 11'e Real-time'da Gelenler: Stateful Reconnect, Native AOT, SSE ve SignalR Authentication Refresh
.NET 8 stateful reconnect'i, .NET 9 polymorphic hub parametrelerini, ActivitySource'u ve SignalR için Native AOT'yi, .NET 10 TypedResults.ServerSentEvents'i getirdi; .NET 11 ise bağlantıyı koparmadan token yenileyen authentication refresh'i ekliyor. AOT'de 28 MB'a karşı 82 MB ölçümü, strongly typed hub'ın AOT uyarısı, iptal edilebilir hub çağrıları, OpenAPI 3.2'de SSE ve eski ASP.NET SignalR.
.NET 8'den .NET 11'e Logging'de Gelenler: Enrichment, Redaction, FakeLogger, Buffering ve Generic LoggerMessage
.NET'te logging iki trenle ilerliyor: ILogger ve source generator runtime ile, enrichment, redaction, FakeLogger, sampling ve buffering ise aylık sürüm alan Microsoft.Extensions.Telemetry paketleriyle geliyor. Hangi özelliğin hangi sürümde geldiğini, .NET 10'daki CA1873 ve obsolete olan AddServiceLogEnricher'ı, .NET 11'deki generic LoggerMessage'ı ve eski Serilog Startup kodunun nasıl okunacağını gerçek çıktılarla gösteriyoruz.