如何检查 PHP 中的降价编码字段?

How to check a markdown-encoded field in PHP?

是否有一些最佳实践来检查应该是 Markdown 格式文本的字段(从 HTML 表单接收)的一致性?

最重要的是,我想确保提交的文本不包含任何 HTML/script。

目前,我正在使用 PHP strip_tags() 函数实现此目的。

虽然 markdown 格式的主要思想是纯文本,但我不确定此功能是否会破坏 Markdown 格式。

(例如 <http://www.example.com> 语法呢?)

检查 Markdown 有效性确实很棘手。 这是我想出的确保存储的 Markdown 编码文本安全的唯一方法:

  1. 将 MarkDown 文本解析为 HTML
  2. 消毒HTML(例如使用HTML净化器)
  3. 将结果转换回 Markdown

注意:如果您只需要 markdown 的一个子集(比如 Whosebug 用于用户评论的迷你 markdown),仅涉及**粗体**、_斜体_、`code` 和[链接](http://www.example.com), 然后使用 strip_tags 就足够了(它可能会导致输出发生变化,但至少是安全的)。