"缺少CSRF令牌"当使用Flal与Flask应用程序时

时间:2016-02-04 07:08:05

标签: python curl flask

我正在尝试使用curl在Flask应用上提交表单。不幸的是,我一直遇到" CSRF令牌丢失"错误。

我试过了:

curl -X POST --form csrf_token=token --form data=@file.txt --form submit=submit {url} -v

我在浏览器中打开时使用了应用中的csrf_token。我还查看了https://flask-wtf.readthedocs.org/en/latest/csrf.html并尝试在标题中设置X-CSRFToken,但仍然遇到了同样的错误。有关使用curl将令牌提供给烧瓶应用程序的正确方法的任何建议吗?

1 个答案:

答案 0 :(得分:1)

问题是你只是发送令牌和烧瓶无法让你的会话存在于浏览器cookie中。因此,如果您希望通过curl访问您的视图不够在POST请求中传递令牌值,您必须附加Cookie 。您可以使用以下命令将cookie写入本地文件:

curl -c /path/to/cookiefile {url}

然后修改它并使用附加的cookie和令牌向您的服务器发送POST请求:

curl -b /path/to/cookiefile -X POST --form csrf_token=token --form data=@file.txt --form submit=submit {url} -v