Başlık | İçerik Özeti |
---|---|
OWASP Top 10 | Web güvenliğinde en kritik 10 açık |
SQL Injection | Veritabanı manipülasyonuna karşı korunma |
XSS | Kullanıcı arayüzü güvenliği |
CSRF | Kimlik suistimallerine karşı savunma |
Race Condition | Çoklu işlem güvenliği |
Spring Framework’te Güvenlik | Modern Java uygulamalarında güvenlik katmanları |
Penetrasyon Test Araçları | En çok kullanılan test yazılımları ve yöntemler |
SEI CERT & OWASP | Endüstri standartlarına uygun güvenli kodlama |
OWASP (Open Web Application Security Project), web uygulamaları için en önemli güvenlik açıklarını listeler. Bu liste her geliştiricinin güvenlik yolculuğunun başlangıç noktası olmalıdır.
Broken Access Control
Cryptographic Failures
Injection (SQL, LDAP, NoSQL)
Insecure Design
Security Misconfiguration
Vulnerable & Outdated Components
Identification & Authentication Failures
Software & Data Integrity Failures
Security Logging & Monitoring Failures
Server-Side Request Forgery (SSRF)
Her madde, karmaşık güvenlik açıklarının sisteminize sızmak için nasıl bir zemin hazırlayabileceğini açıklar.
Daha fazla detay:
Certified Java and Web Application Security Eğitimi
SQL Injection, kullanıcıdan gelen verinin doğrudan SQL sorgularına katılması ile oluşur.
Bu, kötü niyetli aktörlerin veritabanınızda okuma, yazma veya silme gibi işlemleri yapmasına neden olur.
Örnek Tehlikeli Kod:
java
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE username = '" + input + "'");
Güvenli Alternatif:
java
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE username = ?"); stmt.setString(1, input);
✔ Çözüm: Parametrik sorgular, ORM teknolojileri (Hibernate), whitelist validasyon
XSS açıkları, kullanıcı girdisinin filtrelenmeden HTML/JS olarak tarayıcıda çalıştırılmasına yol açar.
Stored XSS (Veritabanında saklanan)
Reflected XSS (URL üzerinden gelen)
DOM-based XSS
✔ Korunma:
HTML escape (<
, >
, "
gibi karakterlerin dönüştürülmesi)
CSP (Content-Security Policy) başlığı
input
ve output
seviyelerinde filtreleme
CSRF, kullanıcının oturum bilgilerini kullanarak istem dışı işlemler yapılmasına neden olur.
Kullanıcı banka sitesinde oturum açmıştır. Farklı bir site, tarayıcıdaki oturumu kullanarak para transferi isteği gönderir.
✔ Koruma Yöntemleri:
CSRF token’ları
Referer kontrolü
SameSite
cookie parametreleri
Spring Framework’te:
java
http.csrf().enable();
Race Condition, aynı veriye farklı işlemlerin eşzamanlı erişimi ile oluşan bir güvenlik sorunudur.
Bir ödeme sisteminde aynı kupon kodunun birkaç saniyede birden çok kez kullanılması.
✔ Çözüm:
synchronized
bloklar
ReentrantLock
AtomicInteger
, AtomicBoolean
gibi sınıfların kullanımı
Spring Framework, Java dünyasının en güçlü güvenlik yapı taşlarından biridir.
Katman | Açıklama |
---|---|
Authentication | Kullanıcı doğrulaması |
Authorization | Yetkilendirme kontrolü |
Filters | CSRF, CORS, JWT gibi kontrol katmanları |
Expression-based Security | Yetki ifadeleriyle kontrol |
Session Management | Oturum güvenliği |
Daha fazla öğrenmek için:
🔗 Java SE 21 Programming Eğitimi
Araç | Kullanım Alanı |
---|---|
OWASP ZAP | Web uygulama güvenlik taraması |
Burp Suite | Gelişmiş istek/girdi manipülasyonu |
Nikto | Web sunucu açıklık taraması |
Metasploit | Exploit testi |
Nmap | Port & servis keşfi |
✔ Uygulama öncesi, ortası ve sonrası aşamalarda mutlaka test yapılmalı.
SEI CERT (Software Engineering Institute) güvenli kodlama konusunda rehberdir.
Değişkenlerin doğru kullanımı
Bellek yönetimi ve kaynak sızıntısı önleme
Exception handling güvenliği
Tanımsız davranışlardan kaçınma
Güvenli API kullanımı
OWASP, yalnızca saldırı tiplerini değil, aynı zamanda çözüm prensiplerini de tanımlar.
Kullanıcı girdisini hiçbir zaman doğrudan işleme
Minimum yetki prensibi uygulama
Hata mesajlarını sınırlı tutma
HTTPS kullanımı zorunlu kılma
Güvenlik log’larının takibi
Güvenli kodlama bilginizi profesyonel eğitimlerle desteklemek ister misiniz?
Eğitim | Link |
---|---|
Certified Java and Web App Security | Eğitimi Görüntüle |
Java SE 21 Programming I | Eğitimi Görüntüle |
Java SE 21 Programming II | Eğitimi Görüntüle |