entegre edilen API keyleri, sunucu parolaları vs. Configde Saklanan Giriş Bilgileri Key Vault çözümler - Azure Key Vault User Secrets Yapılandırma dosyasının erişim yetkisinin kısıtlanması Çözümler
t i o n API, Web Sayfası gibi kaynaklara erişim için kullanılan kimliği belirleme yolu Ne yapabiliriz? Aşağıdaki authentication stratejilerinin projelere dahil edilmesi Basic Authentication JWT Token OAuth
t i ( I n s e c u r e D i r e c t O b j e c t R e f e r e n c e s ) Yetkilendirme kontrolünün doğru bir şekilde uygulanmamasından kaynaklıdır. Çözüm Rol gruplarına yönelik yetki kontrol mekanizmasının uygulanması Her kaynak erişim isteğinde, kullanıcının bu kaynağa erişim yetkisi olduğundan emin olunmalı.
yapılmasıdır. Çözümler Form alanlarının doğrulanması HTML Encoder kullanımı DomPurify çözümlerinin uygulanması Girişlerde HTML’yi engelleyin X S S ( C r o s s S i t e S c r i p t i n g )
o n Kullanıcı girişleri doğrudan SQL sorgularına dahil edildiğinde, saldırganlar kötü amaçlı SQL kodları çalıştırabilir. Çözümler Sorgulara parametre eklenmesi Uygulamalardan girilen girdilerin filtrelenmesi WAF - Web Application Firewall - Güvenlik duvarı ile kontrollerin yapılması
o ğ r u l a n m a s ı - V a l i d a t i o n Verilerin doğrulanmasını sadece client-arayüze bırakmak. Manipülasyona açıktır. Server side validation ile desteklemek Kütüphaneler - FluentValidation Doğru iş kuralları
R e q u e s t F o r g e r y ( C S R F ) Herhangi bir web uygulamasında oturum açmış bir kullanıcının oturumunu kullanarak kullanıcının istekleri dışında işlemler yapılmasıdır. Çözümler AntiForgeryToken Kritik işlemler için POST metodu kullanmak
güvenlik yapısının kurgulanmasıdır. Doğru CORS yapılandırması, bir web uygulamasının sadece güvenilir kaynaklardan veri alışverişi yapmasını sağlayıp güvenlik ihlallerini sınırlar. C O R S Y a p ı s ı K u r u l m a s ı
"*" → Herkese izin verir (güvenlik açısından risklidir). "https://example.com" → Sadece bu kaynağa izin verir. Access-Control-Allow-Methods: Hangi HTTP yöntemlerinin (GET, POST, PUT, DELETE vb.) kullanılabileceğini tanımlar. Access-Control-Allow-Headers: İstemciden hangi özel başlıkların (headers) kabul edileceğini tanımlar. Hassas bilgilerin kontrolsüz bir şekilde iletilmesini engeller. Örnek: Authorization, Content-Type
r l a r ı n E k l e n m e s i Security headers, web uygulamalarını tarayıcı seviyesinde korumak için sunucudan istemciye (tarayıcıya) gönderilen HTTP başlıklarıdır. Önemli Başlıklar Content-Security-Policy (CSP): XSS (Cross-Site Scripting) ve veri enjeksiyon saldırılarını önler. Örnek: Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-scripts.com Strict-Transport-Security (HSTS): Bütün iletişimin Https ile olmayı zorunlu tutar. X-Frame-Options: Clickjacking saldırılarını önler. Deny - Allow From - Same Origin
r l a r ı n E k l e n m e s i X-Content-Type-Options: Tarayıcıların içerik türünü tahmin etmesini engelleyerek MIME tipi saldırılarını önler. Permissions-Policy (Eski adıyla Feature-Policy): Tarayıcıda belirli API'lerin (ör. kamera, mikrofon) kullanılmasını kontrol eder.
(tarayıcıya) gönderilen HTTP başlıklarıdır. Referrer-Policy: Kullanıcının hangi sayfadan geldiği bilgisinin kontrolünü sağlar ve hassas URL’lerin sızmasını önler. Başlıca değerler: "no-referrer", "same-origin", "strict-origin" D o ğ r u H e a d e r l a r ı n E k l e n m e s i o r i g i n y a p ı s ı
e H t t p D e s t e ğ i V e r i l m e s i Kimlik Doğrulama Sorunları: HTTPS, güvenli bağlantıyı doğrulayan bir sertifika sağlar, böylece kullanıcıların sahte sitelere yönlendirilmesi engellenir. Veri İfşası: HTTP üzerinden iletilen kişisel bilgiler, kullanıcı adı, şifreler, kredi kartı bilgileri gibi veriler şifrelenmediği için kolayca ele geçirilebilir. Man-in-the-Middle Saldırıları: Araya giren saldırganlar, kullanıcı ve sunucu arasındaki iletişimi dinleyip değiştirebilir. Çözüm: HTTPS: SSL/TLS protokollerini kullanarak verilerin güvenli bir şekilde şifrelenmesini sağlar.
y a n P a k e t - K ü t ü p h a n e K u l l a n ı m ı Eski ve güvenlik açıklarına sahip kütüphaneler, projeyi savunmasız bırakabilir. Çözüm Paketleri belirli aralıklarla versiyonlarını kontrol edip güncel tutmak.
bilgilerin görünür bir şekilde loglanması, Çözüm Loglamalarda kişisel bilgilerin maskelenmesi ya da hiç gösterilmemesi Hata Mesajlarında - kod görsellerinin eklenmeyip, loglamanın arka planda yapılması Detaylı hata mesajlarının gizlenmesi. H a s s a s B i l g i l e r
değer, uygulamanın normal kimlik doğrulamasını aşıp uygulamanın çalıştığı işletim sistemi hesabını kullanarak veritabanına bağlanmasını sağlayacaktır. Böylece, saldırganın geçerli bir parola olmadan veritabanına bağlanabileceği ve veritabanına doğrudan sorgular gerçekleştirebileceği anlamına gelir.