Kapat

PHP de yazılmış bir uygulamanın en zayıf noktası, dilin kendisinde olan bir sorun değil, yazılan uygulamanın bazı varsayımlara dayanarak güvenliği göz önünde bulundurmamasıdır. Bundan dolayı bir uygulama yazarken güvenliğe önem vermeli ve kullanıcıdan gelen bilginin varsayıma dayanmadan denetlenmesini sağlamasınız.

Örnek 1 - Tehlikeli Değişken Kullanımı

<?php
// kullanıcının ev dizininden bir dosyayı silelim...
// acaba başka birininkini mi silecek?
unlink ($fena_veri);

// Girişle ilgili kayıt tutalım...
// acaba /etc/passwd dosyasına mı yazacak?
fwrite ($fp, $fena_veri);

// Denemek için birşeyler çalıştıralım...
// acaba tüm dosyaları silecek bir 'rm -rf' komutu mu?
exec ($fena_veri);

?>

Kod yazarken her zaman yazdıklarınızı dikkatlice inceleyip, kullanıcıdan gelen bilgilerin doğru ve tam şekilde denetlenip onaylandığına emin olmanız gerekir. Kullanıcıdan gelen bilgiyi alıp işleme koyduğunuz her durumda kendinize şu soruları sorabilirsiniz:
? Bu betik benim istemediğim dosyalara erişim, değişiklik veya silme imkanı veriyor mu?
? Beklenmeyen bir bilgi geldiğinde de istenilen işlem yapılacak mı?
? Bu betik başka bir amaç için kullanılabilir mi?
? Bu betik sistemde varolan başka betiklerle birlikte kötü amaçlı kullanılabilir mi?
? Yapılan işlemler daha sonra inceleme amacıyla kayda alınacak mı?

Yaptığınız projenin uygunluğuna göre kod yazmadan önce ve yazarken bu soruları sık sık kendinize sormanız, proje bittiğinde değerlendirme yapıp değişiklikler yapmanızdan çok daha faydalı olacaktır. Bu sayede proje tasarımını güvenlik düşünülerek yapmış olacak ve daha sonra güvenlik dolayısıyla ciddi değişiklikler yapma zorunluluğunuz ortadan kalkacaktır. Güvenliğe vereceğiniz öncelikli önem, daha sonra yapacağınız ve güvenliği riske atacak değişikliklerden çok daha faydalıdır.

Belirtilen bir değişkenin değerini, kaynağı veya geçerliliği bozacağını düşündüğünüz register_globals, magic_quotes ve benzeri ayarlarları kapatmanız iyi olabilir. Hata bildirim kipi 'error_reporting(E_ALL)' kullanımı, aynı zamanda uyarıları da göstereceği için kodunuzda sorun olup olmadığı hakkında daha iyi bilgi verebilir.

Bir önceki yazımız olan apache'ye modül olarak kurulum başlıklı makalemizde apache, modül ve php hakkında bilgiler verilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

code


Kapat