Ders 5.5: Siteler arası istek sahteciliği (CSRF)
Aynı köken ilkesi diğer sitelerin yanıtlarını okumasını durdurur, ama senin adına istek göndermelerini durdurmaz: tarayıcı, başka bir sitenin gönderdiği bir forma senin çerezlerini ekler. Bu, siteler arası istek sahteciliğidir. Bir saldırganın bir kurbanın e-posta adresini nasıl değiştirdiği ve ardından 'parolamı unuttum' üzerinden hesabı nasıl ele geçirdiği ve savunmalar: hash_equals ile kontrol edilen oturuma özel gizli belirteçler, SameSite çerezler, Origin kontrolleri ve hassas değişikliklerde parolayı yeniden istemek. Laboratuvarda mağazanın e-posta değiştirme formu zaten kimsenin kontrol etmediği bir belirteç içeriyor. İsteği sahteliyor, kontrolü ekliyor ve sahte isteğin başarısız olduğunu, gerçek formun ise çalışmaya devam ettiğini kanıtlıyorsun.
18 dk
Bu derste öğreneceklerin
- CSRF'yi ve aynı köken ilkesinin onu neden durdurmadığını açıklamak
- Bir CSRF belirtecinin nasıl çalıştığını açıklamak
- Bir belirteci hash_equals ile güvenle kontrol etmek
- SameSite'ın ve Origin kontrollerinin rolünü açıklamak
- Bir CSRF düzeltmesini iki yönde kanıtlamak
Temel terimler
- Siteler arası istek sahteciliği (CSRF)
- Giriş yapmış bir kullanıcının tarayıcısına, kullanıcı istemeden, başka bir sitede bir şeyi değiştiren bir istek göndertmek.
- CSRF belirteci
- Oturuma bağlı ve her meşru forma eklenen gizli rastgele bir değer; sunucu, onu içermeyen durum değiştirici istekleri reddeder.
- hash_equals
- İki dizgeyi sabit sürede karşılaştıran PHP fonksiyonu.
- Durum değiştiren istek
- Veriyi değiştiren bir istek: satın almak, silmek, ayarları değiştirmek. Asla bir GET olmamalıdır.
- Yeniden kimlik doğrulama
- E-posta, parola ya da ödeme bilgileri gibi hassas değişikliklerden önce parolayı (ya da çok faktörlü doğrulamayı) yeniden istemek.
← Çekirdek ve AppArmor sağlamlaştırması · Tüm dersler · Uygulamada TLS →