django 在 json 中转义为 html
Posted
技术标签:
【中文标题】django 在 json 中转义为 html【英文标题】:django escaping for html in json 【发布时间】:2011-05-06 00:21:19 【问题描述】:我正在浏览我的 django 网站寻找 xss 问题。我想我已经覆盖了它,因为 django 会自动转义。所以我把通常的 alert('foo');在示例数据中,我发现了一个巨大的漏洞,我使用 ajax 将数据下拉为 json 并使用 jquery.append 添加它,这些都没有被 html 转义,哎呀。
所以我的问题是解决这个问题的最佳方法是什么:
使用我自己的基于参数自动转义的 simplejson 副本。 只要确保在创建将被 json 转储的 dicts 时始终使用 escape() 始终在客户端使用 .text 我没想到的事情这似乎是一个很容易让自己陷入的问题。
【问题讨论】:
【参考方案1】:做一些明显/透明/自动的事情,就像 Joel 建议的那样:http://www.joelonsoftware.com/articles/Wrong.html
不过,我不明白 "alert('foo');" 是怎么回事注入 HTML 时可能有害。如果它被“”标签包围,那将是有害的。
对于转义 HTML,您必须确定是要在输入还是输出上执行此操作。根据您想要实现的目标(例如,允许 HTML 标记的子集)并考虑性能问题,您可能希望转义输入并将转义的 HTML 存储到数据库中。
【讨论】:
感谢您的回复。我的意思是放 。哎呀。我绝对不想在存储标签时删除它们,在很多情况下 或 " 是有效输入并且需要在 html 中输出。不过好主意。以上是关于django 在 json 中转义为 html的主要内容,如果未能解决你的问题,请参考以下文章