Quarkus Güvenlik İncelemesi
Kimlik doğrulama, yetkilendirme ve girdi doğrulama ile Quarkus uygulamalarını güvenli hale getirmek için en iyi uygulamalar.
When to Use
- Kimlik doğrulama ekleme (JWT, OIDC, Basic Auth)
@RolesAllowedveya SecurityIdentity ile yetkilendirme uygulama- Kullanıcı girişini doğrulama (Bean Validation, özel doğrulayıcılar)
- CORS veya güvenlik başlıklarını yapılandırma
- Gizli bilgileri yönetme (Vault, ortam değişkenleri, config kaynakları)
- Rate limiting veya brute-force koruması ekleme
- Bağımlılıkları CVE için tarama
- MicroProfile JWT veya SmallRye JWT ile çalışma
How It Works
Quarkus güvenliğini katmanlı uygulayın: JWT/OIDC veya Basic Auth ile kimliği
doğrulayın, SecurityIdentity ve @RolesAllowed ile yetki kararlarını
merkezileştirin, Bean Validation ile girdileri sınırlandırın, CORS ve güvenlik
başlıklarını açıkça yapılandırın, gizli bilgileri Vault veya ortam değişkenleri
üzerinden yönetin.
Examples
Kimlik Doğrulama
JWT Kimlik Doğrulama
Yapılandırma (application.properties):
Özel Kimlik Doğrulama Filtresi
Yetkilendirme
Rol Tabanlı Erişim Kontrolü
Programatik Güvenlik
Girdi Doğrulama
Bean Validation
Özel Doğrulayıcılar
SQL Injection Önleme
Panache Active Record (Varsayılan Olarak Güvenli)
Native Sorgular (Parametre Kullanın)
Parola Hash'leme
CORS Yapılandırması
Gizli Bilgi Yönetimi
HashiCorp Vault Entegrasyonu
Rate Limiting (Hız Sınırlama)
Güvenlik Notu: X-Forwarded-For doğrudan kullanmayın — istemciler bunu taklit edebilir.
Servlet request'ten gerçek uzak adresi veya kimliği doğrulanmış bir kimlik (API anahtarı, JWT subject) kullanın.
Güvenlik Başlıkları
Denetim Loglama
Bağımlılık Güvenliği Taraması
En İyi Uygulamalar
- Production'da her zaman HTTPS kullanın
- Stateless kimlik doğrulama için JWT veya OIDC etkinleştirin
- Bildirimsel yetkilendirme için
@RolesAllowedkullanın - Bean Validation ile tüm girişleri doğrulayın
- Parolaları BCrypt ile hash'leyin (asla düz metin saklamayın)
- Gizli bilgileri Vault veya ortam değişkenlerinde saklayın
- SQL injection'ı önlemek için parametreli sorgular kullanın
- Tüm yanıtlara güvenlik başlıkları ekleyin
- Genel endpoint'lerde rate limiting uygulayın
- Hassas işlemleri denetleyin
- Bağımlılıkları güncel tutun ve CVE için tarayın
- Programatik kontroller için SecurityIdentity kullanın
- Uygun CORS politikaları belirleyin
- Kimlik doğrulama ve yetkilendirme yollarını test edin


