Strip <script> теги и все, что находится между PHP;

Как я могу удалить теги script и все внутри них с помощью PHP?

Ответ 1

Как говорит Дэвид, фильтрация только тегов script недостаточно, если вы хотите дезинфицировать входящие данные. Очиститель HTML promises, чтобы сделать полный пакет:

HTML-очиститель - это стандартно-совместимый   Библиотека HTML-фильтра, написанная в   PHP. Очиститель HTML не только удалит все вредоносные   код (более известный как XSS) с тщательно проверенным,   безопасный, но разрешающий белый список,   он также гарантирует, что ваши документы   совместимых стандартов, что только достижимо с   всестороннее знание спецификаций W3C.

Ответ 2

Перейдите с Очиститель HTML, как предложил Пекка.

Никогда не используйте регулярное выражение для этого случая

Вот пример: фильтры регулярных выражений сломаны, работает в браузерах (проверено на firefox)

<script script=">>><script></script><script>//"  >
/**/
alert(1);
</script
>

Ответ 3

Я использую это:

$tag_para_remover_codigo_fonte_url_dentro_buscador = array("head","script","style","object","embed","applet","noscript","noframes","noembed");

for ($i=0;$i<count($tag_para_remover_codigo_fonte_url_dentro_buscador);$i++) {

    $codigo_fonte_url_dentro_buscador = preg_replace("/< *" . $tag_para_remover_codigo_fonte_url_dentro_buscador[$i] . "[^>]*>(.*?)<\/" . $tag_para_remover_codigo_fonte_url_dentro_buscador[$i] . " *>/i"," ",$codigo_fonte_url_dentro_buscador);

}

$codigo_fonte_url_dentro_buscador = html_entity_decode(strip_tags($codigo_fonte_url_dentro_buscador));

Ответ 4

Вы можете сделать это с помощью функции strip_tags

http://www.php.net/strip_tags

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>