【发布时间】:2011-09-01 08:51:22
【问题描述】:
我正在用 PHP 写一个评论解析函数。
由于 BBCode 不是真正的标记语言,我从不喜欢这种写作风格。
因此,我让访问者能够在评论表单中使用基本的 HTML 代码。
并且在发布时,PHP 将检查不允许和无效的标签/属性,并替换或删除它们。
我相信它的工作和输出与 BBCode 完全相同。
如果这是真的,为什么会有 BBCode? BBcode 比 HTML 有什么优势吗?
更新
作为单色回答
如果您确信您的 HTML 过滤器足够安全,那么您应该没问题
好吧,我对自己编写过滤器没有信心,但有一些顶级过滤器,例如 PHP Simple HTML DOM Parser、HTML Purifier、htmLawed...
BBCode 由 UBB 开发,目前仍在广泛使用,如 phpBB。
来自 UBB/phpBB 的开发人员是否对自己编写完美 HTML 过滤器的技能没有信心? (我猜不是)
另外,就像 StackOverflow 使用的 Markdown 一样……如果 HTML+Parser 完成了这项工作,为什么还要发明另一种“语言”呢? (除了节省一些位...)
【问题讨论】:
-
我认为 HTML 标记很容易被利用,您的检查是解决方法。黑客在寻找安全漏洞方面可能非常巧妙;)
-
@knittl 所以这是关于我/PHP VS 黑客的。好吧,也许我应该添加“如果……我的解析系统写得很好/严格。”我真的很想看到一个针对 html-allowed-comment-form 的黑客示例。
-
@niks 感谢 nikc,我目前正在 PHP Simple HTML DOM Parser、HTML Purifier 和 htmLawed 中进行选择。
-
编写一个阻止脚本进入的 HTML 过滤器是一项极其困难的工作,并且随着每个新浏览器的发布以及人们使用 html 的方式发生变化,它需要不断维护。确保您订阅了您选择的过滤器的新版本并保持最新状态。
标签: html security validation bbcode