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 库完成的。
    • 我们选择这些库是因为它们经过充分测试(每周下载量分别超过 400 万和 100 万)。

这意味着用户不能做诸如编写 <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 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.