我正在加载登录表单以进行用户验证。我想知道是否可以将flask
应用程序中的端点限制为仅响应我之前为其加载表单的浏览器请求。
我认为 CSRF 令牌可能是一种选择,但我想知道是否有更好的方法来做到这一点。
我希望能够禁止 Postman、curl 和其他用户代理向特定端点发送请求,除非它来自具有 UI 登录表单的浏览器。
request.user_agent
您可以从属性确定用户代理。例如,在我使用 Chrome 浏览器访问 Flask 应用程序后,它具有以下值:
{'browser': 'chrome',
'language': None,
'platform': 'linux',
'string': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like '
'Gecko) Chrome/71.0.3578.80 Safari/537.36',
'version': '71.0.3578.80'}
但是,请记住,将用户代理更改为您想要的任何内容都是一项简单的任务。因此,我不会太看重你得到的东西。