3

スタイル タグを削除する HTMLPurifier に問題があります。これは私が使用する(テスト)構成です:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'HTML 4.01 Transitional'); // replace with your doctype
$config->set('Cache.DefinitionImpl', null);
$config->set('HTML.AllowedElements','div');
$config->set('HTML.AllowedAttributes', "*.style");
$config->set('CSS.AllowedProperties', 'background-color');

そして、この HTML をフィルタリングすると:

<div style="background-color: #fff;">test</div>
<div style="border: 1px solid #000;">test</div>

これは私が得るものです:

<div>test</div>
<div style="border:;">test</div>

なぜ境界線属性が残されているのか (ただし、値は取り除かれているのか)、背景色属性が削除されている理由がわかりません。これらのスタイル タグがフィルターを通過できるように構成するにはどうすればよいですか? また、許可するスタイル属性に任意のスタイル値を許可したいと考えています。

4

1 に答える 1

1

これを試して:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
$config->set('CSS.Trusted', 'HTML 4.01 Transitional'); // allow any css
$config->set('HTML.Allowed','div[style]');
$config->set('CSS.AllowedProperties', 'background-color');

これは私のために働く!

于 2014-03-20T04:02:31.643 に答える