Merhaba arkadaşlar
Bugun sizlere php kodlamalarımızda dikkat etmemiz gerek guvenlik unsurlarından bahsedeceğim.
Konunun takip edilmesi beğenilmesi soz konusunu olursa konu hakkında devam dersleri yazmayı duşunuyorum.
Dersimize başlayalım
Oncelikle tum kod yazan insanların -insan olmasından kaynaklanan bir durum olduğu icin- hata yapabileceği inancındayım.Ne kadar uzman olursa olsun ne kadar uzun tecrubelere sahip olursa olsun hata kacınılmazdır.Bu hata bazen kritik seviyede bir acık barındırır,bazen de basit bir notice dir.
Php scriptlerimizi kodlarken hatalarımızı gormek icin error_reporting() fonksiyonunu kullanılırız.
Kod:
ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); ini_set('error_log', '/usr/local/apache/logs/error_log');

bu şekilde kullandığınızda hatadan haberdar olursunuz ama hatayı ekrana basmayacaktır.
Kotu niyetli kişilerin "heker,Attacker" vs kullandığı ilk yontem siteyi hata vermeye zorlamaktır.Hata alırsa aldığı hata neticesinde kullanabileceği acıkları aramaktadır.Sql İnj. Xss vs gibi...
Guvenlik bir butundur ve hataların ekrana basılmaması hatanın olmadıgı anlamına gelmez.Bu hataların ivedilikle onem derecesine gore duzeltilmesi gerekir.
Php sizlere başka bir fonkisyon daha sunmaktadır.
Kod:
function my_error_handler($number, $string, $file, $line, $context) ?>

Burada posttan gelen filename'i doğrudan filename değişkenine atayıp o şekilde kullanırsak ve filename bize posttan .../.../etc/passwd şeklinde gelirse ne olur?
Sunucumuzda bulunan tum hesapların pass hashlerinin tutulduğu dosyaya erişim sağlamaz mı?
peki basit bir while dongusu ve strpos ve str_replace fonksiyonlarımızı kullanarak ne yapıyoruz. gelen veriyi filtreliyoruz.Dolayısıyla başlangıc seviyesinde de olsa bir guvenlik tedbiri alıyoruz.
En kısa surede yeni dokuman ile karşınızda olacağım.
Sorusu olanlara bu başlığın altından seviyeli bir şekilde sorabilir.