1- kullanıcı tarafından gelen tüm verileri filtreleyiniz. Kullanılabilecek bazı fonksiyonlar ;
strip_tags,
htmlspecialchars,
addslashes fonksiyonları bunlardan bir kaçıdır.
2- php.ini dosyanızın iyi bir şekilde yapılandırılmış olması gerekir. Özellikle dikkat edilmesi gereken ve aşağıdaki şekilde ayarlanması gereken özellikler ;
allow_url_include = off
disable_functions = system, dl, shell_exec, shell, proc_close, proc_get_status, chown, chgrp, escapeshellarg, fileread, passthru, proc_open, proc_get_status, posix_getpwuid, array_compare, array_user_key_compare, ini_restore, proc_nice, fin, pconnect, exec
display_errors = off
enable_dl = off
safe_mode = on
register_globals = off
Mümkün olduğunca sunucunuzda phpnin son sürümlerinden bir versiyon çalışsın.
Veri tiplerini iyi analiz edin. Bir değişkenin sayısal değer ile gelmesini bekliyorsanız, o değer sadece sayısal değer ile gelebilsin.
Ayrıca, ilk düşünüldüğünde saçma gelebilecek garip açıklarda mevcut. Örneğin formlarda direkt olarak $_SERVER['PHP_SELF'] kullanmayın. Bununla ilgili sitemde bir makale yazmıştım.
http://www.sametozden.com/Formlarda_...-sayfalar.html
SESSION çalınmalarına karşı dikkatli olunuz. Sadece kullanıcının session u var diye o sessiona sahip kişi, düşündüğünüz kişi olmayabilir. session u kontrol ederken ıp adresi ve tarayıcınında doğruluğunu kontrol ediniz.
Şimdilik bu kadar