Предотвратить XSS, но разрешить все символы? - PullRequest
0 голосов
/ 16 июня 2010

Как я могу предотвратить XSS, но разрешить использование любых символов? Как я могу опубликовать HTML-код на форуме, например <html><body><h1>Test</h1></html>, но он не будет отображаться в браузере как HTML? Как я могу сделать это, чтобы он не конвертировал символы в PHP?

Ответы [ 3 ]

2 голосов
/ 16 июня 2010

Передайте строку через функцию htmlspecialchars():

// Outputs HTML as literal characters
echo htmlspecialchars('<html><body><h1>Test</h1></html>');
0 голосов
/ 16 июня 2010

Интересный подход: DOM + Tidy - Источник

0 голосов
/ 16 июня 2010

Вы можете сделать строку безопасной для вывода с помощью htmlentities или htmlspecialchars .htmlentities более тщательный, поскольку он кодирует все сущности, тогда как htrmlspecialchars преобразует только скобки, кавычки и символы амперсанда.

Например, он меняет < на &lt;, который отображается браузером какСимвол <вместо символа интерпретируется как начало тега HTML. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...