Apache ve PHP Config Dosyaları Zafiyetleri
Developer, apache ve php ile varsayılan olarak gelen bazı ayarları güvenlik önlemi almak için değiştirmelidir. Ayar dosylarının dizinlerinden ve hangi ayarların nerelerde bulunduğundan bahsedelim.
Php config dosyaları /etc/php/7.0/ dizininde bulunur. Bu dizinde;
apache2 dizinindeki ayarlar daha çok log içindir.
cli(client) : Dosyasında istek yapan makine tarafındaki ayarlar bulunur.
php.ini : Php ayarlarının değiştirme config dosyasıdır.
Apache config dosyaları /etc/apache2 dizininde bulunur.
Apache birden fazla domain klasörünü içinde barındırır. Bu klasörler için ayarlar default.conf da yapılır. Apache dosyaları var/www/html dizininde tutar.
Örnek: php.ini dosyasında, tüm hataları göster(error-reporting=E-ALL
) ayarı default olarak gelir. Saldırgan hata mesajlarına ulaşmamalıdır. Hata mesajlarından kodları tahmin edebilir ve buna göre hareket edebilir. Bunun önüne geçmek için hataları gösterme(error-reporting= ~E-ALL
)olarak ayarı güncellemeliyiz (Yapılan bu değişiklikleri web server tarafında da güncellemek için apache servisini tekrar başlatmamız gerekir).
Session ve Cookie Farkı
Bu kavramların kullanımındaki zafiyetler oldukça fazladır.
Cookie(çerez) : Her seferinde bilgi almakla uğraşmamak için bilgiler bir seferde alınır ve bu bilgiler çerezde tutulur.
Session(oturum) : Cookie ile alınan verinin sayfalar arasında aynı kişi olup olmadığının kontrolünü yapmak için kullanılır. Oturum açılır ve kontrol yapılır.
Php, cookie için 26 karakterlik random olarak bir değer oluşturur. Sessionların tutulduğu yerde(var/lib/php/session) bu dosyayı oluşturur. Response paketi dönerken bu cookie gönderilir. Bu cookie bilgisine göre yetki kontrolü session ile yapılır. Bir sonraki sayfa ziyaretinde (tekrar istek yapıldığına) bu bilgi ile kontrol edip yönlendirme yapılır.
Kod formatı;sess_{_27karaktelik random kod_}