Merhaba değerli forum okuyucuları ben @ZeroPulse.
Bu yazıda, web yazılımlarının geliştirilmesi sırasında dikkat edilmesi gereken temel güvenlik önlemlerinden bahsedeceğim. Anti-injection, Anti-XSS, CSRF korumaları ve dosya yüklenme güvenliği gibi önemli konuları ele alacağız. Umarım bu bilgiler işinize yarar!
LOJİSTİK & GREEN TİM SUNDU
Bu yazıda, web yazılımlarının geliştirilmesi sırasında dikkat edilmesi gereken temel güvenlik önlemlerinden bahsedeceğim. Anti-injection, Anti-XSS, CSRF korumaları ve dosya yüklenme güvenliği gibi önemli konuları ele alacağız. Umarım bu bilgiler işinize yarar!
1. Anti-Injection (SQL Injection Koruması)
SQL Injection, zararlı kodlarla veritabanınızı manipüle etmeyi hedefleyen bir saldırı türüdür. Peki, bu tehditten nasıl korunabiliriz?- Hazır sorgular (Prepared Statements): Veritabanı sorgularınızı hazır ifadelerle oluşturun. Bu yöntem, gönderilen parametrelerin doğruluğunu garanti eder.
- ORM Kullanın: Laravel'in Eloquent'i veya Hibernate gibi bir ORM aracı, veritabanı sorgularını otomatik olarak güvende tutar.
- Girdi Doğrulama: Kullanıcıdan gelen her veriyi kontrol edin. Sayılı veriler için is_numeric, metinler için regex kullanabilirsiniz.
Bir giriş formunda kullanıcıdan alınan veriyi aşağıdaki şekilde sorguya ekleyebilirsiniz:
PHP:$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$_POST['email']]);
2. Anti-XSS (Cross-Site Scripting Koruması)
XSS saldırıları, kullanıcı tarayıcısına zararlı script kodları yerleştirmeyi amaçlar. Peki, bu riskten nasıl kurtuluruz?- HTML önizlemesi için sanitize işlemi: Kullanıcıdan gelen verileri HTML önizleme yapmadan önce temizleyin. PHP için htmlspecialchars() veya özel kütüphaneler işe yararlı olabilir.
- Content Security Policy (CSP): Tarayıcınıza sadece belli kaynaklardan kod çalıştırmasını söyleyin. Bu, zararlı scriptlerin çalışmasını engeller.
- DOM Manipülasyonunu Sınırlandırın: Kullanıcı verilerini direkt DOM'a eklemek yerine, özel önlemler alın.
Bir yorum sistemi için kullanıcı girdisini temizleyebilirsiniz:
PHP:$comment = htmlspecialchars($_POST['comment'], ENT_QUOTES, 'UTF-8'); echo $comment;
3. CSRF Koruması (Cross-Site Request Forgery)
CSRF, kullanıcının tarayıcısından habersiz şekilde çağrılan yetkisiz işlemleri kapsar. Bu tehditi azaltmak için:- CSRF Token: Her form isteğinde benzersiz bir token kullanın. Laravel ve Django gibi çatılar bu konuda yerleşik destek sağlar.
- Referer Kontrolü: Sunucu, isteğin geldiği URL'yi kontrol ederek, güvenilir kaynaklardan geldiğinden emin olabilir.
- Kullanıcı Oturumlarını Bağlama: Oturum bilgilerinin IP veya tarayıcı bilgileriyle eşleşmesini zorunlu kılın.
PHP'de bir CSRF token ekleyebilirsiniz:
PHP:$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
Formda kullanımı:
HTML:<input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
4. Dosya Yüklenme Güvenliği
Dosya yüklenmesi, potansiyel olarak sisteminize zararlı kodlar bulaştırabilir. Güvenli bir dosya yükleme için:- Dosya Türü Kontrolü: Yüklenilen dosyanın MIME türünü kontrol edin. Sadece izin verdiğiniz dosya türlerine izin verin.
- Dosya İsmi Değiştirme: Dosya isimlerini rastgele UUID veya hash değerleriyle değiştirin. Bu, dosya yüklenirken çakışmaları önler.
- Yüklenme Dizini Kontrolü: Dosyaları sadece public olmayan, izole dizinlerde saklayın.
Bir dosya yükleme işleminde güvenlik önlemleri alabilirsiniz:
PHP:$allowed_types = ['image/jpeg', 'image/png']; if (in_array($_FILES['file']['type'], $allowed_types)) { move_uploaded_file($_FILES['file']['tmp_name'], '/uploads/' . uniqid() . '.jpg'); } else { echo "Dosya türü desteklenmiyor."; }
Bu yazıda, web yazılımları geliştirirken güvenliğinizi nasıl artırabileceğinizi özetledim.
Umarım faydalı olmuştur. Konuyla ilgili sorularınızı ya da deneyimlerinizi yorumlarda paylaşabilirsiniz!
Keyifli kodlamalar!
Umarım faydalı olmuştur. Konuyla ilgili sorularınızı ya da deneyimlerinizi yorumlarda paylaşabilirsiniz!
Keyifli kodlamalar!
LOJİSTİK & GREEN TİM SUNDU





