Apache web sunucusunda PHP kullanarak kişiselleştirilmiş hata sayfası oluşturma

Başlık uzun, yöntem kısa…

Hepimiz biliyoruz, web sunucudan olmayan bir sayfa istendiğinde “genelde” “HTTP 404″ kodlu sayfa bulunamadı hatası alıyoruz. Biz kendi web sunucumuzda ufak bir PHP betiği yardımıyla, olmayan sayfa istendiğinde web sunucumuzun istemcilere “HTTP 200″ kodu kişiselleştirilmiş hata sayfaları (Custom error page) göndermesini sağlayabiliriz.

Bunun için önce Apache web sunucumuzun httpd.conf yapılandırma dosyasına aşağıdaki gibi bir satır ekleyerek, “HTTP 404″ kodlu hata durumlarında bizim php betiğimizi çağırmasını sağlıyoruz:

# Ozellestirilmis Hata Sayfasi
ErrorDocument 404 /error-404.php

Şimdi de basit PHP betiğimizi DocumentRoot altında error-404.php olarak kaydedelim:

<?php
header("HTTP/1.1 200 OK");
echo $_SERVER['REQUEST_URI']. " Aradiginiz sayfa bulunamadi.";
?>

Bu küçük PHP betiği sayesinde web sunucu üzerinde olmayan bir URI istendiğinde de HTTP 200 kodlu bir sayfa döndürmüş olursunuz. Bu sayede nikto vb. tarama araçlarını yanıltmak da mümkün olacaktır.

Yapılan bir HTTP isteği ve yanıtı şöyle olacaktır:

$ telnet web_sunucu 80
Trying web_sunucu…
Connected to web_sunucu.
Escape character is ‘^]’.
GET /olmayan_sayfa HTTP/1.1
HOST: a

HTTP/1.1 200 OK
Date: Sat, 29 Aug 2009 14:12:45 GMT
Server: Apache
X-Powered-By: PHP
Vary: Accept-Encoding
Content-Length: 43
Content-Type: text/html

/olmayan_sayfa Aradiginiz sayfa bulunamadi.

Etiketler: , , , , , , ,

“Apache web sunucusunda PHP kullanarak kişiselleştirilmiş hata sayfası oluşturma” için 3 Yorum

  1. Mesut diyor ki:

    Selam, bu PHP kodunda XSS zafiyeti var, $_SERVER['REQUEST_URI'] ‘yi ekrana bastirmadan once filtrelemeniz gerekiyor.

  2. admin diyor ki:

    Çevre değişkenlerine de güvenemiyoruz artık değil mi :)
    bir ara uygun bir çözüm yazarım buraya.

Yorum yapın