Я использую htmlpurifier. У меня есть некоторые сомнения, которые, как показано ниже.
1- Мой конфигурационный файл содержит
$config->set('HTML.Trusted' ,true);
$config->set('CSS.Trusted', true);
Но простой Google выводит меня на страницы, где есть рекомендация не использовать *. Trusted как «true».
Я не могу понять, почему мы не должны устанавливать *. Trusted в true? Можете ли вы объяснить мне. Потому что, если я удалю его, я не получу встроенный CSS? Даже CSS.AllowTricky не помогает.
2- Я обнаружил, что HTML5 и CSS3 селекторы не допускаются.
например код в htmlpurifier / library / HTMLPurifier / Filter / ExtractStyleBlocks.php
// - No Unicode support
// - No escapes support
// - No string support (by proxy no attrib support)
// - element_name is matched against allowed
// elements (some people might find this
// annoying...)
// - Pseudo-elements one of :first-child, :link,
// :visited, :active, :hover, :focus
// handle ruleset
$selectors = array_map('trim', explode(',', $selector));
$new_selectors = array();
foreach ($selectors as $sel) {
//some code to filter css selectors
}
не содержат код, который может разрешить селекторы, такие как [[class * = «grid-«] ‘. Следовательно, все такие CSS удаляются после очистки. Есть ли какой-нибудь способ разрешить все CSS3?
3- Есть ли способ разрешить все теги HTML 5? например, если у нас есть HTML, как
<section class="mainhead">
<div class="subhead"> </div> </section>
затем очиститель удаляет и из-за чего некоторые CSS как
.mainhead .subhead { //some css}
не будет работать.
Задача ещё не решена.
Других решений пока нет …