Django REST 字符串转义



我有一个使用 Django Rest Framework 开发的 REST API。我想知道我是否必须对来自 POST 请求的数据进行字符串转义(在数据存储到数据库中之前(,或者 DRF 是否已经为我做了这件事?我知道 Django 会做一些自动转义,但不确定 DRF 是否也是如此。

转义用户输入抵御 XSS 攻击的一种很好的防御措施。通常,它是在呈现点完成的,而不是在数据公开的点。例如,在 Django 服务器端模板中,它是在模板中完成的,而不是在 ORM 中完成的。这允许开发人员根据自己的需要选择如何呈现数据(例如,某些数据可能是降价的(。

看看一些客户端框架,它们默认都转义输出,并强制开发人员明确声明他们想要呈现原始 html:

  • 反应:设置危险HTML
  • 角度 2: [内部HTML]
  • Vue: v-html

我建议不要尝试将其强制到 API 中,而是强制到 API 的使用者中。

最新更新