Django rest framework Django REST字符串转义

Django rest framework Django REST字符串转义,django-rest-framework,Django Rest Framework,我有一个使用Django REST框架开发的REST API。我想知道我是否必须对来自POST请求的数据进行字符串转义(在它存储在数据库中之前),还是DRF已经为我这样做了? 我知道Django做了一些自动转义,但不确定DRF是否也是这样 转义用户输入是抵御XSS攻击的一种好方法。通常,它是在渲染时完成的,而不是在数据公开时完成的。例如,在Django服务器端模板中,它是在模板中完成的,而不是在ORM中。这允许开发人员根据自己的需要选择如何呈现数据(例如,某些数据可能会被降价) 看看一些客户端框

我有一个使用Django REST框架开发的REST API。我想知道我是否必须对来自POST请求的数据进行字符串转义(在它存储在数据库中之前),还是DRF已经为我这样做了? 我知道Django做了一些自动转义,但不确定DRF是否也是这样

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

看看一些客户端框架,它们默认都会转义输出,并强制开发人员在需要呈现原始html时显式声明:

  • 反应:
  • 角度2:
  • Vue:

我建议不要试图将其强制到API中,而是强制到API的消费者中。

我做了一个小测试,发送了一个带有html标记的字符串的请求,即“Foo”。此字符串未发生任何变化,已按“原样”保存。那么我的问题是-如何避免XSS攻击?我是否需要担心在Django中渲染之前将未转换的字符串保存到DB中?我在Django中看到了一些实用函数,比如escape或strip_标记,但是我找不到关于是否以及何时使用它们的信息。