Kullanıcı tarafından Gönderilen Veri

Birçok PHP programındaki en büyük zayıflık, dilin kendi iç dinamiklerinden değil de, geliştiricinin kodlama sürecinde güvenliği kafasında bulundurmamasından kaynaklanır. Bu nedenle, verilen kod üzerindeki olası durumlar incelenmeli, beklenmedik bir değişken gönderildiğinde oluşabilecek olası hasar tespit edilmeli ve önlenmelidir.

Örnek 4-11. Tehlikeli Değişken Kullanımı

<?php
// kullan&inodot;c&inodot;n&inodot;n... ya da bir ba&scedil;kas&inodot;n&inodot;n? ana klasöründen dosya
// siler
unlink ($evil_var);

// Eri&scedil;imi kaydeder... ya da belki bir /etc/password giri&scedil;i yapar?
fputs ($fp, $evil_var);

// Bir uygulamay&inodot; çal&inodot;&scedil;t&inodot;r&inodot;r.. ya da rm -rf * komutunu?
system ($evil_var);
exec ($evil_var);

?>
Kodunuzu her zaman için web tarayıcısı tarafından gönderilen verilerin yeterli şekilde denetleyecek halde tutmalı, ve kendinize aşağıdaki soruları sormalısınız:

Uygulamanızı yazarken bu soruları daha sonra sormak yerine şimdi sorarak, güvenliğinizi arttırmak için kodu yeni baştan yazmak durumunda kalmazsınız. Bu mantıkla yola çıkarak, belki sisteminizdeki güvenliği garantileyemezsiniz, ama geliştirilmesine ciddi olarak katkıda bulunmuş olursunuz.

Bunların haricinde register_globals, magic_quotes ve benzeri değerleri kapatarak, değişken doğrulamasında karmaşa yaratabilecek etkilerden korunabilirsiniz. PHP'nin hata raporlaması (E_ALL) modu ile çalışmak, sorun yaratabilecek değişkenleri yaratılmadan ve denetlenmeden önce tespit etmeniz açısından size yardımcı olabilir (böylece uygunsuz verinin işlenmesini önlemiş olursunuz).