使用 BBCodes...解析 HTML 还是完全删除它? (XSS/PHP)

发布于 2024-12-04 15:47:09 字数 265 浏览 1 评论 0原文

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

1) 从用户输入中去除所有 HTML 标签,并用 BBCode 替换所见即所得编辑器的控件。 strip_tags 足够吗?

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

任何其他想法都非常受欢迎。

I'm creating a mini-forum in PHP and I want to allow user posts with limited text formatting and embedding images, but I want to do it securely (XSS-wise) and I was wondering what's the most optimal approach of the ones below.

1) Strip all HTML tags from user input, and replace the WYSIWYG editor's controls with BBCode. Is strip_tags sufficient for this?

2) Allow HTML input through the WYSIWYG, but use a parser to convert the output from HTML to BBCode. Can anyone recommend a secure BBCode parser for this?

Any other ideas are more than welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃扇骨 2024-12-11 15:47:09

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

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

You don't need to parse or strip HTML to be secure. Just run everything through htmlspecialchars before you print it and you are safe.

In addition, this is orthogonal to using BBcode. You can have your editor generate BBcode for formatting, and htmlspecialchars will not mess with it in any way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文