gae-boilerplate中的POST方法

时间:2013-06-11 07:52:57

标签: python google-app-engine boilerplate

我正在使用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中的工作方式。如果我添加代码以绕过令牌检查,出于某些安全原因,这是一个坏主意吗?

0 个答案:

没有答案