Apache Modülü olarak Kurulum

PHP Apache modülü olarak kullanıldığında, Apache'in kullanıcı izinlerini alır (genel olarak "nobody" kullanıcısının"). Bunun güvenlik ve doğrulama işlemlerine birkaç etkisi vardır. Örneğin, PHP ile veritabanına erişiyorsanız, veritabanı önyüklü bir erişim kontrolüne sahip olmadığı sürece, veritabanını "nobody" kullanıcısı tarafından erişilebilir halde tutmanız gerekir. Bunun anlamı kötü niyetli bir uygulama kullanıcı ve parola dahi kullanmadan veritabanına erişip üzerinde değişiklik yapabilir demektir. Bir web örümceğinin veritabanındaki bütün yönetici web sayfalarını alması ve veritabanınızı komple yok etmesi mümkündür. Bundan Apache doğrulama sistemini kullanarak korunabilirsiniz, ya da örneğin LDAP kullanarak kendi erişim modelinizi oluşturabilir, .htaccess kullanabilir vb. ve bu kodu kendi PHP uygulamalarınıza ekleyebilirsiniz.

Sıklıkla, bir defa PHP kullanıcısı (bu durumda, apache kullanıcısı) çok az riskle çalışır hale getirildiğinde, PHP kullanıcı klasörlerine yazamaz hale gelir. Ya da belki veritabanlarına erişim ya da işlem yapma hakkını kaybetmiştir. PHP iyi ve kötü dosyalara, iyi ve kötü veritabanı işlemlerine eşit derecede güvenlik uygular.

Bu noktada sıklıkla yapılan bir güvenlik hatası, apache'a root kullanıcı izni vermek, ya da Apache'in sınırlarını farklı bir yolla genişletmektir.

Apache kullanıcısının izinlerini root seviyesine çıkartmak oldukça tehlikelidir ve bütün sistemi etkileyebilir. Bu nedenle sudo, chroot, ve diğer root olarak çalıştırma işlemleri, güvenlik uzmanları tarafından tercih edilmemesi gereken yöntemlerdir.

Daha basit bazı çözümler mevcuttur. open_basedir kullanarak PHP tarafından kullanılabilecek klasörleri kontrol edebilir ve kısıtlayabilirsiniz. Aynı şekilde yalnızca Apache tarafından erişilebilecek alanları ayarlayabilir, böylece bütün web tabanlı aktiviteyi kontrol altına alabilirsiniz.