FastComments.com


Здесь мы рассмотрим формат комментариев FastComments, функции, поддерживаемые при написании комментариев, как форматировать текст и различные фильтры и меры безопасности, встроенные в систему.


Базовое форматирование Internal Link

FastComments использует комбинацию Markdown и простого подмножества HTML для написания комментариев.

Хороший ресурс по синтаксису Markdown здесь.

Для наиболее распространённого форматирования вы можете использовать панель инструментов форматирования, чтобы делать такие вещи, как выделение текста жирным или курсивом.

Некоторые примеры синтаксиса:

  • Жирный:
    • **жирный**
    • <b>жирный текст</b>
  • Курсив:
    • *курсив*
    • <i>курсивный текст</i>
  • Зачёркнутый:
    • ~~зачёркнутый~~
    • <strike>зачёркнутый</strike>
  • Цитаты:
    • > цитата

Обратите внимание, что заголовки Markdown не поддерживаются.

Ссылки могут быть написаны как их сырой URL, без HTML или другого синтаксиса, и по умолчанию ссылка будет преобразована в кликабельную ссылку с target="nofollow noopener" для отпугивания спамеров. Некоторые сайты могут отключить автоматическое создание ссылок.

Нумерованные списки можно написать так:

1. Первый пункт.
2. Второй пункт.
3. Третий пункт.

То же самое для маркированных списков:

- Один пункт.
- Другой пункт.

Для сообществ, ориентированных на программирование, код можно поделиться, вставив его в область комментария, и язык будет автоматически определён и отформатирован. Код можно добавить в теги <code></code> или блоки кода Markdown с обратными кавычками.

Безопасность Internal Link

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

Предотвращение злоупотребления форматированием

Люди могут писать контент, который намеренно визуально отвлекает и снижает ценность дискуссий, злоупотребляя форматированием текста.

FastComments делает ряд вещей для предотвращения злоупотребления в отношении форматирования:

  • Большие повторяющиеся последовательные переносы строк сворачиваются.
  • Мы не отображаем заголовки (они становятся обычным текстом).
  • Мы не разрешаем CSS или пользовательские цвета.

Предотвращение эксплойтов

Эксплойты могут быть созданы в системах, отображающих HTML. FastComments делает несколько вещей для предотвращения этого:

  • Мы разрешаем только явно определённый набор HTML-тегов.
  • Мы разрешаем только явно определённый набор атрибутов HTML-тегов.
  • Мы очищаем и санитизируем все входные данные.
    • Это делается с помощью библиотек DOMPurify и sanitizeHtml.
    • Мы выбрали эти библиотеки как хорошо протестированные (с более чем 4 и 1 миллионом загрузок в неделю соответственно).

Это означает, что пользователи не могут делать такие вещи, как писать теги <script> или <style>, или пытаться добавить скрипты типа onload=alert() к изображениям или другому контенту.

HTML-теги, которые мы разрешаем, следующие:

  • <b>
  • <em>
  • <u>
  • <i>
  • <strike>
  • <pre>
  • <span>
  • <code>
  • <img>
  • <a>
  • <strong>
  • <ul>
  • <ol>
  • <li>
  • <br>