0

我正在使用gae-boilerplate在 GAE 上构建我的简单 Web 应用程序,我注意到为了使我的发布请求处理程序被调用,我需要在我的表单中添加一个隐藏文件,它是:

<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">

如果我没有添加这一行,我会得到 403 错误,这是因为在 gae-boilerplate 中进行了以下检查(在 BaseHandler 中的调度方法内):

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

4

0 回答 0