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

當允許使用者在網站上新增內容, 並在各種不同類型的裝置上呈現該內容時,安全性有多方面的考量。

Preventing Formatting Abuse

有人可能會透過濫用文字格式撰寫故意造成視覺干擾 並降低討論的價值。

FastComments 採取了多項措施來防止格式上的濫用:

  • 大量連續重複的換行會被折疊。
  • 我們不會渲染標題(它們會變成普通文字)。
  • 我們不允許 CSS 或自訂顏色。

Preventing Exploits

在渲染 HTML 的系統中可能會產生可被利用的漏洞。FastComments 採取了若干措施來防止此類情形:

  • 我們僅允許一組明確定義的 HTML 標籤。
  • 我們僅允許一組明確定義的 HTML 標籤屬性。
  • 我們會淨化並過濾所有輸入。
    • 這是透過 DOMPurifysanitizeHtml 套件完成的。
    • 我們選擇這些套件因為它們經過良好測試(每週下載量分別超過 4 百萬 與 1 百萬次)。

這代表使用者無法做像是撰寫 <script><style> 標籤,或試圖在影像或其他內容上加入 onload=alert() 類型的腳本。

The HTML tags we allow are as follows:

  • <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 允許媒體嵌入, 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.