1. HTTPS Kullanımı ve SSL Sertifikası
a) HTTPS Nedir ve Neden Önemlidir?
HTTPS (HyperText Transfer Protocol Secure), web siteniz ile ziyaretçileriniz arasındaki veri iletimini şifreleyen bir protokoldür. Google ve diğer arama motorları HTTPS kullanan sitelere öncelik vermektedir. Ayrıca, kullanıcı güvenini artırmak ve hassas verilerin korunmasını sağlamak için HTTPS kullanımı zorunludur.
b) SSL Sertifikası Nasıl Alınır?
- Ücretsiz SSL: Let’s Encrypt gibi ücretsiz SSL sağlayıcıları kullanabilirsiniz.
- Ücretli SSL: Comodo, DigiCert ve GlobalSign gibi güvenilir sağlayıcılardan daha yüksek güvenlikli SSL sertifikaları temin edebilirsiniz.
- WordPress ve Hosting Çözümleri: Çoğu hosting sağlayıcısı (Örn: Turhost, Veridyen, Natro) SSL sertifikası desteği sunmaktadır.
c) SSL Kurulumu ve Zorunlu HTTPS Yönlendirmesi
Kurulumu tamamladıktan sonra, tüm trafiği HTTPS’ye yönlendirmek için .htaccess
dosyanıza aşağıdaki kodu ekleyebilirsiniz:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
2. SQL Injection Saldırılarını Önleme
SQL Injection, kötü niyetli kişilerin web sitenizin veritabanına yetkisiz erişim sağlamak için kullandığı bir saldırı türüdür. Türkiye’de birçok küçük ve orta ölçekli işletme, güvenlik açıkları nedeniyle bu tür saldırılara maruz kalmaktadır.
a) SQL Injection Nasıl Çalışır?
Bir saldırgan, giriş formlarına veya URL parametrelerine zararlı SQL kodları enjekte ederek veritabanına erişmeye çalışır. Örneğin, şu şekilde bir giriş noktası varsa:
SELECT * FROM users WHERE username = '$username' AND password = '$password';
Saldırgan username
alanına şu sorguyu girerse:
' OR '1'='1
Sorgu şu hale gelir:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';
Bu durumda saldırgan herhangi bir şifre girmeden giriş yapabilir.
b) SQL Injection’dan Korunma Yöntemleri
- Hazırlıklı Sorgular (Prepared Statements) Kullanımı
PHP için güvenli bir SQL sorgusu şu şekilde olmalıdır:
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->execute(['username' => $username, 'password' => $password]);
Bu yöntem, kullanıcı girdilerini güvenli hale getirerek SQL Injection saldırılarını engeller.
- Girişleri Filtreleme ve Doğrulama
- Kullanıcı girdilerini sanitize (temizleme) ve validate (doğrulama) edin.
htmlspecialchars()
vemysqli_real_escape_string()
gibi fonksiyonlar kullanabilirsiniz.
- Web Uygulama Güvenlik Duvarı (WAF) Kullanımı
- Cloudflare, Sucuri ve ModSecurity gibi çözümler SQL Injection saldırılarını engelleyebilir.
3. Ekstra Güvenlik Önlemleri
a) Güçlü Parola ve Yetkilendirme
- Yönetici panellerine giriş için karmaşık şifreler kullanın.
- İki Faktörlü Kimlik Doğrulama (2FA) kullanarak ekstra güvenlik katmanı ekleyin.
b) Güvenlik Güncellemeleri ve Yedekleme
- WordPress, Joomla gibi CMS sistemlerini güncel tutun.
- Veritabanı ve dosya sisteminizi düzenli olarak yedekleyin (Günlük/Haftalık).
c) Kötü Amaçlı Botları Engelleme
robots.txt
dosyanızda kritik dizinleri engelleyerek botların erişimini kısıtlayın.- reCAPTCHA kullanarak spam bot saldırılarını önleyin.
Sonuç
Türkiye’deki web siteleri için temel güvenlik önlemleri arasında HTTPS kullanımı, SQL Injection önleme, güncellemelerin düzenli yapılması ve güvenlik duvarları büyük önem taşır. Web güvenliğinizi artırarak hem kullanıcılarınıza güvenli bir deneyim sunabilir hem de işletmenizi siber tehditlerden koruyabilirsiniz.
Güvenliğinizi artırmak için yukarıdaki adımları uygulamaya hemen başlayın. Görüşmek üzere! 🚀