我正在使用gae-boilerplate在GAE上构建我的简单Web应用程序,我注意到为了使我的post请求处理程序被调用,我需要在我的表单中添加一个隐藏的文件,它是:
<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">
如果我没有添加这一行,我将得到403错误,这是因为gae-boilerplate中的以下检查(在BaseHandler中的dispatch方法内):
if self.request.method == "POST" and not self.request.path.startswith('/taskqueue'):
token = self.session.get('_csrf_token')
if not token or token != self.request.get('_csrf_token'):
self.abort(403)
在GAE中生成表单时很好,将正确生成csrf_token()。现在,我的问题是:
当我尝试从移动应用发送帖子请求(实际上,它是json而不是表格数据)时,我怎么知道应该在此请求中设置_csrf_token?
抱歉,我不熟悉session / csrf_token在web中的工作方式。如果我添加代码以绕过令牌检查,出于某些安全原因,这是一个坏主意吗?