1

HTMLPurifier に問題があります。

£

戻る

£

私の現在の構成は次のとおりです。

$config = \HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('Core.Encoding', 'UTF-8');
$config->set('Attr.AllowedFrameTargets', array('_blank'));
$config->set('HTML.Trusted', true);
$config->set('CSS.Trusted', true);
$config->set('Attr.EnableID', true);

$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');

$objPurifier = new HTMLPurifier($config);
$string = $objPurifier->purify($string);

最初に私は単純に£記号を渡していましたが、これは無視され、変換されなかった£ようです。そのため、$stringをピュリファイアに渡す前にstr_replace()を実行することにしましたが、これは£記号に変換していました-だから私はここで本当に迷っており、どの構成設定がその動作を変更する可能性があるかを誰かが知っていれば、助けていただければ幸いです。

浄化後に str_replace() を実行していますが、もっと良い方法があるはずです。

4

1 に答える 1

0

これは仕様によるものです。ここで行われる正規化は、HTML Purifier が特定の種類の XSS バグを回避するのに役立ちます。 http://htmlpurifier.org/docs/enduser-utf8.htmlは読む価値があります。

于 2013-02-26T00:21:30.963 に答える