2010-08-12 31 views
0

tout le monde! Bien sûr, je suis toujours battu avec HTML Purifier ...Pourquoi HTML Purifier ignore-t-il mes paramètres de configuration créés lors de l'exécution?

Alors, mon /config/purifier.php ressemble:

<?php defined('SYSPATH') or die('No direct access allowed.'); 
return array(
    'settings' => array(
     'HTML.Allowed' =>'a,b,strong,p,ul,ol,li,img[src],i,u,span,', 
    'HTML.MaxImgLength' => 250, 
    'CSS.MaxImgLength' => '250px' 
      ), 
); 
?> 

et Surcharges Purificateur HTML la méthode de sécurité :: clean_xss() pour utiliser son propre filtre .

J'ai créé deux fonctions d'aide pour l'assainissement des données: clean_whitelist(), qui supprime tout ce qui n'est pas autorisé par mon HTML.Allowed paramètre dans le fichier de configuration. et clean_all(), qui déshabille toutes les balises et ne tient pas compte des champs qui sont passés en tant ignorer

public static function clean_all(array $dirty_data, array $ignore) { 
    $config = Kohana::config('purifier'); 
    $settings = $config['settings']; 
    $config->set('settings', array ('HTML.Allowed'=>'')); 
    foreach($dirty_data as $key => $value) { 
    if(! in_array($key, $ignore)) { 
    $dirty_data[$key] = Security::xss_clean($dirty_data[$key]); 
    } 
    } 
    return $dirty_data; 
} 

public static function clean_whitelist($dirty_data) { 
    return Security::xss_clean($dirty_data); 
} 

clean_whitelist() fonctionne comme prévu, mais clean_all permet encore des balises. Pas tout à fait sûr pourquoi, quand je var_dump une nouvelle charge de Kohana::config('purifier') après avoir appelé $config->set, le fichier, il affiche mon HTML.Allowed => « » ...

Toutes les idées sur lesquelles il continue d'utiliser une liste blanche par opposition à en utilisant le fichier de configuration que j'ai construit au moment de l'exécution? Merci, comme toujours, à tous ceux qui ont contribué à ce projet!

+0

Que fait xss_clean? –

+0

xss_clean est surchargé par htmlpurifier, j'ai besoin de creuser et de tirer là où ça surcharge – PaleAilment

Répondre