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 標籤屬性集。
  • 我們淨化和清理所有輸入。
    • 這是透過 DOMPurifysanitizeHtml 程式庫完成的。
    • 我們選擇這些程式庫是因為它們經過良好測試(分別每週有超過 400 萬和 100 萬次下載)。

這意味著使用者不能做諸如編寫 <script><style> 標籤,或嘗試向圖片或其他內容新增 onload=alert() 類型指令碼之類的事情。

我們允許的 HTML 標籤如下:

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