gpt4 book ai didi

Django:OWASP 推荐的属性中额外的 HTML 字符转义

转载 作者:行者123 更新时间:2023-12-02 03:32:20 27 4
gpt4 key购买 nike

Django 转义这些字符:& < > " ' ,这足以在 HTML 元素中插入数据。但是,如果要在属性中设置不受信任的数据,OWASP建议转义更多字符:

Except for alphanumeric characters, escape all characters with ASCII values less than 256 with the &#xHH; format (or a named entity if available) to prevent switching out of the attribute.



原因是,很容易遗漏属性上的引号,而未引用的属性可能会被许多字符打破,包括 [space] % * + , - / ; < = > ^ and |
是否有内置函数或库来实现这一点?

附言另一篇值得一读的博文解释了为什么在某些情况下需要更广泛的转义函数。 : http://wonko.com/post/html-escaping

最佳答案

Django 中没有为此提供内置功能。我不知道有一个图书馆。

内置的安全 HTML 过滤器转义了属性和非属性负载,因此可能只需要一个额外的属性过滤器功能。

您可以通过打开 a feature request against Django in the Django issue tracker 来提出建议.

我不确定是否可以更改现有的内置过滤器。我认为将此功能添加到 Django 内置过滤器可能会破坏许多遗留应用程序。我不是这里的专家,所以我建议你把讨论交给 Django 作者。利用风险非常小,相对于破坏现有 Django 应用程序的可能头痛而言,我不确定如何接收行为变化。

另一方面,如果您需要记住为每个属性替换编写过滤器,您不妨记住简单地关闭引号。我认为这种技术在不将模板作为纯文本处理的框架中更有用。

同时,您也可以尝试monkey-patching Django 过滤器函数通过编写您自己的过滤器替换来执行额外的转义。

关于Django:OWASP 推荐的属性中额外的 HTML 字符转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871882/

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