Привет.
Скажите плиз, а данную функцию легко обезвредить или она может быть завязана на остальной код программы?
Код:
}
function prepareContent($text, $length=200, &$params) {
$tags_option = $params->get('strip_tags', 'a,br');
$tags = explode(",", $tags_option);
$strip_tags = array();
for($i = 0; $i < count($tags); $i++) {
$strip_tags[$i] = '<'.trim($tags[$i]).'>';
}
$tags = implode(',', $strip_tags);
$text = preg_replace( "'<script[^>]*>.*?</script>'si", "", $text );
$text = preg_replace( '/{.+?}/', '', $text);
$text = preg_replace( "'<(br[^/>]*?/|hr[^/>]*?/|/(div|h[1-6]|li|p|td))>'si", ' ', $text );
$text = strip_tags($text, $tags);
if (strlen($text) > $length) {
$text = substr($text, 0, strpos($text, ' ', $length)). "..." ;
}
return $text;
}
Она как бы предназначена для фильтрации от программного кода вводимой информации, по критерию $tags_option, где можно задать разрешенные операторы.
Но, во первых понятно что все возможные варианты не ввести, да и не нужно, потому как javascript все равно режется, а во-вторых комментирование строк с replace позволяет таки выполняться js, но с ошибками, т.е. кастрировать надо на уровне
$tags_option = $params->get('strip_tags', 'a,br'); ?
Подскажите, если не трудно?
спасибо заранее
Социальные закладки