繁体   English   中英

如何在 django rest 框架中实现 CSRF 令牌?

[英]How do you implement CSRF tokens in django rest framework?

I have noticed that when using django and you make a post request, using a form for example, django asks you to add the csrf token, but when I was fetching data from an api created with django rest framework with react I realized that when I没有发送 csrf 令牌,应用程序没有任何错误。

在这个应用程序中,我正在使用带有 knox 的令牌身份验证,并且我看到了一些关于如何将 csrf 令牌与 session 身份验证一起使用的帖子。

我的问题是令牌身份验证是否不需要 csrf 令牌或者它们是否通过反应自动传递? 提前致谢。

@Diegoa87 - 你把一切都搞混了。

CSRF 令牌是一个唯一的、秘密的、不可预测的值,由服务器端应用程序生成并以包含在客户端发出的后续 HTTP 请求中的方式传输到客户端。 当发出后面的请求时,服务器端应用程序验证请求是否包含预期的令牌,如果令牌丢失或无效,则拒绝请求。 GET请求不需要它。 它不是一种对用户进行身份验证或授权的形式。 它是一种验证请求的形式。 添加 CSRF 令牌以防止 CSRF 攻击。 然后有一个叫SSRF的东西

基于令牌的身份验证- 这与请求的类型无关。 它是验证用户是否是有效用户。

授权——这是为了确保被请求的用户有足够的权限来访问受保护的资源。

我的问题是令牌身份验证是否不需要 csrf 令牌,或者它们是否通过反应自动传递? 提前致谢。

据我所知,令牌在 header 中传递,这适用于每个请求(GET、POST、PUT、DELETE)。 Csrf 令牌以 HTML 形式添加,主要用于 POST、PUT、DELETE。 可以改变服务器中资源的 state 的东西。 希望这是有道理的。

我不是 React 方面的专家,但没有什么是自动传递的。 您必须在请求的 header 中添加令牌。

Csrf 令牌与请求相关联。

令牌/JWT 令牌与发出请求的用户相关联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM