XSS Nedir?
Örneğin: Bir formda kullanıcıdan alınan verilerin doğru şekilde işlenmemesi, saldırganın kötü amaçlı JavaScript kodları eklemesine olanak tanır. Bu da hem kullanıcıları tehlikeye atar hem de web uygulamasının güvenliğini ciddi şekilde zayıflatır.
CSRF Nedir?
Örneğin: Bir bankacılık uygulamasına giriş yapan bir kullanıcı, aynı anda başka bir kötü amaçlı web sitesini ziyaret ettiğinde, saldırgan bu site aracılığıyla bankacılık uygulamasındaki hesabına para transferi yapabilir.
XSS ve CSRF’den Korunma Yöntemleri
- Veri Temizleme ve Doğrulama: Kullanıcıdan gelen tüm veriler mutlaka temizlenmeli ve doğrulanmalıdır. Bu, kötü niyetli JavaScript kodlarının çalıştırılmasını engelleyecektir.
- HTML Encode Etme: Veritabanından gelen veriler doğrudan HTML’e eklenmeden önce encode edilmelidir. Böylece, kullanıcı tarafından gönderilen özel karakterler doğru bir şekilde işlenir.
- Content Security Policy (CSP) Kullanımı: CSP, sayfanın hangi kaynaklardan JavaScript kodu yüklemesine izin verileceğini belirler. Bu, saldırganların zararlı kodları yüklemesini engeller.
Örnek Kod:
echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');# 2. CSRF Korunma Yöntemleri
- SameSite Çerez Özelliği: Çerezler üzerinde “SameSite” özelliği kullanarak, yalnızca aynı site içerisindeki formların geçerli olmasını sağlayabilirsiniz.
- HTTP Başlıkları ile Doğrulama: Bazı uygulamalar, gelen isteklerin doğru kaynaktan olup olmadığını kontrol etmek için özel HTTP başlıkları kullanır.
Örnek Kod (Laravel):
// CSRF Token'ı Laravel'de otomatik olarak formda ekler
Laravel’de XSS ve CSRF Koruması
Ayrıca, Laravel’in Blade şablon motoru, HTML encode işlemini otomatik olarak yapar, böylece XSS saldırılarına karşı güçlü bir koruma sağlar.
Sonuç
Eğer yazılım geliştiriyorsanız, bu güvenlik açıklarını önlemek için doğru araçları kullanmalı ve her zaman kullanıcı verilerini doğru şekilde işleme konusunda dikkatli olmalısınız. Unutmayın, güvenlik bir defalık bir iş değil, sürekli takip edilmesi gereken bir süreçtir.