Я читаю здесь:
https://stackoverflow.com/a/8932454/4301970
что htmlspecialchars() очень эффективно предотвращает атаки xss.Как отобразить htmlspecialchars на html?
Я получаю отформатированный текст с WYSIWYG редактор, например:
<p>
<em>
<strong><span style="font-size:36pt;">test</span></strong>
</em>
</p>
Кодирование это на мой HTML:
<!DOCTYPE html>
<html lang=en>
<head>
<title></title>
</head>
<body>
<?php echo htmlspecialchars('<p><em><strong><span style="font-size:36pt;">test</span></strong></em></p>', ENT_QUOTES); ?>
</body>
</html>
Выведет в браузере:
<p><em><strong><span style="font-size:36pt;">test</span></strong></em></p>
Как я могу правильно отобразить форматированный текст, не допуская при этом инъекций XSS?
Вы можете использовать \ п после элемента новой строки и \ т для Tab. –
'nl2br (str_replace (" "," $ nbsp; "htmlspecialchars ($ data)));'. Что-то вроде этого? –
'htmlspecialchar' преобразует специальные символы, которые будут создавать элементы для своих объектов, чтобы они не отображались.Вы хотите, чтобы некоторые элементы отображались, так что вам понадобится другой подход. – chris85