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



我注意到,当使用django和你发出post请求时,例如,使用表单,django要求你添加csrf令牌,但是当我从django rest框架与react创建的api中获取数据时,我意识到,当我没有发送csrf令牌时,应用程序没有任何错误。

在这个应用程序中,我使用令牌认证与knox,我已经看到了一些关于如何使用csrf令牌与会话认证的帖子。

我的问题是,如果令牌认证不需要csrf令牌,或者它们是由react自动传递的?提前谢谢。

@Diegoa87 -你搞混了。

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

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

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

我的问题是,如果令牌认证不需要csrf令牌,或者它们是由react自动传递的?提前谢谢。

据我所知,令牌在头中传递,这是针对每个请求(GET, POST, PUT, DELETE)。在HTML表单中添加Csrf令牌主要用于POST、PUT、DELETE。可以改变服务器中资源状态的东西。希望这对你有意义。

我不是React专家,但没有什么是自动通过的。您必须在请求头中添加令牌。

Csrf令牌绑定到一个请求。

令牌/JWT令牌绑定到发出请求的用户。

最新更新