“逃脱”在将变量传递给 Django 中的模板之前
我需要将 HTML 代码传递给 messages
,并且我使用模板来执行此操作。
为了使 HTML 正常工作,我在模板中将消息标记为安全:
{{消息|安全}}
但是,当我在消息中显示用户生成的内容时,这使我容易受到攻击。例如:
messages.success(request, "太棒了! \“%s\”现已激活。“% user_toy)
如果 user_toy 是由用户生成的,HTML 将不会转义。我该如何解决这个问题?
I need to pass HTML code to messages
and am doing so using templates.
In order to get the HTML to work, I mark the message as safe in my template:
{{ message|safe }}
However, this leaves me open to attack as I'm displaying user generated content in the message. For example:
messages.success(request, "Awesome!
\"%s\" is now active." % user_toy)
If user_toy is generated by the user, HTML will go unescaped. How do I fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我能够使用
django.utils.html
中的escape
修复此问题:I was able to fix this using
escape
fromdjango.utils.html
: