2010-01-28 9 views
0

est-il un moyen plus facile que

foreach($_POST as $x=>$y){ 
    $arr[$x] = $this->input->get_post($y, TRUE); 
} 

avoir tout l'ensemble du tableau $ _POST nettoyé avec le filtre XSS de CI. En regardant la bibliothèque d'entrée, il semble que get_post() accepte uniquement une variable individuelle plutôt que de pouvoir nettoyer l'ensemble du tableau, puis de retourner le tableau.

+2

filtrage de couverture sur l'entrée de l'application est totalement faux. Cela entravera l'entrée potentiellement valide et ne protégera pas de façon fiable de XSS. La seule façon d'être sûr de XSS est d'échapper correctement toutes les chaînes de texte que vous interpolez en HTML, par exemple. en utilisant 'htmlspecialchars'. Xss_clean de CI fait un ensemble assez stupide et stupide de mangling string même par les très bas standards des outils "XSS Protection"; vous ne devriez pas l'utiliser en aucune circonstance. – bobince

Répondre

7

Je ne sais pas si vous le voulez dans le monde, mais si vous ... à partir ze manuel:

Si vous voulez que le filtre d'exécuter automatiquement chaque fois qu'il rencontre des données POST ou COOKIE vous pouvez l'activer en ouvrant votre application/config/config.php et la mise en ceci:

$config['global_xss_filtering'] = TRUE; 
+0

Arrgh! Je ne peux pas croire que j'ai oublié ça. Changer constamment entre Symfony et CI fait frire mon cerveau. Merci! – Thomas

+0

Ceci est maintenant obsolète, le filtrage XSS doit être effectué en sortie, pas en entrée. – SteeveDroz

1

la réponse choisie pour cela est correct dans un sens, mais les informations sont fournies ne sont pas une réponse appropriée au problème réel qui est le filtrage XSS dans CI.

Pour d'autres le commentaire par bobince une bonne lecture à:

http://ponderwell.net/2010/08/codeigniter-xss-protection-is-good-but-not-enough-by-itself/

Soit htmlspecialchars/htmlentities/urlencode sur toutes les sorties ou rentrer à la maison. Le filtre XSS de CI utilise une technique de liste noire datée et brisée qui échoue à beaucoup d'attaques XSS.

Coder et valider. Toujours.

2
$this->input->post(NULL, TRUE); 

renvoie tous les éléments de poteau avec XSS filtre

$this->input->post(); 

renvoie tous les éléments de poste sans filtre XSS