gpt4 book ai didi

php - OWASP ESAPI encodeForHTML 带有一些允许的格式化标签

转载 作者:太空狗 更新时间:2023-10-29 16:42:26 24 4
gpt4 key购买 nike

在一个web项目中,我们使用PHP中的OWASP ESAPI进行输出编码。在某些时候,我们希望允许 HTML 的子集用于小格式选项(例如 <i><b> ),同时不允许所有其他标签和特殊字符(因此它们使用 &...; 语法进行实体编码)。

我看到了以下实现这一目标的可能性:

  1. 告诉 the OWASP ESAPI encoder 将这些标签列入白名单/允许这些标签,以便它只正确编码所有其他 HTML 标签和实体。但这似乎不被支持。然而,我们可以(也许)编写一个允许这样做的补丁。
  2. 在使用 ESAPI 编码后解码白名单标签。这会受到攻击吗?
  3. 为此用例使用其他一些输出编码技术。还有其他图书馆吗?

特别是,我需要将以下标签和属性列入白名单:

  • <br>
  • <i>
  • <b>
  • <u>
  • <big>
  • <small>
  • <sub>
  • <sup>
  • <font color="...">
  • <ul> + <li>
  • <ol> + <li>

请注意,我们的应用程序对安全至关重要。这意味着我们要实现的任何方法都应该只接受上面的标签(可能还有一些仅格式化标签),其他所有内容都必须正确地进行实体编码。毫无疑问,通过查看(简单的)代码/代码解释,应该可以很容易地验证这是真的。代码越短,审查越容易。完全手工制作的编码器对此不利。

最佳答案

听起来你真正要找的是 HTMLPurifier

http://htmlpurifier.org/

FWIW 我根本不隶属于 HTMLPurifier,我是 OWASP ESAPI 项目的项目负责人。

关于php - OWASP ESAPI encodeForHTML 带有一些允许的格式化标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17392272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com