İçindekiler Tablosu
| Başlık | Açıklama |
|---|---|
| OWASP Top 10 | Web güvenliğinde en kritik açıklar |
| SQL Injection | .NET’te veri güvenliği nasıl sağlanır? |
| XSS | Kullanıcı arayüzünü nasıl koruruz? |
| CSRF | Kimlik sahtekarlığını nasıl önleriz? |
| Race Condition | Paralel işleme güvenliği |
| ASP.NET Core Güvenlik Katmanları | Entegre savunma sistemleri |
| Pentest Araçları | Uygulama güvenlik test araçları |
| SEI CERT & OWASP | Güvenli kodlama standartları |
| Eğitim Önerileri | Sertifikalı, resmi eğitim bağlantıları |
OWASP Top 10: Geliştiriciler İçin Tehdit Listesi
OWASP, tüm web uygulama geliştiricileri için global bir referanstır.
.NET uygulamalarında da aşağıdaki açıklarla sıkça karşılaşılır:
Broken Access Control
Cryptographic Failures
Injection
Insecure Design
Security Misconfiguration
Outdated Components
Authentication Failures
Integrity Failures
Logging & Monitoring Issues
Server-Side Request Forgery (SSRF)
Ayrıntılı koruma yöntemleri için eğitim:
🔗 Securing .NET Web Applications Eğitimi
SQL Injection: .NET’te En Klasik Tehlike
Yanlış Yaklaşım:
csharp
var user = context.Users .FromSqlRaw("SELECT * FROM Users WHERE Email = '" + email + "'") .FirstOrDefault(); Doğru Yaklaşım:
csharp
var user = context.Users .FirstOrDefault(u => u.Email == email); ✔ ORM (Entity Framework) kullanımı + Parametrik sorgular = Güvenli kodlama
XSS (Cross Site Scripting)
Kullanıcıdan alınan HTML çıktıları doğrudan sayfaya yerleştirilirse tehlike büyüktür.
html
@Html.Raw(ViewBag.Message) ✔ ASP.NET Razor otomatik escape uygular.
Ayrıca:
Content Security Policy (CSP)
AntiXSS NuGet paketleri
Form validasyonu
CSRF: Oturum Sahtekarlığına Karşı Savunma
ASP.NET Core, CSRF koruması ile birlikte gelir.
csharp
[ValidateAntiForgeryToken] public IActionResult Update(User user) { ... } Form içinde:
html
@Html.AntiForgeryToken() Temel .NET Core güvenlik altyapısını öğrenmek için:
🔗 Introduction to .NET Core for Web Services
Race Condition: Sessiz ve Tehlikeli
Çoklu işlem, aynı kaynağa yarış içinde eriştiğinde veri çakışması doğar.
Örneğin aynı kupon kodunun eşzamanlı kullanımı.
✔ Çözüm:
lockanahtar kelimesiSemaphoreSlimkullanımıasync/awaitblokları ile kontrol
ASP.NET Core Güvenlik Katmanları
| Katman | Görev |
|---|---|
| Authentication | Kimlik doğrulama |
| Authorization | Yetki denetimi |
| Middleware | HTTPS, CORS, JWT filtreleri |
| Identity Framework | Şifreleme, oturum yönetimi |
| Data Protection | Token üretimi, anahtar yönetimi |
csharp
app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); ASP.NET MVC'de güvenli mimari yapılar için:
🔗 Developing ASP.NET MVC Web Applications Eğitimi
Penetrasyon Test Araçları
| Araç | Amaç |
|---|---|
| ZAP | OWASP güvenlik taraması |
| Burp Suite | İstek analiz & payload testi |
| Nikto | Web sunucu açıklığı testi |
| Nmap | Port ve servis tarama |
| DotNet Security Analyzer | .NET özel analiz ve refactor |
SEI CERT & OWASP Kodlama İlkeleri
SEI CERT:
Resource management (
using/Dispose)Exception güvenliği
Type güvenliği (avoid
dynamic)Girdi doğrulama
OWASP:
HTTPS zorunluluğu
Server-side validasyon
Hata mesajlarını gizleme
Authorization kontrollerini action seviyesinde uygulama
Günlüklerde kullanıcı bilgilerini maskeleme
Resmi Sertifikalı Eğitimler
.NET güvenliğini derinlemesine öğrenmek için aşağıdaki eğitimleri tavsiye ederim:
| Eğitim | Link |
|---|---|
| Securing .NET Web Applications | Eğitim Sayfası |
| Introduction to .NET Core for Web Services | Eğitim Sayfası |
| Developing ASP.NET MVC Web Applications | Eğitim Sayfası |