Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Antiforgery Derinlemesine: Cookie Authentication, SPA ve Minimal API'lerde CSRF Koruması
ASP.NET Core'un antiforgery middleware'i isteği reddetmez, sonucu bir feature'a yazar; minimal API'de bu sonucu yalnız form binding uygular, bu yüzden cookie ile çalışan JSON endpoint'leri token'sız istekleri 200 ile kabul eder. Token çiftinin iç yapısını, Angular'ın XSRF-TOKEN pattern'ini, zorunlu doğrulama yapan endpoint filter'ı, login sonrası token yenilemeyi ve DisableAntiforgery'nin bilinçli kullanımını gerçek çıktılarla anlatıyoruz.
htmx ile Razor Pages: SPA Yazmadan Etkileşimli Arayüz, Partial Yanıtlar ve Antiforgery
htmx ile Razor Pages handler'ları HX-Request header'ına göre tam sayfa ya da yalnız partial döner; canlı arama, sonsuz scroll ve satır içi düzenleme JSON ve SPA olmadan çalışır. Antiforgery token'ını hx-headers ile taşıyor, Vary ve history restore tuzaklarını, htmx 2'nin 4xx davranışını ve htmx 4 farklarını gerçek isteklerle gösteriyoruz.
MVC ve Razor Pages'te Formlar: Model Binding, Post-Redirect-Get, Antiforgery ve Overposting
MVC controller'larında form tag helper'ı antiforgery token'ı üretir ama doğrulamaz: token'sız curl isteği kitabı kaydetti, AutoValidateAntiforgeryTokenAttribute ile 400 oldu. Post-Redirect-Get ve TempData'yı, fetch ile header'da token göndermeyi, koleksiyon/nested object/checkbox/enum binding'ini ve indeks boşluğunu, entity bind edince stoğu 999 yapan overposting'i ve [Bind]'ın güncellemede veri silen sınırını gerçek isteklerle görüyoruz.