Как разрешить использование некоторых html-тегов

263
09 октября 2017, 01:15

Я хочу разрешить использование тегов: <b>, <i>, <kbd> и т.д..

По-этому в коде я использую функцию strip_tags(), но она удаляет html, php теги. В свою очередь, htmlspecialchars() просто заменяет на соответствующие символы, а значит, что если я потом буду где-то использовать их (htmlspecialchars_decode), то будут выводится все теги НЕ экранированы, что грозит безопасности.

Как разрешить отображать только некоторые теги, или может все же использовать strip_tags, но с шансом неудобства для пользователя (хоть пользователь, который хочет их использовать далеко уже не пользователь:)) ?

Answer 1

Как вариант - сделать white list на определенные теги, а те, которые не находятся в этом списке, удалять.

Допустим нам разрешены теги <b> и <i>. Мы заводим какую-нибудь коллекцию, в которую помещаем эти 2 тега. Далее создаем регулярное выражение, которое идентифицирует тег. После этого мы последовательно в подаваемой на вход строке ищем любые теги по этому регулярному выражению и, если тег не содержится в нашей коллекции, заменяем его на пустую строку.

READ ALSO
вывод записей из бд

вывод записей из бд

Кто скажет как выводить запись из бдНапример: пользователь ввел в форме свое имя и она сохранилась в бд, но я хочу чтобы это имя выводилось...

188
Как заполнить массив char

Как заполнить массив char

Как заполнить массив char?

282
.NET - Чем можно создавать\редактировать NLS файлы кодировок

.NET - Чем можно создавать\редактировать NLS файлы кодировок

Чем можно создавать\редактировать NLS файлы кодировок?

283
Нужно узнать длину массива строк

Нужно узнать длину массива строк

Имеется тип string из std, нужно узнать длину массива этого типа

246