РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1049 of 1361 menu

Метод sanitize класса HtmlSanitizer

Метод sanitize класса HtmlSanitizer принимает HTML-строку и возвращает её очищенную версию. Из строки удаляются опасные теги (например, script), небезопасные атрибуты (например, onclick) и потенциально вредные URL. Первым параметром передаётся исходный HTML, вторым - контекст санитизации (по умолчанию 'default').

Синтаксис

public function sanitize(string $html, string $context = 'default'): string

Пример

Давайте очистим HTML-строку, содержащую опасный тег script:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHtmlSanitizerHtmlSanitizerInterface; class SanitizerController extends AbstractController { public function index(HtmlSanitizerInterface $sanitizer): Response { $html = '<p>hello</p><script>alert("abcde")</script>'; $res = $sanitizer->sanitize($html); return new Response($res); } } ?>

Результат выполнения кода:

<p>hello</p>

Пример

Давайте очистим HTML с небезопасным атрибутом onclick:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHtmlSanitizerHtmlSanitizerInterface; class SanitizerController extends AbstractController { public function index(HtmlSanitizerInterface $sanitizer): Response { $html = '<a href="/user" onclick="alert(\'abcde\')">user</a>'; $res = $sanitizer->sanitize($html); return new Response($res); } } ?>

Результат выполнения кода:

<a href="/user">user</a>

Пример

Давайте очистим HTML в контексте 'article', разрешающем больше тегов:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHtmlSanitizerHtmlSanitizerInterface; class SanitizerController extends AbstractController { public function index(HtmlSanitizerInterface $sanitizer): Response { $html = '<article><h2>article</h2><p>hello</p></article>'; $res = $sanitizer->sanitize($html, 'article'); return new Response($res); } } ?>

Результат выполнения кода:

<article><h2>article</h2><p>hello</p></article>

Смотрите также

  • класс HtmlSanitizer,
    который очищает HTML от опасного содержимого
  • метод sanitizeFor,
    который очищает HTML для конкретного контекста
  • функция dd,
    которая выводит дамп переменной и завершает работу
  • функция dump,
    которая выводит дамп переменной
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить