【问题标题】:Using BBCodes...Parse HTML or remove it altogether? (XSS/PHP)使用 BBCodes...解析 HTML 或完全删除它? (XSS/PHP)
【发布时间】:2011-09-16 09:03:05
【问题描述】:

我正在用 PHP 创建一个迷你论坛,我希望允许用户发布具有有限文本格式和嵌入图像的帖子,但我想安全地做到这一点(XSS-wise),我想知道什么是最优化的方法下面的。

1) 从用户输入中去除所有 HTML 标记,并将 WYSIWYG 编辑器的控件替换为 BBCode。 strip_tags 是否足够?

2) 允许通过所见即所得的 HTML 输入,但使用解析器将输出从 HTML 转换为 BBCode。谁能为此推荐一个安全的 BBCode 解析器?

欢迎任何其他想法。

【问题讨论】:

    标签: php html xss wysiwyg bbcode


    【解决方案1】:

    您无需解析或剥离 HTML 即可确保安全。只需在打印之前通过htmlspecialchars 运行所有内容,您就安全了。

    此外,这与使用 BBcode 是正交的。您可以让您的编辑器生成用于格式化的 BBcode,htmlspecialchars 不会以任何方式干扰它。

    【讨论】:

    • 这似乎是我要走的路线,谢谢。最后一个问题,我看到很多推荐 htmlentities 超过 htmlspecialchars,它真的更安全吗?
    • @Bachx:不。我个人认为htmlentities 没有一个令人信服的用例,除了帮助那些不能正确处理编码的人有点跋涉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多