python - 破折号中的服务器错误处理(404、403 等)
问题描述
我正在运行一个通过烧瓶登录进行身份验证的破折号应用程序,并且在一些安全测试期间出现了该应用程序在身份验证和/或权限检查失败时不会产生正确的错误。
到目前为止,我所做的只是在权限检查失败时在回调中返回“403”,但当然 dash 会修改这些以适应其自己的 API。
因此,我得到的不是适当的错误,而是带有这样的 JSON 响应的 200:,{"response": {"props": {"displayed": "403"}}}
或者如果 Dash API 无法处理“403”字符串,我会得到 500。
解决方案
经过对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
推荐阅读
- javascript - Vuejs 使用 v-model 指令输入输入会以某种方式删除 CSS 类
- python - 在 tkinter 中,当我运行搜索并将结果显示为新标签时,如何从一个函数中删除标签?
- mysql - MySQL - 从其他表插入行时,操作数应包含 1 列
- linux - 将数据包转发到窗口
- haskell - `arr fst` 是如何自然转换的?
- java - 我正在尝试在 java 中制作电话验证程序,为什么会出现“else without if”错误?
- java - 如何使用 Java Apache HttpClient 正确发出 POST 请求?
- ios - 在 Master App 中组合的两个模块之间传递数据
- angular - TypeError:无法读取空 p-treetable 角度的属性“parentElement”
- kubernetes - Rancher:kube-system pod 卡在 ContainerCreating 上