Как я могу запретить весь HTML, используя уценку (PHP и JS)? - PullRequest
3 голосов
/ 11 июня 2010

Я использую библиотеку разметки PHP: http://michelf.com/projects/php-markdown/ и библиотеку разметки Javascript: http://attacklab.net/showdown/

Я хочу запретить весь HTML, обе версии уценки, похоже, допускают его без разбора. Моя первая попытка состояла в том, чтобы просто убежать от всех html-сущностей, прежде чем вводить их в уценку. Однако это также исключает синтаксис <hyperlink> и <email>, что очень полезно.

Я хотел бы избежать всего HTML (не удалить), но сохранить весь синтаксис уценки.

1 Ответ

3 голосов
/ 11 июня 2010

У вас есть два варианта.

Во-первых, вы можете позаботиться о HTML, который отправляет пользователь, и что-то с этим сделать. Попробуйте lib_filter Кэла Хендерсона (из известности Flickr) или, может быть, что-то более тяжелое, например HTMLPurifier .

Во-вторых, если вы действительно хотите нейтрализовать весь HTML, но сохраняете специальный синтаксис, используйте htmlspecialchars , а затем отмените преобразования для нужных строк с помощью регулярных выражений. Это может быть немного более волосатым. ;)

Да, это обе реализации PHP, а не Javascript. Ajax-вызов специального сценария, генерирующего предварительный просмотр, когда пользователь на мгновение прекращает печатать, должен быть достаточно быстрым. Или заставьте их нажать кнопку.

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