如何允许某些html标签?

发布于 2025-01-05 00:05:31 字数 94 浏览 0 评论 0原文

我有一个文本区域,用户可以在其中撰写文章。文章可以包含文本(粗体和斜体)、链接和 YouTube 视频。如何允许这些特定的 html 标签并仍然发布安全的 xss 预防代码?

I got a textarea where the user can write an article. The article can contain text (bold and italic), links and youtube videos. How do I allow those certain html tags and still post secure xss-preventing code?

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

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

发布评论

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

评论(2

行至春深 2025-01-12 00:05:31

我会使用 HTMLPurifier,以确保您只保留

  • 有效
  • 且仅包含标签的 HTML以及您选择允许的属性

我应该补充一点,PHP 提供了 strip_tags() 功能,但它不是那么好(引用)

因为strip_tags()实际上并没有验证HTML,部分或
损坏的标签可能会导致删除比预期更多的文本/数据。

此函数不会修改标签上的任何属性
您允许使用 allowable_tags,包括样式和 onmouseover
恶作剧的用户在发布文本时可能会滥用的属性
将向其他用户显示。

I would use HTMLPurifier, to ensure that you only keep HTML

  • That is valid
  • and only contains tags and attributes you've choosen to allow

I should add that PHP provides the strip_tags() function, but it's not that good (quoting) :

Because strip_tags() does not actually validate the HTML, partial or
broken tags can result in the removal of more text/data than expected.

This function does not modify any attributes on the tags that
you allow using allowable_tags, including the style and onmouseover
attributes that a mischievous user may abuse when posting text that
will be shown to other users.

空城旧梦 2025-01-12 00:05:31

如果您正在寻找真正的 XSS 保护,我建议使用 HTMLPurifier。自己做这件事即使不是不可能,也是非常困难的。并且里面肯定会有错误(/漏洞)。

If you are looking for real XSS protection I suggest to use HTMLPurifier. Doing it yourself is pretty hard if not impossible to do. And is bound to have mistakes ( / holes) in it.

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