1

HTMLPurifier がタグ属性をフィルタリングしないようにするのに問題がありますが、今まで成功せず、夢中になっています。

    $config = HTMLPurifier_Config::createDefault();
    $config->set('Core.Encoding', 'UTF-8');
    $config->set('Core.CollectErrors', true);
    $config->set('HTML.TidyLevel', 'medium');
    $config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
    $config->set('URI.DisableExternalResources', false);

    $config->set('HTML.Allowed', 'table[border|width|style],tbody,tr,td,th,img[style|src|alt],span[style],p[style],ul,ol,li,strong,em,sup,sub');

    $PHTML = new HTMLPurifier($config);
    echo htmlspecialchars($PHTML->purify($html));

    // The input string:
    "Some <span style="text-decoration: underline;">cool text</span> <img src="http://someurl.com/images/logo.png" alt="" />.

    // The output string:
    "Some <span>cool text</span> <img src="%5C" alt="" />.

HTML.Allowed オプションで定義されている特定の要素に対して、指定された属性を許可したいと考えています。

4

2 に答える 2

1

少し遅い提案ですが、 HTML.Allowed設定で構成されていたとしても、HTMLPurifier ストリップスタイル属性で同様の問題に遭遇しました。

私が見つけた解決策では、次のようなCSS.AllowedPropertiesも構成する必要があります。

$config->set('CSS.AllowedProperties', 'text-align,text-decoration,width,height');

これを HTML.Allowed と組み合わせて使用​​します。

$config->set('HTML.Allowed', 'img[src|alt|style],span[style]');

CSS.AllowedPropertiesの詳細については、こちらをご覧ください

于 2015-04-30T05:25:45.940 に答える
1

魔法の引用符をオフにします。(%5C に注意してください)

于 2012-05-09T17:15:38.010 に答える