Как я могу удалить теги script и все внутри них с помощью PHP?
Strip <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
<?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>');
?>