Codeigniter global_xss_filtering
Dans mon codeigniter config j'ai $config['global_xss_filtering'] = TRUE;
. Dans ma section admin, j'ai un ckeditor qui génère le frontend de contenu.
Tout ce qui est tapé et placé à l'intérieur de l'éditeur fonctionne très bien, les images sont affichées de nice, le html est de travail. Tous à l'exception de flash. Chaque fois que je passer en mode html et de le coller sur youtube code de la pièce, il s'est échappé et le code est visible sur la page d'accueil au lieu de montrer une vidéo youtube.
Si j'ai mis $config['global_xss_filtering'] = FALSE;
youtube, le code est passé comme il le devrait. C'est parce que l '"objet", "intégrer" etc sont marqués comme "méchant" par CI et donc échappé.
Comment puis-je contourner le xss filtrage pour cela une méthode de contrôleur?
OriginalL'auteur Jens | 2010-10-10
Vous devez vous connecter pour publier un commentaire.
Désactiver par défaut puis l'activer pour les endroits qui en ont vraiment besoin.
Par exemple, je l'ai désactivé pour tous mes contrôleurs, puis de l'activer pour les commentaires, pages, etc.
Une chose que vous pouvez faire est de créer un MY_Input (ou MY_Security en CI 2) comme celui de PyroCMS et remplacer le xss_clean méthode avec une copie exacte, à moins que l'objet|embed| une partie de la regex.
http://github.com/pyrocms/pyrocms/blob/master/system/pyrocms/libraries/MY_Security.php
C'est un enfer d'un long chemin, mais il fonctionne.
Nous pourrions peut-être créer une option de configuration pourrait être créée liste des mauvais éléments, pour la 2.0?
OriginalL'auteur Phil Sturgeon
Mon cas, c'était que je voulais global_xss_filtering être activée par défaut, mais j'ai parfois besoin de la $_POST (pst, vous pouvez le faire à l'échelle mondiale au tableau php par exemple $_GET...) les données brutes, les envoyer à partir du navigateur, donc ma solution a été de:
alors à chaque fois que j'avais besoin de la crue $_POST je ferais le suivant:
global $unsanitized_post;
print_r($unsanitized_post);
OriginalL'auteur Waqleh
Dans CodeIgniter 2.0 la meilleure chose à faire est de remplacer la xss_clean sur la base de CI de la bibliothèque, à l'aide de MY_Security.php mettez-le sur application/core dossier, puis à l'aide de /application/config.php
voici l'MY_Security.php https://gist.github.com/slick2/39f54a5310e29c5a8387:
OriginalL'auteur Carey Dayrit
Simple effectuer les opérations suivantes sur les points de vue lors de l'affichage d'un objet incorporé type de code à partir de YouTube et etc:
OriginalL'auteur Konstantin Kalbazov
Le mondial XSS Filtrage est seulement de s'échapper (ou convertir) de certains "dangereux" balises html comme
<html>
Simple Solution De Contournement:
$config['global_xss_filtering'] = TRUE;
<script>
tags ou javascript.Sur la page où vous recevez les formes
POST
l'utilisation des donnéeshtml_entity_decode()
de défaire ce que XSS filtrage ne s'.Puis le lancer immédiatement par htmlentities()
Magasin comme un
Blob
des bases de données MySQLdes informations à l'utilisateur pour l'édition exécuter
html_entity_decode()
C'est la façon dont je l'ai fait. Si quelqu'un connaît un défaut majeur dans ce que j'ai fait, dites-le moi. Il semble bien fonctionner pour moi. N'ai pas eu des erreurs inattendues.
Comment dois-je autoriser les gens à utiliser le HTML dans un textarea? Je le lance à travers HTMLPurifier, n'est-ce pas assez?
C'est également le décapage des attributs de style en ligne, si j'utilise tout
OriginalL'auteur zechdc