我在应用引擎上运行烧瓶。我需要让用户上传一些文件。出于安全原因,我在整个应用程序中使用csrf = CsrfProtect(app)
,使用flask_wtf中的@csrf.exempt
修饰符可以免除特定的url。(隐式拒绝比隐式允许好。)
使用blobstore.create_upload_url
从blobstore获取上载url很好,但是上载本身会失败,并返回400
;CSRF token missing or incorrect.
此问题出现在开发服务器上。我还没有在真正的服务器上测试它,因为它正在生产中。在
如何排除/_ah/
路径,以便上载正常工作?在
我倾向于使用http://flask-wtf.readthedocs.org/en/latest/csrf.html中概述的方法:
该页给出的原始示例是:
当然,在您的情况下,您可以将其更改为:
^{pr2}$注意,这仍然是默认的拒绝每个请求都需要CSRF保护。。。除非路径以
/_ah/
开头的用户,完全符合您的要求。在好吧,所以真正的问题是我给了
blobstore.create_upload_url()
的successpath参数(即第一个)的绝对url,导致通知成功的请求在加载根路径(/
)时导致csrf错误。我把它改成了一个相对于根的路径,现在只要正常使用@csrf.exempt
就可以了。在相关问题 更多 >
编程相关推荐