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>

The <iframe> tag is not allowed by default. If you turn on Allow Media Embeds, iframes are also permitted, but only when their source is one of a built-in list of trusted providers (such as YouTube, Vimeo, SoundCloud, and Spotify) or a hostname you have explicitly added. Iframes from any other source are removed.