我正试图找到一些东西,在找到任何远程看起来像HTML或Javascript的东西时都会返回异常。我已经想好了如何针对单个视图执行此操作,但这不是一个可扩展的解决方案,最终我需要防止代码被保存到数据库中,无论注入攻击的目标是什么视图。
这是我正在寻找的功能。
ILLEGAL_CHARS = '<>[]{}():;,'.split()
# bunch of code in between
for value in [company_name, url, status, information, lt_type, company_source]:
if any(char in value for char in ILLEGAL_CHARS):
raise Exception(f"You passed one of several illegal characters: {ILLEGAL_CHARS}")
我使用的是django-rest框架,所以我必须在后台处理它。谢谢
实际上,您不需要净化任何用户输入,因为当您在模板中显示它们时,jinja{{object}}
将确保在您将它们标记为安全{{object|safe}}
之前不会执行任何html或java脚本,但如果您不想将它们保存在数据库中,这可能有助于净化提交表单数据中的html