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 函式庫完成的。
    • 我們選擇這些函式庫是因為它們經過充分測試(每週下載量分別超過 400 萬和 100 萬次)。

這意味著使用者無法執行諸如撰寫 <script> 或 <style> 標籤,或嘗試在圖片或其他內容中加入 onload=alert() 之類的腳本。

我們允許的 HTML 標籤如下:

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

預設情況下不允許使用 <iframe> 標籤。如果您開啟「允許媒體嵌入」,iframe 也會被允許,但僅限於其來源是內建的可信任提供者清單(例如 YouTube、Vimeo、SoundCloud 和 Spotify)或您明確新增的主機名稱。來自任何其他來源的 iframe 都會被移除。