Sık korsan saldırıları, internette iş yapan herkes için web güvenliğinin en önemli sorun olmaya devam ettiğini kanıtlıyor. Sunucular, depoladıkları bilgiler nedeniyle çoğu zaman bu saldırıların hedefidir. Bu nedenle güvenilir sunucu koruması sağlamak gereklidir.
Apache'de PHP Güvenliğini Sağlama
"phpinfo()" protokolünü başlatın ve "open_basedir" komutu ile satırı kontrol edin. Bu komutla tüm kullanıcılar için temel dizini tanımlayabilirsiniz. Bu değeri ayarladıktan sonra, artık bu kök klasörün veya "C: / Windows" gibi alt dizinlerinin dışındaki dosyaları açamazlar.
Başka yapısal dizinleriniz varsa, bunları "www_root" komutuyla temel dizin olarak tanımlayın. Ancak, bir kullanıcı başka bir kullanıcının dosyalarını da okuyabilir ve değiştirebilir. Bu önlenmelidir.
Ne yazık ki, php.ini dosyasında bir kullanıcının diğerinin verilerine erişmesini engellemek için hiçbir seçenek yoktur.
Ancak PHP, Apache üzerinde çalışıyorsa ilginç bir yol var. phpinfo'da () iki sütun bulacaksınız: Birincil Değer ve Yerel Değer. Birincisi "php.ini" içindeki değerdir. İkincisi ise sunucu çalışırken belirlenen bir değerdir.
Ana değer sayısal olarak küçükse, "ini_set ()" komutu kullanılarak komut dosyasında değiştirilebilir. Bu, "open_basedir" için geçerli değildir, çünkü bu değer güvenlik açısından kritiktir ve yalnızca bir yönetici tarafından değiştirilebilir.
Apache'de, "httpd.conf" yapılandırma dosyası, kılavuzda "open_basedir" yerel değeri altında belirtilebilir.
Diğer PHP ayarları
"php.ini" dosyasında "disable_functions" öğesini ayarlayarak, potansiyel olarak tehlikeli olan işlevleri devre dışı bırakmalısınız.
Yaptığınız her eylemi dikkatlice düşünün. İşlevi devre dışı bırakmak, bazı komut dosyalarının çalışmayı durduracağı anlamına gelir.
Bazı özellikler gerçekten tehlikelidir ve genellikle komut dosyası yazmak için gerekli değildir. Diğerlerine belirli amaçlar için ihtiyaç duyulabilir. Bu nedenle, tehlikeli olabilecek tüm işlevleri devre dışı bırakmak kolay değil, aynı zamanda kararlarınızı dikkatlice tartın.
"safe_mode = On" işlevinin tek başına yeterli olacağına inanmayın. Bazı yararlı özellikleri devre dışı bırakabilir ve yukarıda açıklanan güvenlik sorununu çözmeyebilir. Güvenli mod PHP 5.3.0'da kullanımdan kaldırılmıştır ve PHP 6.0.0'da kaldırılmıştır.
Koruma sorunları
Bir web geliştiricisinin yapabileceği ve bir web sitesini güvensiz hale getirebileceği birkaç hata vardır.
Örneğin, blogunuzu oluşturur ve kullanıcıların resim yüklemesine izin verirseniz, kod yeni başlayanlar tarafından yazıldığında bu ciddi bir tehlike olabilir. Bir programcının oturum açma sayfasında vb. yapabileceği birkaç hata vardır. En yaygın olanlardan biri, kötü amaçlı algoritmaları indirme yasağının olmamasıdır.
Önemli olan nokta, herkese açık barındırmada güvenli olmayan bir sitenin tüm sunucu için bir tehdit oluşturmasıdır. Ayrıca PHP-Nuke gibi Açık Kaynak projeleri kurmak riskli olabilir. Benzer projelerdeki çeşitli güvenlik açıkları zaten keşfedildi.