Cross-Site Request Forgery (CSRF) Nedir ve Nasıl Korunur?

CSRF (Cross-Site Request Forgery) saldırıları, web uygulamaları için büyük bir tehdit oluşturur. Bu blog yazısında, CSRF saldırılarının nasıl işlediğini ve nasıl korunulabileceğini detaylı bir şekilde ele aldık.

BFS

Bir sabah, internette gezinirken birdenbire bazı hesaplarınızdan çıkış yapıldığını fark ettiniz. Hemen şüphelendiniz, çünkü herhangi bir işlem yapmamıştınız. Şifrelerinizi değiştirmeye karar verdiniz, ancak bir şey eksikti… Ne oldu? Web uygulamanızdaki bir güvenlik açığı sayesinde, saldırganlar sizin adınıza işlemler gerçekleştirmişti. İşte bu durumun adı Cross-Site Request Forgery (CSRF).

CSRF Nedir?
CSRF, bir saldırganın kurbanın tarayıcısını kullanarak, güvenli bir web uygulamasına istenmeyen istekler göndermesi durumudur. Birçok kişi, CSRF'nin sadece kullanıcıların şifrelerini çalmakla sınırlı olduğunu düşünebilir. Ancak, aslında bu saldırı türü, kullanıcının bilmeden ve farkında olmadan çeşitli zararlı işlemler gerçekleştirmesine neden olabilir. Bunu, kötü niyetli bir sitenin başka bir web sitesinde oturum açmış bir kullanıcıyı manipüle etmesi şeklinde düşünebilirsiniz.

Bu tür saldırılar, genellikle kullanıcıların kimlik doğrulaması için oturum açmış olduğu web sitelerinde yapılır. Örneğin, bir banka uygulamasına giriş yaptıysanız ve aynı tarayıcıda başka bir kötü niyetli siteye girdiyseniz, o site sizin bankacılık işleminizi izinsiz olarak gerçekleştirebilir. Hatta para transferi bile yapabilir! Korkutucu, değil mi?

CSRF Saldırısının Çalışma Prensibi
Peki, CSRF saldırısı nasıl işler? Bir saldırgan, kurbanın tarayıcısında aktif bir oturum varken, başka bir site üzerinden zararlı bir istek gönderebilir. Örneğin:

1. Kurban bir web sitesine giriş yapmış ve oturumu açık kalmış.
2. Saldırgan, başka bir web sayfasına kurbanı yönlendirir veya ona tıklaması için bir link gönderir.
3. Tarayıcı, kurbanın kimlik doğrulama bilgileriyle (örneğin çerezler) istek gönderir. Web uygulaması, isteği geçerli bir işlem olarak kabul eder ve bunu işler.

Örneğin, bir bankacılık uygulamasına giriş yapmışsanız, saldırgan bir şekilde sizin adınıza başka bir hesaba para transferi yapabilir. O anda sizin şifrenizi bilmesine gerek yok, sadece sizin tarayıcınızda oturum açmış olmanız yeterlidir.

CSRF'ye Karşı Nasıl Korunursunuz?
CSRF saldırılarına karşı korunmak, çoğu zaman uygulama geliştiricilerin yapacağı basit ama etkili önlemlerle mümkündür. İşte en yaygın kullanılan yöntemler:

#### 1. CSRF Token Kullanımı
Web uygulamanızda her form gönderiminde, sunucudan bir token (özel anahtar) alırsınız. Bu token, her istekte sunucuya gönderilir ve sunucu bu token'ı doğrulayarak isteğin geçerli olup olmadığını kontrol eder. Token, her oturumda benzersizdir, bu yüzden saldırganın kurbanın token'ını tahmin etmesi neredeyse imkansızdır.

Örnek bir CSRF token kullanım kodu şu şekilde olabilir:




# 2. SameSite Çerez Özelliği
Tarayıcılar, çerezleri yalnızca aynı site içindeki isteklere gönderir. Bu, CSRF saldırılarının önlenmesinde büyük bir adımdır. Çoğu modern tarayıcıda, çerezler için SameSite özelliği aktif hale getirilmiştir. Bu, bir sitenin, kullanıcıyı başka bir siteye yönlendirdiğinde, çerezlerin gönderilmesini engeller.

Örneğin, aşağıdaki gibi bir çerez ayarı yapabilirsiniz:


Set-Cookie: sessionid=abc123; SameSite=Strict;


# 3. Referer ve Origin Başlıklarının Kontrolü
İsteklerin Referer ve Origin başlıkları, isteğin geldiği kaynağı belirten başlıklardır. Web uygulamanız, bu başlıkları kontrol ederek, isteğin güvenilir bir kaynaktan gelip gelmediğini kontrol edebilir. Eğer başlık, beklenen kaynağa ait değilse, istek reddedilebilir.

Örneğin:


if (request.headers['Referer'] != 'https://www.sizinwebsiteniz.com') {
    return res.status(403).send('Erişim Engellendi');
}


CSRF'ye Karşı Alınacak Diğer Tedbirler
Bunlar dışında, uygulamanızda güvenliği artıracak bazı önlemler alabilirsiniz:

- Güçlü kimlik doğrulama yöntemleri kullanmak (örneğin, iki faktörlü doğrulama).
- X-Frame-Options başlığını kullanarak, sitenizin başka bir siteye iframe olarak yüklenmesini engellemek.
- Kullanıcı oturumlarının kısa süreli olması ve aktif oturum zaman aşımı eklemek.

### Sonuç
CSRF saldırıları, kullanıcıların ve web uygulamalarının güvenliğini tehdit edebilir, ancak doğru önlemler alındığında oldukça etkili bir şekilde engellenebilir. Web geliştiricilerinin, bu tür saldırılara karşı dikkatli olması ve uygun güvenlik önlemlerini alması oldukça önemlidir. Unutmayın, web uygulamanızda kullanıcı güvenliğini sağlamak, sadece kullanıcıları korumakla kalmaz, aynı zamanda uygulamanızın güvenilirliğini de artırır.

İlgili Yazılar

Benzer konularda diğer yazılarımız

VPN Kullanırken Güvenlik Hatalarından Kaçınmak: En Yaygın Yapılan 7 Hata ve Çözümleri

**İnternette güvenli gezintiyi sağlamak, modern dünyada her geçen gün daha önemli hale geliyor. Hangi cihazı kullanırsanız kullanın, dijital güvenliğinizi korumak, çoğu zaman zor bir görev gibi görünebilir. Ancak **VPN** (Virtual Private Network - Sanal...

Web Güvenliğini Arttırmak İçin 2025'te Kullanılacak 10 Yeni Yöntem

Web güvenliği her geçen yıl daha da önemli bir konu haline geliyor. Özellikle 2025’e yaklaştıkça, hacker’lar sürekli yeni yöntemler geliştirirken, biz de onları durdurmanın yollarını arıyoruz. İnternetin büyümesiyle birlikte, her web sitesi sahibi kendini...

Web Sitesi Güvenliğini Arttırmak İçin 2025'te Kullanılması Gereken En İyi 5 SSL Sertifikası Seçeneği

Web sitesi güvenliği, dijital dünyada birinci öncelik haline geldi. Kullanıcı bilgilerini korumak, marka güvenilirliğini artırmak ve web sitenizin arama motorlarında üst sıralarda yer almasını sağlamak için doğru SSL sertifikasını seçmek çok önemlidir....