Kullanıcılardan gelen veriyi temizlemek için filtrelerden geçiririz. Xss_clean() filtresi form doğrulama sırasında en çok kullandığımız filtrelerden biridir.
Ancak bu filtre, içinde & işareti (ampersand) geçen kullanıcı girdilerinde, kelimenin sonuna noktalı virgül işareti eklemektedir. Örneğin içinde "P&ID files" gibi bir ibare geçen kullanıcı girdisi, şuna dönüşmektedir: "P&ID; files".
Aynı şekilde eğer kullanıcı şifre girerken içinde & işareti geçen bir şifre oluşturuyorsa, xss_clean() filtresinden geçirilen bu şifreyi formumuz hiçbir zaman doğrulamayacaktır.
Bunu önlemek için xss_clean filtresini global olarak açtıysanız kapatmalısınız. Bu nedenle, application/config/config.php dosyasında ilgili satır şöyle olmalıdır:
$config['global_xss_filtering'] = FALSE;
Şifreyi formdan çektiğinizde de xss_clean filtresi yerine strip_tags filtresini kullanabilirsiniz:
$this-<form_validation-<set_rules('username', 'Username', 'required|strip_tags|max_length[20]');
$this-<form_validation-<set_rules('password', 'Password', 'required|strip_tags|max_length[20]');
Bu yazıda bahsedilen sorun CodeIgniter 1.7.2 ve 2 üzerindeki tüm versiyonlarında tespit edilmiştir.
Bu yazı Kevin Philips'in yazısı kullanılarak hazırlanmıştır.
Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : ampersand xss_clean hata
Türkiye