睡衣 + Django => CSRF混乱,403错误

2024-05-23 17:40:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有睡衣和Django通过Apache2运行,在windows7上有mod\wsgi。不过,我不认为我从这些东西的设置中得到问题:唯一不起作用的是试图从睡衣生成的表单中发布信息。尝试在我的应用程序中使用Pyjamas生成的表单会生成403个(“CSRF验证失败”错误页面)。在

我花了好几个小时来研究这个问题,并且阅读了我能找到的所有关于CSRF和睡衣的答案,并且做了很多关于CSRF和Django,Django和Ajax等的外部研究。如果这个问题没有触及到任何人谁知道在这种情况下该怎么做,我想我已经缩小了问题的本质。在

如何将{% csrf_token %}放入睡衣生成的表单?这似乎是不可能的,因为据我所知,CSRF令牌不是持久性的,而睡衣生成的页面是。。。我的Pyjamas页面是从Pyjamas.py文件生成的,结果是一个文件夹中充满了硬编码的内容。如何将当前的CSRF令牌集成到已经编码的形式中?在

请不要犹豫问更多的细节,这个问题一直是难以置信的难以驾驭。关于Pyjamas&Django集成的公开信息都没有考虑到这一点;我发现的唯一一个似乎知道Django中CSRF的解决方案是,您应该禁用CSRF保护(我可以禁用CSRF保护,但我可以用什么保护来代替它呢?我自己的饼干系统?在任何情况下禁用CSRF保护是不是一个可怕的主意。在

谢谢你!在


Tags: django信息mod应用程序表单wsgi编码错误
1条回答
网友
1楼 · 发布于 2024-05-23 17:40:35

您需要编写一些JavaScript来从cookie(HTTP请求的一部分)获取CSRF令牌,然后在提交时将其添加到表单中。在

从这个答案开始:Django CSRF check failing with an Ajax POST request

这里的关键是JavaScript可以像Pyjamas生成的文件一样持久,因为它们将令牌的处理推迟到表单提交。在

相关问题 更多 >