securityПровереноPHP 8

XSS и контекстное экранирование

Для HTML-текста используйте htmlspecialchars() с ENT_QUOTES | ENT_SUBSTITUTE и явной UTF-8.

htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')

Контекст

Один escape не подходит везде. HTML-текст, атрибут, URL, CSS и JavaScript имеют разные правила и безопасные API.

Пример

<?php
echo htmlspecialchars($title, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');

HTML из редактора

Если продукт разрешает часть HTML, нужен allowlist sanitizer. Удаление тега script одной регуляркой не защищает от обработчиков, URL-схем и повреждённой разметки.

Playground

Вывод пользовательского PHP в этом сервисе помещается только через textContent и не интерпретируется как HTML.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie