【问题标题】:allowing users to add custom html to profile page [closed]允许用户将自定义 html 添加到个人资料页面 [关闭]
【发布时间】:2011-01-28 19:23:42
【问题描述】:

我希望用户能够向网站添加自定义 html,并且我希望避免 XSS 攻击。我该怎么做呢?我以为我只允许像这样的几个标签:

[b], [i], [u], [img], [hr], [list], [color=X], [size=X], [font=X], [url]

并删除其他所有内容。

【问题讨论】:

  • @Rafe,我他正在寻找一个 BB 代码类..

标签: php html filter tags html-parsing


【解决方案1】:

大多数人会推荐使用 PHP 的 bbcode 解析器扩展。这意味着您已经安装了扩展程序。你可以使用正则表达式来做到这一点,但你肯定需要小心。嵌套标签将增加比正则表达式能够处理的更多的复杂性。你开始不得不使用诸如使用回调的递归正则表达式替换之类的东西,甚至没有让我开始了解当用户不正确地嵌套他们的标签或将双引号放入他们的锚 url 时会发生什么。

对 bbcode 使用正则表达式通常意味着你最终会灰飞烟灭。

【讨论】:

    【解决方案2】:

    与其处理允许用户在维护安全性的同时对网站进行编程的无穷复杂性,不如使用简单的 UI 来封装 HTML。类似于您在我们在 SO 中发布的答案上方看到的内容。单击一个按钮...加粗...单击...下划线...等

    【讨论】:

      【解决方案3】:

      您可以使用 BBcode、Media Wiki 格式或直接 HTML,并且您可以过滤以仅允许具有某些属性/值的某些标签。您还可以使用 RTE(富文本编辑器)为您的用户简化任务

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-13
        • 2023-04-10
        • 1970-01-01
        • 2021-09-30
        相关资源
        最近更新 更多