Почему я должен использовать BBCode, а не HTML в комментариях? - PullRequest
7 голосов
/ 01 сентября 2011

Я пишу функцию анализа комментариев в PHP.

Поскольку BBCode не является реальным языком разметки, мне никогда не нравился стиль написания.
Поэтому я даю посетителям возможностьиспользуйте базовый HTML-код в формах комментариев.
А при публикации PHP проверяет запрещенные и недействительные теги / атрибуты и заменяет или удаляет их.

Я полагаю, что выполняет ту же работу и выдает точнотак же, как с BBCode.

Если это правда, почему BBCode?Есть ли у BBcode какие-либо преимущества перед HTML?

обновление

в монохромном ответе

Если вы уверены, что ваш HTML-фильтр достаточно безопасен, с вами все будет в порядкехотя

ну, я не уверен, что сам пишу фильтр, но есть некоторые фильтры с самым высоким рейтингом, такие как PHP Simple HTML DOM Parser, HTML Purifier, htmLawed ...

BBCode разработан UBB и до сих пор широко используется, например, phpBB.

Не уверены ли разработчики из UBB / phpBB в своих навыках написания идеального фильтра HTML?(Наверное, нет)

Также, как и Markdown, который использует StackOverflow ... если HTML + Parser выполняет свою работу, зачем вообще придумывать другой «язык»?(кроме сохранения нескольких битов ...)

Ответы [ 4 ]

5 голосов
/ 01 сентября 2011

Основным его преимуществом является предотвращение нежелательных внедрений кода.Вот почему я бы использовал что-то вроде BBCode или Markdown.

По крайней мере, вы должны работать с белым списком разрешенных HTML-тегов, а не с черным списком.

2 голосов
/ 01 сентября 2011

BBCode устраняет проблему, связанную с тем, что ваш HTML-фильтр может содержать ошибки, так что комментатор может комментировать код, который он не должен комментировать.Если вы уверены, что ваш HTML-фильтр достаточно безопасен, все будет в порядке.

Другая проблема заключается в том, что HTML-комментарии могут нарушить ваш макет, например, когда комментатор вставляет один закрывающий </div> или что-то ещевот так.

1 голос
/ 01 сентября 2011

BBCode стал популярным, поскольку предоставил пользователю ограниченный доступ к html при попытке предотвратить XSS.BBCode стал популярным еще там, где такие решения, как HTML Purifier .Во всей реальности BBCode и Html Purifier имеют свои проблемы с безопасностью.Просто BBCode был более простым решением этой проблемы.

0 голосов
/ 26 ноября 2013

Использование BBcode + конвертирование всего левого тега в htmlspecialchar, по-моему, совершенно бесплатно для XSS. (если парсер BBcode действительно не очень плохой)

В конечном итоге оба они достигают одной и той же цели. В настоящее время я выбираю BBcode, потому что HTMLpurifier автоматически удаляет тег вместо замены левого тега на html specialChar. По крайней мере, в демоверсии я не видел функцию удержания левой метки.

Итак, есть некоторая проблема, так как мы хотим, чтобы пользователь написал & lt; вместо автоматического преобразования его в <. И еще одна проблема лени для проверки всех данных. </p>

...