Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
19 yazı bulundu #aspnetcore
OWASP'ın Diğer Listeleri: API Security, LLM Top 10, ASVS ve Cheat Sheet Series
Güvenlik SERİ 21

OWASP'ın Diğer Listeleri: API Security, LLM Top 10, ASVS ve Cheat Sheet Series

Top 10'un dışına çıkıyoruz: API Security Top 10 (2023) ile BOLA, BOPLA ve BFLA ayrımı, response DTO'suyla property seviyesinde veri ifşasını önlemek, Top 10 for LLM Applications (2025), ASVS 5.0 ve Cheat Sheet Series. Serinin yeni Top 10 sürümleriyle nasıl süreceğini ve sıradaki güvenlik serilerini konuşuyoruz.

6 Kas 2026 7 dk 6
OWASP Top 10:2017: XXE, Insecure Deserialization ve Bugüne Kalan Dersler
Güvenlik SERİ 18

OWASP Top 10:2017: XXE, Insecure Deserialization ve Bugüne Kalan Dersler

OWASP Top 10:2017 listesini, yazıldığı dönemin web'ini ve 2013'ten 2017'ye değişenleri inceliyoruz. XXE'nin .NET 10'da varsayılan olarak nasıl reddedildiğini gerçek bir istekle, BinaryFormatter'ın neden artık derlenmediğini ve çalışmadığını kodla görüyor, XSS'in ayrı kategori olduğu yılları bugünkü listeyle karşılaştırıyoruz.

6 Kas 2026 8 dk 7
OWASP Top 10'u Birleştirmek: ASP.NET Core ve Angular için Güvenli Varsayılanlar
Güvenlik SERİ 17

OWASP Top 10'u Birleştirmek: ASP.NET Core ve Angular için Güvenli Varsayılanlar

On kategoriyi tek bir Program.cs'te birleştiriyoruz: fallback policy, cookie bayrakları, ProblemDetails, 429 dönen rate limiting, security header'lar ve bilinmeyen JSON alanlarını reddetmek. Hepsini curl ile doğruluyor, .NET analyzer'larıyla SAST, WebApplicationFactory ile güvenlik regresyon testi yazıyor, DAST'ı ve ASVS 5.0'a geçişi konuşuyoruz.

6 Kas 2026 13 dk 3
OWASP A10: Mishandling of Exceptional Conditions — Fail Closed ve ProblemDetails
Güvenlik SERİ 16

OWASP A10: Mishandling of Exceptional Conditions — Fail Closed ve ProblemDetails

İzin dosyası okunamayınca herkesi admin yapan bir yetki kontrolü, istemciye SQL hatasını ve dosya yolunu gönderen bir yorum endpoint'i ve istemci gittikten sonra da çalışmaya devam eden bir aramayla başlıyoruz. Fail closed, hatayı yerinde yakalamak, IExceptionHandler ve ProblemDetails, .NET 10'un handler loglama değişikliği, request timeout ve iptal ile düzeltiyoruz.

6 Kas 2026 9 dk 6
OWASP A09: Security Logging and Alerting Failures — Neyi Loglamalı, Neyi Asla
Güvenlik SERİ 15

OWASP A09: Security Logging and Alerting Failures — Neyi Loglamalı, Neyi Asla

Yanlış parolayı loga yazan, satır sonuyla sahte kayıt üretilebilen ve 403'leri hiç kaydetmeyen bir giriş endpoint'iyle başlıyoruz. LoggerMessage ve JSON console ile structured logging'e geçiyor, yetkilendirme reddini görünür kılıyor, e-postayı HMAC redaction ile koruyor, traceId ile cevabı loga bağlıyor ve hangi olaylara alarm kurulacağına bakıyoruz.

6 Kas 2026 8 dk 5
OWASP A08: Software or Data Integrity Failures — Deserialization ve Mass Assignment
Güvenlik SERİ 14

OWASP A08: Software or Data Integrity Failures — Deserialization ve Mass Assignment

Gelen verinin kendi tipini seçmesinin neden tehlikeli olduğunu kavramsal olarak anlatıyor, BinaryFormatter'ın net10.0'da derleme hatası ve PlatformNotSupportedException ile nasıl sona erdiğini gerçek çıktılarla gösteriyoruz. System.Text.Json'da allowlist ile polimorfizm kuruyor, DTO ve JsonUnmappedMemberHandling ile mass assignment'ı kapatıyor, CI/CD ve SRI ile kodun bütünlüğüne bakıyoruz.

6 Kas 2026 9 dk 6
OWASP A07: Authentication Failures (2) — Cookie Bayrakları, JWT Doğrulama ve CSRF
Güvenlik SERİ 13

OWASP A07: Authentication Failures (2) — Cookie Bayrakları, JWT Doğrulama ve CSRF

Girişten sonra kimliğin her istekte nasıl taşındığına bakıyoruz. Cookie bayraklarını ve __Host- önekini açıkça ayarlıyor, session fixation riskini anlatıyor, JwtBearer'da issuer, audience, süre, imza ve algoritmayı doğruluyor, süresi dolan token'da ClockSkew'un etkisini saniye saniye ölçüyor ve antiforgery ile SameSite'ın CSRF'e karşı birlikte nasıl çalıştığını gösteriyoruz.

6 Kas 2026 10 dk 2
OWASP A07: Authentication Failures (1) — Brute Force, Lockout ve NIST Parola Kuralları
Güvenlik SERİ 12

OWASP A07: Authentication Failures (1) — Brute Force, Lockout ve NIST Parola Kuralları

Sınırsız deneme kabul eden, kullanıcının var olup olmadığını mesajıyla ve cevap süresiyle ele veren bir giriş endpoint'iyle başlıyoruz. Brute force ile credential stuffing'i ayırıyor, Identity'nin varsayılan parola kurallarını NIST SP 800-63B-4 ile karşılaştırıyor, blocklist validator, lockout ve tek tip cevapla düzeltiyor, MFA ve passkey'lere kısaca bakıyoruz.

6 Kas 2026 10 dk 2
OWASP A06: Insecure Design — İş Mantığı Açıkları, Race Condition ve Rate Limiting
Güvenlik SERİ 11

OWASP A06: Insecure Design — İş Mantığı Açıkları, Race Condition ve Rate Limiting

Satır satır doğru çalışan bir sipariş endpoint'i negatif adetle para iade ediyor, tek kullanımlık kuponu iki kez kabul ediyor ve son kopyayı iki kişiye satıyor. Tasarım hatasını uygulama hatasından ayırıyor, STRIDE ve abuse case ile eksik gereksinimleri buluyor, koşullu UPDATE, transaction, .NET 10 doğrulaması ve rate limiting ile düzeltiyoruz.

6 Kas 2026 11 dk 2
OWASP A05: Injection (2) — XSS, Razor Encoding, innerHTML, CSP ve Trusted Types
Güvenlik SERİ 10

OWASP A05: Injection (2) — XSS, Razor Encoding, innerHTML, CSP ve Trusted Types

Reflected, stored ve DOM-based XSS'i Bookstore lab'ında inceliyoruz: HtmlEncoder ve Razor'ın otomatik encoding'i, JSON API'den gelen değeri innerHTML ile yazmanın tuzağı ve textContent ile düzeltmesi, Angular'ın sanitization'ı ve bypassSecurityTrust* riski, ardından ikinci savunma hattı olarak CSP ile Trusted Types'ın headless Chrome'da güvensiz kodu nasıl durdurduğu.

6 Kas 2026 8 dk 3
OWASP A05: Injection (1) — SQL Injection ve Command Injection
Güvenlik SERİ 09

OWASP A05: Injection (1) — SQL Injection ve Command Injection

Aynı kitap arama endpoint'ini string birleştirme, ADO.NET parametresi, Dapper ve EF Core ile yazıyor, ' OR 1=1 -- girdisinin parametreyle nasıl sıradan bir veriye dönüştüğünü görüyoruz. FromSqlRaw ile FromSql farkını EF1002 uyarısı ve ToQueryString ile inceliyor, Process.Start'ta shell yerine ArgumentList ve allowlist kullanıyor, .NET 10'un yerleşik doğrulamasıyla input validation'ın yerini netleştiriyoruz.

6 Kas 2026 10 dk 4
OWASP A04: Cryptographic Failures (2) — Parola Saklama, Data Protection ve Secret Yönetimi
Güvenlik SERİ 08

OWASP A04: Cryptographic Failures (2) — Parola Saklama, Data Protection ve Secret Yönetimi

ASP.NET Core Identity'nin PasswordHasher'ı bir parolayı tam olarak nasıl saklıyor? Hash'in başlığını çözüp PBKDF2-HMAC-SHA512 ve 100.000 iterasyonu görüyor, OWASP'ın 220.000 önerisine SuccessRehashNeeded ile geçiyor, Data Protection API ile süreli ve imzalı paylaşım link'i üretiyor, secret'ları user-secrets ve ortam değişkenleriyle koddan ayırıyoruz.

6 Kas 2026 9 dk 2
Blog Haritası