<? phpukraine ІНСТРУМЕНТИ
Пошук по платформі

HTML-сутності: htmlspecialchars онлайн

Екранує текст для вставки в HTML і розкодовує сутності назад. Режим лапок як у ENT_QUOTES.

У БРАУЗЕРІ ТЕКСТ → ТЕКСТ
РОБОЧА ЗОНА
ЩО РОБИТЬ

Показує, як текст має виглядати у шаблоні, щоб не стати XSS

Текст із форми з лапками й кутовими дужками треба показати на сторінці так, щоб браузер не виконав його як розмітку. Інструмент екранує рядок як htmlspecialchars з ENT_QUOTES і розкодовує сутності назад, коли треба прочитати, що насправді лежить у базі після подвійного екранування.

ЯК ЦЕ ПРАЦЮЄ В PHP

htmlspecialchars замінює & < > " ' на сутності &amp; &lt; &gt; &quot; &#039;. Цього достатньо, щоб будь-який текст став безпечним усередині елемента чи атрибута. У Blade це робить {{ $text }}, у Twig автоекранування; сирий вивід {!! !!} чи |raw лише для HTML, який ви самі згенерували.

$comment = '<script>alert("xss")</script> & "лапки"';

echo htmlspecialchars($comment, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// &lt;script&gt;alert(&quot;xss&quot;)&lt;/script&gt; &amp; &quot;лапки&quot;

echo html_entity_decode('&lt;b&gt;', ENT_QUOTES | ENT_HTML5, 'UTF-8');
// <b>
ПИТАННЯ

Що питають про цей інструмент

htmlspecialchars екранує лише пʼять символів, які мають значення в HTML: < > & і лапки. Цього достатньо для захисту від XSS, і саме її викликає {{ }} у Blade і Twig. htmlentities перетворює всі символи з іменованими сутностями, включно з кирилицею, що на UTF-8 сторінках лише роздуває розмітку.

ДАЛІ ПО ТЕМІ