2021 年 5 月 6 日
Django 3.1.10 修复了 3.1.9 中的一个安全问题。
URLValidator
接受了输入中的换行符,因此存在注入头的可能性¶在 Python 3.9.5+ 上,URLValidator
没有禁止换行和制表符。如果你在 HTTP 响应中使用带换行符的值,你可能会遭受头注入攻击。Django 本身没有漏洞,因为 HttpResponse
禁止在 HTTP 头中使用换行符。
此外,使用 URLValidator
的 URLField
表单字段在 Python 3.9.5+ 上默默地删除了换行符和制表符,所以只有在你在表单字段之外使用这个验证器时才存在换行符进入你的数据的可能性。
这个问题是由 bpo-43882 修正所引入的。
5月 12, 2023