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>

Тег <iframe> за замовчуванням не дозволено. Якщо ви увімкнете Allow Media Embeds, iframes також дозволяються, але лише коли їх джерело входить до вбудованого списку довірених провайдерів (таких як YouTube, Vimeo, SoundCloud та Spotify) або до імен хостів, які ви явно додали. Iframes з будь-якого іншого джерела видаляються.