1

我想知道是否有办法验证请求(比如 POST 或 GET)是通过 https 发出的,

我需要在webapp2.RequestHandler中检查这一点,以使每个不是通过 https 发送的请求都无效

此致

4

3 回答 3

1

检查 self.request.environ['HTTPS'] == 'on' # 或 'off'。如果您只使用 https,请考虑使用secure:always如下app.yaml

handlers:
- url: /.*
  script: main.app
  secure: always
于 2013-03-20T05:22:42.300 回答
0

上面提供的使用 app.yaml 配置的答案效果很好,但在某些情况下,您需要检查 Python 代码本身的粒度,我相信这是您所要求的,因为您想检查 RequestHandler。

这是您可以在 RequestHandler 中执行的操作:

if self.request.scheme.lower() != 'https':
    self.abort(403)
else:
    # handle your request here, you know it's secured!
于 2014-01-17T02:41:48.023 回答
0

如果您使用的是 GAE Flex(secure:指令不​​起作用),我发现检测到这一点的唯一方法(我自己重定向 http->https)是检查是否request.environ['HTTP_X_FORWARDED_PROTO'] == 'https'

于 2017-06-21T09:54:59.803 回答