如何在flask应用程序中禁止对POST端点的非浏览器请求(用户代理)?

时间:2019-04-30 10:15:10

标签: python security flask connexion

我正在加载登录表单以进行用户验证。我想知道是否可以限制flask应用程序中的终结点,使其仅响应以前为其加载表单的浏览器请求。

我认为CSRF令牌可能是一种选择,但我想知道是否有更好的方法来做到这一点。

我希望能够禁止Postman,curl和其他用户代理向特定终结点发送请求,除非它来自具有UI登录表单的浏览器。

1 个答案:

答案 0 :(得分:1)

您可以从if($result){ $session->message('<div class="btn bg-success">Picture uploaded sucessfully.</div>'); redirect_to('picture_upload.php'); } 属性确定用户代理。例如。就我而言,使用Chrome浏览器访问Flask应用后,它具有以下值:

request.user_agent

但是,请记住,将用户代理更改为所需的内容是一件容易的事。因此,我不会对您所获得的东西给予太多重视。