移动应用程序的 Django 和 CSRF 保护

Django and CSRF protection for mobile apps

我正在使用 Django + Django REST Framework + Django OAuth 工具包。

我知道 AJAX 来自网络会话的调用需要 CSRF 保护,但据我所知,移动应用程序不会像 CSRF 检查所要防止的那样发生在专用应用程序中.如果一个人有 OAuth 令牌,他们就不会使用我们的网络应用程序,所以在这种情况下我似乎不需要执行 CSRF 检查。

当请求包含 OAuth 令牌时,是否有任何方法可以禁用 REST Framework 端点上的 CSRF 检查,如果可以,这样做是否安全?还是应该所有个请求无论如何都应该被CSRF机制保护?

您应该 DRF's token authentication 与移动应用一起使用。最初,用户使用用户名和密码登录到您的后端,然后后端为移动应用程序的该实例颁发一个令牌,该实例 [安全地] 将令牌存储在本地。通过令牌身份验证和在每次请求时将您的凭据(超过 SSL/HTTPS)发送到服务器的现实,您无需进行 CSRF 检查,因此不会进行 CSRF 检查。