首页 > 解决方案 > 破折号中的服务器错误处理(404、403 等)

问题描述

我正在运行一个通过烧瓶登录进行身份验证的破折号应用程序,并且在一些安全测试期间出现了该应用程序在身份验证和/或权限检查失败时不会产生正确的错误。

到目前为止,我所做的只是在权限检查失败时在回调中返回“403”,但当然 dash 会修改这些以适应其自己的 API。

因此,我得到的不是适当的错误,而是带有这样的 JSON 响应的 200:,{"response": {"props": {"displayed": "403"}}}或者如果 Dash API 无法处理“403”字符串,我会得到 500。

标签: pythonhttpflaskplotly-dashflask-login

解决方案


经过对flask的一些研究,最合适的解决方案似乎是使用flask的响应发送服务器错误代码,然后在回调中做任何你认为合适的事情,例如:

if not current_user.authenticated:
    Response('Not permitted', 403)
    return html.Div('Not permitted')

或者

if not current_user.authenticated:
    Response('Not permitted', 403)
    raise PreventUpdate

推荐阅读