PHP nedir?
PHP, web siteleri için en yaygın kullanılan sunucu tarafı betik dillerinden biridir. WordPress, Joomla ve Laravel gibi pek çok uygulama PHP ile yazılmıştır. Kod sunucuda çalışır, sonuç olarak üretilen HTML tarayıcıya gönderilir.
Hosting ortamlarında PHP’nin sürümü ve yapılandırması, hem sitenizin çalışmasını hem de güvenliğini doğrudan etkiler. Destek süresi dolmuş bir sürüm, yeni açıklar için güvenlik yaması almaz.
Nasıl çalışır?
Web sunucusu bir .php dosyası istendiğinde bunu PHP yorumlayıcısına iletir. Modern kurulumlarda bu iş çoğunlukla PHP-FPM adlı süreç yöneticisiyle yapılır.
- Her sitenin kendi kullanıcısıyla çalışan ayrı bir havuzu olabilir.
- Ayarlar
php.inive ona bağlı dosyalarda, hosting panelinde ise arayüzden yönetilir. - Kullanılan sürüm, siteden siteye farklı seçilebilir.
Sunucu ve hosting ortamında
cPanel’de MultiPHP Manager, Plesk ve DirectAdmin’de benzer araçlar her alan adı için ayrı PHP sürümü seçmenize izin verir. Eski bir uygulama yüzünden sürümü sabitlemek cazip olsa da, bu uygulamanın güncellenmesi uzun vadede daha güvenli yoldur.
Paylaşımlı sunucularda disable_functions ve open_basedir gibi ayarlar, ele geçirilen bir betiğin yapabileceklerini sınırlar. Hata mesajlarının ziyaretçiye gösterilmemesi de önemli bir ayrıntıdır.
Nasıl korunulur?
- Desteği süren bir PHP sürümünü kullanın ve yeni sürümlere geçişi planlayın.
- Üretim ortamında
display_errorsayarını kapatın, hataları log dosyasına yazdırın. expose_phpdeğerini kapatarak sürüm bilgisini gizleyin.- Kullanılmayan tehlikeli işlevleri
disable_functionsile kısıtlayın (uygulamanıza uygun olanı seçin). - Yüklenen dosyaların çalıştırılmasını engelleyin; yükleme dizinlerinde PHP yürütmeyi kapatın.
- Uygulamayı ve eklentileri güncel tutun.
Sık yapılan hatalar
- Sitenin çalışması için eski ve desteği biten bir sürümde kalmak.
- Hata ayıklama çıktısını canlı sitede açık bırakmak.
- Dosya yükleme alanlarında tür ve konum kontrolü yapmamak.
phpinfo()sayfasını web kökünde bırakmak.
Sık sorulan sorular
PHP sürümümü nasıl değiştirebilirim?
Hosting panelinizdeki PHP sürüm seçici (cPanel’de MultiPHP Manager gibi) üzerinden alan adı bazında değiştirebilirsiniz. Değişiklikten önce yedek alıp sitenizi test etmeniz önerilir.
PHP sürümü güncel değilse ne olur?
Destek süresi bitmiş sürümler artık güvenlik yaması almaz; yeni keşfedilen açıklar kapatılmaz. Bu, sitenizin ele geçirilme riskini zamanla artırır.
PHP-FPM ne işe yarar?
PHP isteklerini web sunucusundan ayrı süreçlerde işleyen, havuz bazlı yönetim ve kaynak kontrolü sunan bir arayüzdür. Daha iyi performans ve site bazlı yalıtım sağlar.
Bu terimin geçtiği rehberler
- Memcached kurulumu ve güvenliğiMemcached önbellek sunucusunu Debian ve RHEL tabanlı sistemlere kurma, UDP kapatma, bind adresi ve güvenlik duvarıyla erişimi kısıtlama ve SASL notlarını içeren güvenli kurulum rehberi.
- Dosya yükleme güvenliği: uzantı, MIME, depolama ve çalıştırma engeliDosya yükleme formlarını güvenli hale getirin: uzantı beyaz listesi, gerçek MIME denetimi, rastgele dosya adı, web kökü dışında depolama ve yükleme dizininde betik çalıştırmayı engelleme.
- XSS önleme ve CSP ile site savunmasıSiteler arası betik çalıştırma (XSS) saldırılarını çıktı kaçışı, güvenli çerezler ve Content-Security-Policy başlığıyla önleyin; Nginx ve Apache örnekleri ve Report-Only ile güvenli geçiş.
- SQL enjeksiyonunu önleme: hazır sorgular (prepared statements) ve doğrulama (PHP PDO örnekleriyle)SQL enjeksiyonunu PHP PDO hazır sorgularıyla önleyin: parametre bağlama, beyaz liste ile ORDER BY, IN listeleri, en az yetkili veritabanı kullanıcısı ve saldırı denemesiyle doğrulama.
İlgili terimler
- PostfixPostfix, Linux sunucularda e-posta gönderme ve alma işini yürüten, güvenliği ve modüler yapısıyla bilinen açık kaynaklı bir MTA yazılımıdır.
- PostgreSQLPostgreSQL, işlem bütünlüğüne ve standartlara bağlılığıyla bilinen, açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir.
- RedisÖnbellek ve oturum deposu olarak yaygın kullanılan bellek içi veri deposu.
- RoundcubeHosting panellerinde sık bulunan, web tabanlı e-posta istemcisi.
- WordPressDünyada en yaygın kullanılan içerik yönetim sistemi (CMS).
- Apache HTTP ServerDünyada en yaygın kullanılan açık kaynaklı web sunucularından biri.