Cross-Site Request Forgery (CSRF): Web Güvenliğini Tehdit Eden Sinsi Bir Saldırı

Cross-Site Request Forgery (CSRF): Web Güvenliğini Tehdit Eden Sinsi Bir Saldırı

Bu blog yazısında, Cross-Site Request Forgery (CSRF) saldırısının ne olduğu, nasıl çalıştığı ve nasıl korunabileceğiniz detaylı bir şekilde anlatılmaktadır. CSRF saldırılarına karşı alabileceğiniz güvenlik önlemleri hakkında bilgi edinmek isteyenler için

BFS

Her şey bir sabah aniden başlamıştı. Bir yazılım geliştirici olarak, kullanıcı deneyimini mükemmel hale getirmek için her detayı dikkatlice tasarladığınız o popüler web uygulamanızda işler bir anda ters gitmeye başlamıştı. Kullanıcılar, hesaplarına giriş yapmalarına rağmen, her işlemde istemedikleri hareketler gerçekleştiriliyordu. Kimse ne olduğunu anlayamıyordu. O an aklınıza gelen ilk şey: "Acaba bir Cross-Site Request Forgery (CSRF) saldırısına mı uğradık?"

CSRF Nedir?

CSRF, bir web uygulamasının güvenlik açıklarını hedef alan sinsi bir saldırıdır. Kısacası, kötü niyetli bir kişi, kullanıcının kimlik doğrulaması yaptığı bir web sitesine, kullanıcıdan habersiz olarak istekler gönderir. Bu istekler, kullanıcının zaten oturum açmış olduğu bir hizmeti kötüye kullanabilir. Yani, saldırgan, bir kullanıcının tarayıcısı üzerinden, kullanıcının yetkisini kötüye kullanarak web uygulamasında işlem yapabilir.

CSRF saldırılarının en tehlikeli yanlarından biri, kullanıcının bu saldırıyı fark etmemesidir. Kullanıcı, uygulamayı normal bir şekilde kullanıyormuş gibi hissederken, arka planda, uygulama üzerinde işlemler gerçekleşiyor olabilir. Örneğin, bir bankacılık uygulamasında, bir kullanıcı işlem yaparken, başka bir kullanıcı hesabına para transferi yapılabilir.

CSRF Nasıl Çalışır?

Bir CSRF saldırısının işleyişine daha derinlemesine bakalım. Bu saldırı, genellikle şu şekilde gerçekleşir:

1. Kötü Niyetli Link: Saldırgan, kurbanı, zararlı bir linke tıklamaya yönlendirir. Bu link, kurbanın tarayıcısı üzerinden, hedef web sitesine yapılacak bir istek gönderir.

2. Oturumun Kötüye Kullanılması: Kullanıcı, bu istek gönderildiği anda zaten oturum açmış durumdadır. Bu yüzden web sitesi, bu isteği güvenli bir işlem olarak kabul eder ve gerçekleştirmeye başlar.

3. Saldırı Gerçekleşir: Saldırgan, hedef web uygulamasında istenmeyen bir işlem yapabilir. Bu işlemler, hesap bilgilerini değiştirmek, para transferi yapmak ya da başka kötü niyetli aktiviteler olabilir.

CSRF Saldırısına Karşı Nasıl Korunulur?

Bir CSRF saldırısına karşı korunmak için birkaç etkili yöntem vardır. Gelin bunlara birlikte göz atalım.

# 1. Token Kullanımı (CSRF Token)

Web uygulamanızda, her kullanıcı için benzersiz bir CSRF token oluşturmak, en yaygın ve etkili koruma yöntemidir. Her form gönderiminde, bu token, form ile birlikte gönderilir. Sunucu, gelen istek ile token'ı karşılaştırarak, isteğin gerçekten kullanıcı tarafından yapıldığını doğrular. Token eşleşmezse, istek reddedilir.


function generateToken() {
    return bin2hex(random_bytes(32));
}

function validateToken($receivedToken) {
    if ($receivedToken !== $_SESSION['csrf_token']) {
        die("Invalid CSRF Token");
    }
}


Bu kod parçası, CSRF token'ını nasıl oluşturup doğrulayabileceğinizi gösteriyor. Her kullanıcı için farklı bir token kullanmak, saldırganın başarılı olmasını zorlaştırır.

# 2. SameSite Çerezi

Tarayıcılar, artık çerezler için SameSite özelliğini destekliyor. Bu özellik, bir çerezin yalnızca aynı site üzerinden gönderilmesini sağlar. Yani, eğer bir web sitesi bir kullanıcıyı farklı bir site üzerinden yönlendirmeye çalışırsa, bu çerez gönderilmez. Bu da CSRF saldırılarını engellemeye yardımcı olur.

Örnek bir SameSite çerez tanımı şu şekilde olabilir:


setcookie('user_session', $sessionValue, [
    'expires' => time() + 3600,
    'path' => '/',
    'domain' => 'example.com',
    'samesite' => 'Strict',  // CSRF saldırılarını engellemek için
    'secure' => true,
    'httponly' => true
]);


# 3. Referer ve Origin Kontrolü

Her istekte, tarayıcı, referer veya origin başlıkları gönderir. Sunucular, bu başlıkları kontrol ederek, isteğin güvenli bir kaynaktan gelip gelmediğini anlayabilir. Eğer istek, güvenilir olmayan bir kaynaktan geliyorsa, işlem reddedilebilir.

CSRF Saldırılarının Ciddi Sonuçları

CSRF saldırıları, kullanıcıların hesap bilgilerini çalmak, ödeme işlemleri gerçekleştirmek ve daha pek çok kötü niyetli işlem yapmak için kullanılabilir. Web uygulamanızda bir güvenlik açığı varsa, bu saldırılar sonucunda çok ciddi maddi ve itibar kayıpları yaşayabilirsiniz.

Unutmayın, CSRF'ye karşı savunmasız bir uygulama, kötü niyetli kişilere fırsat verir ve bu da kullanıcılarınızın güvenini zedeler. Güvenliği artırmak için web uygulamanızda gerekli önlemleri almayı ihmal etmeyin!

Sonuç

Web güvenliği bir parmaklık mesafede olabilir. Bir anlık dikkatsizlik, büyük bir güvenlik açığına yol açabilir. Ancak, doğru önlemlerle web uygulamanızı güvence altına alabilirsiniz. CSRF, tıpkı bir casus gibi gizlice köşelerden gelebilir, fakat güçlü bir güvenlik duvarıyla onu durdurmak mümkündür. Bu yazıda öğrendiklerinizi uygulayarak, kullanıcılarınızın güvenliğini sağlamak ve web uygulamanızda olası tehlikeleri ortadan kaldırmak tamamen sizin elinizde.

İ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....