Referer kullanımını nasıl test edersin? Önemli isteklerde referer kısmını silip ve değiştirip tekrar gönderilebilir. Eğer istek cevap veriyorsa uygun şekilde veya isteğin beklediği şekilde referer yazılabilir. Testleri önce yetkili bir kullanıcı ile sonra da yetkisiz bir kullanıcı ile yapmak gerekir. Eğer yetkisiz kullanıcı Referer’i yetkili kullanıcının kullandığı şekilde değiştirir de sonuç alırsa savunmasızdır.
Öncelikle aynı id ile benzer php dosyalarına erişmeyi deneyebiliriz.MyAccount değil de listAllUsers.php gibi common sayfaları deneyebilir. Veya adminPanel.php gibi noktaları deneyebiliriz. Daha sonra bu myAccount.php urlsine paramtere olarak admin=true gibi veriler ekleyip sonuçları gözlemlemeye çalışırız. Bu da işe yaramazsa verdiğimiz id’yi değiştirip farklı sayılar girmeye çalışırız. Farklı id’leri arttırıp azaltarak başka kullanıcıların sayfasına girip giremediğimizi kontrol ederiz. Son olarak da bir hesabın id’sini kullanarak diğer hesaptan erişmeye çalışırız. Eğer erişebilirsek bu session bağlı değil demektir ve zayıflık gösterir.
Ip bakarak kısıtlamayı VPN ile aşabiliriz. Veya geçerli alandaki bir IP’ye sahip proxy veya cihaz ile de bağlantı sağlayabiliriz. Bu yüzden IP’ye bağlı erişim güvenli değildir.Başka bir kullanıcının IP adresini taklit etmek mümkündür, ancak pratikte bu çok zor olabilir. Daha da önemlisi, İnternet’teki farklı son kullanıcılar, aynı web proxy’si veya NAT-ting güvenlik duvarının arkasındaysa aynı IP adresini paylaşabilir. Bu durumda IP tabanlı erişim kontrollerinin etkili olabilmesinin bir yolu, yönetim işlevlerine erişmeye çalışan kullanıcıların kuruluşun iç ağında bulunmasını sağlamak için kapsamlı bir savunma önlemidir. Bu işlevler, elbette, sağlam kimlik doğrulama ve oturum işleme mekanizmalarıyla korunmalıdır.
Öncelikle alt katmanlarda güvenlik ve yetki kontrolleri sağlandıktan sonra uygulama katmanında veri girişi yapacak admin kullanıcısı için erişim yetkilendirmesi ve kontrolü yapılmalıdır. Bunun dışında kullanıcıların sayfaları ve bilgileri düzenlemesine sebep olabilecek url ve sayfaların erişim kontrolüne tabi tutulması ve admin session yapısı gibi güvenli bir giriş yapısı kurulması gerekir.Örneğin, kullanıcıların yalnızca verilere okuma erişimine ihtiyaç duyması nedeniyle, uygulama veritabanına yalnızca ilgili tablolara salt okunur izinlere sahip düşük ayrıcalıklı bir hesap kullanarak erişmelidir.
Çünkü yetkisiz erişimle ulaşılabilen sayfalar ve isimleri belli şablonlarla oluşturulmuş olabilir. Eğer bu şablonu anlayabilirsek sunucu tarafındaki bütün statik dosyalara erişim imkanımız olur.