Junior
CSRF nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
CSRF (Cross-Site Request Forgery) — bu, saldırganın kullanıcının zaten kimliğini doğruladığı bir web sitesinde istenmeyen işlemleri gerçekleştirmesine neden olan bir saldırı türüdür.
Saldırının özü, kötü niyetli bir sitenin veya e-postanın, kullanıcının tarayıcısının otomatik olarak hedef siteye gönderdiği bir isteği içermesidir. Kullanıcı hedef sitede giriş yapmışsa, tarayıcısı çerezleri gönderecek ve istek kullanıcının haklarıyla gerçekleştirilecektir.
Örneğin, bu, şifre değiştirme, para transferi veya hesap silme isteği olabilir.
CSRF'den korunmak için çeşitli yöntemler kullanılır:
- CSRF tokenleri: Her istek için gizli ve benzersiz tokenler, bunlar sunucu tarafından oluşturulur ve her form veya AJAX isteğiyle gönderilir. Sunucu alınan tokenin doğruluğunu kontrol eder.
- SameSite cookie özelliği: Çerezlerin yalnızca aynı alan adından gelen isteklere gönderilmesini sağlayan kuralı belirler.
- Origin ve Referer başlıklarının kontrolü: Sunucu, isteğin nereden geldiğini kontrol eder. Ancak, bu başlıklar saldırgan tarafından değiştirilebilir veya bazı durumlarda bulunmayabilir.
- Kritik işlemler için yeniden kimlik doğrulama gerekliliği: Önemli işlemlerden önce parola istenir.
En etkili ve yaygın yöntem, CSRF tokenlerinin kullanılmasıdır.
// Bir forma CSRF tokeni ekleme örneği
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="sunucu tarafında üretilen token">
<input type="number" name="amount">
<button type="submit">Transfer Et</button>
</form>
// Sunucuda CSRF tokeninin doğrulanması örneği (Node.js ve Express ile)
app.post('/transfer', csrfProtection, (req, res) => {
// Token doğrulamasından sonra isteğin işlenmesi
});