Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django CSRF错误:是症状还是根本原因?_Python_Django_Api_Csrf - Fatal编程技术网

Python Django CSRF错误:是症状还是根本原因?

Python Django CSRF错误:是症状还是根本原因?,python,django,api,csrf,Python,Django,Api,Csrf,这更多的是分享经验,而不是一个问题 因此,Django可能会抛出一个CSRF错误,并伴有403禁止代码。有许多帖子或多或少地建议为CSRF令牌/cookie添加某种例外/豁免 根据我的经验,CSRF错误只是一种症状,而不是根本原因。根本原因是什么 甚至在执行任何视图代码之前,也会发生此错误。因此,这很有可能是API问题 您的API路径可能不正确。例如,您可以从前端请求/api/x/data/,而实际上对应的后端api是/api/x/y/data/ 我希望Django能抛出一个更好的错误消息 请随

这更多的是分享经验,而不是一个问题

因此,Django可能会抛出一个CSRF错误,并伴有403禁止代码。有许多帖子或多或少地建议为CSRF令牌/cookie添加某种例外/豁免

根据我的经验,CSRF错误只是一种症状,而不是根本原因。根本原因是什么

甚至在执行任何
视图
代码之前,也会发生此错误。因此,这很有可能是API问题

您的API路径可能不正确。例如,您可以从前端请求
/api/x/data/
,而实际上对应的后端api是
/api/x/y/data/

我希望Django能抛出一个更好的错误消息


请随意分享您遇到的此错误。

这仅仅意味着您的请求cookie中没有CSRF cookie,或者您没有在表单中发布CSRF令牌。有什么要讨论的?Django如何抛出更好的错误消息?您可能会说为什么需要csrf cookie或令牌,因为它可以保护您免受跨站点请求伪造(csrf)攻击。查看一下CSRF错误可能是一种症状,而不是根本原因。因此,作为一个错误,它是误导性的。到目前为止,在我所有的CSRF错误中,实际的错误是其他的。CSRF错误不是任何症状。这就是我上面说的意思。您说“您的API路径可能不正确”,那么Django应该如何判断您向错误的url发出请求的事实呢?这显然是不可行的要求,甚至不可能和可能误导。假设有人由于正确的原因收到错误,但由于Django说“您可能向不正确的url发出了请求”…如果我的API请求被破坏,我宁愿选择一条消息,例如“无法访问请求的资源”或更好的“路径X未找到资源”,而不是CSRF错误。可能是没有设置CSRF令牌的情况。但这件事并没有发生在我身上。分段故障与CSRF并行。你知道某个地方有记忆问题,但它到底是从哪里来的,这是一个“谜”。出现分段错误的原因至少有4个。CSRF同样可能来自其他原因,而不是未设置标记。其中一个原因是API(请求)损坏。