Nasıl CodeIgniter'ın Form Doğrulama Kütüphanesi XSS Filtreleme Kolu mu?

3 Cevap php

CodeIgniter form doğrulama kütüphanesi doğrulanan bir formdan 'hazırlık' verilerine seçeneği sağlar. Aşağıdaki belgelerden bir parçası olduğunu:

$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|xss_clean');

Sonunda xss_clean parametresi sözde xss_clean fonksiyonu sayesinde sonrası veri geçer.

Ben nasıl $_POST veri username kullanıyorsunuz merak ediyorum? $username = $this->input->post('username');, ve aslında filtrelenmiş verileri almak: Ben bundan sonra yapmak, böylece, doğrudan $_POST değişkeni üzerinde xss_clean function hareket mi? Ne doğrulama satırında önce bu son ifadeyi koyarsanız? $username Bu durumda filtresiz verileri içerecek? Şimdiden teşekkürler!

3 Cevap

Doğrulama xss temiz yapar, ama $this->input->post('username') ile ilgisi yoktur. Bu hattı sağ xss temiz otomatik doğrulama şeyler tamamen bağımsız var (eğer küresel xss filtreleme var varsayarak) olacaktır. Nitekim olarak, bahse hazırım her iki olacak aslında xss temiz o twice, ben doğrulama sadece dizinin bir kopyasını oluşturur eminim çünkü .. öyle değil aslında yapıyor $ _POST değiştirin.

Dediğim gibi $this->input->post('username') tarafından erişiyor Ama, ne olursa olsun temizlenecektir.

user guide dan

"Izin verilmeyen bir şey görülürse bu karakter kuruluşlara veri dönüştürerek güvenli işlenir"

Yani evet, $ çalıştırdıktan sonra bu-> herhangi bir kirli veri seti xss seçeneği ile form doğrulama yoluyla giriş-> yazılan ('username') temiz çıkacaktır.

Eğer doğrulama satırdan önce bu ifadeyi koyarsanız ve evet, o temiz olmayacaktır.

Eğer geçerlilik kuralları bunu dahil etmek gerekmez böylece tüm form verilerini teslim üzerinde xss küresel çalıştırabilirsiniz unutmayın.

Ben çok iş orada yapılır tam olarak nasıl görebilirsiniz sistemi / kütüphaneleri / Input.php bakarak öneriyoruz.

Ben her zaman küresel xss_clean dönüm öneririz. Eğer not bilerek, bazı alanlarda XSS kontrol sürece performansı üzerinde çok az etkisi vardır.