J'ai récemment ajouté une section de commentaires à un blog. Codeigniter dit toujours d'échapper des données avant de les mettre dans le Db. (J'ai xss propre à plein temps). Certaines personnes disent que toutes les opérations d'enregistrement actives sont échappées. Suis-je perdre mon temps en utilisant l'échappement sur la fonction ci-dessous?Utilisation de la fonction d'échappement Codeigniter
En utilisant la fonction ci-dessous j'échapper les données, mais tout cela sort dans la vue a échappé. Comment "déséchapper" les données afin qu'elles soient lisibles sans les ''? Je ne veux pas utiliser une regex pour supprimer chaque '' dans le cas où il est utilisé dans une phrase
Je suppose que ma vraie question est, les enregistrements actifs sont toujours échappés ou non?
-à-dire: Auteur sort 'Nom'
function comment_insert()
{
$data = array
(
'entry_id' => $this->db->escape($this->input->post('entry_id')),
'ip' => $this->db->escape($this->input->post('ip')),
'date' => $this->input->post('date'),
'comment' => $this->db->escape($this->input->post('comment')),
'author' => $this->db->escape($this->input->post('author')),
'email' => $this->db->escape($this->input->post('email'))
);
$this->form_validation->set_rules('ip', 'IP', 'required|trim|valid_ip');//check
$this->form_validation->set_rules('entry_id', 'Entry ID', 'required|trim|numeric');
$this->form_validation->set_rules('date', 'Date', 'required|trim');
$this->form_validation->set_rules('comment', 'Comment', 'required|trim|max_length[600]');
$this->form_validation->set_rules('author', 'Name', 'required|trim|alpha_dash');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
if ($this->form_validation->run() == TRUE)
{
$this->db->limit(1);
$this->db->insert('comments', $data);
redirect('main/blog_view/'.$_POST['entry_id']);
} else
{
redirect('main/blog_view/'.$_POST['entry_id']);
}
}
Merci
Thnak vous. Une fois que vous commencez à lire et à voir des choses comme ça ($ this-db-> where()) "Note: Toutes les valeurs passées à cette fonction sont automatiquement échappées, produisant des requêtes plus sûres." il est facile d'oublier qu'il est échappé de toute façon. J'apprécie votre réponse – Brad
Il convient de noter que pour les requêtes SQL complexes, il n'est pas toujours possible d'utiliser des méthodes d'enregistrements actifs, en particulier lorsque nous référons plus d'une table et que nous avons des sous-requêtes dans la requête. –