Обработка ошибок сервера (404, 403 и т. Д.) В сюжетном тире - PullRequest
0 голосов
/ 20 сентября 2019

Я запускаю приложение-черточку с аутентификацией через flask-login, и во время некоторых тестов безопасности обнаружилось, что приложение не выдает правильные ошибки при сбое проверки подлинности и / или проверки прав доступа.

WhanДо сих пор я просто возвращал '403' в обратном вызове, если проверка разрешения не удалась, но, конечно, dash изменит их в соответствии со своим собственным API.

Так что вместо соответствующей ошибки я получаю либо 200с ответом JSON, подобным этому: {"response": {"props": {"displayed": "403"}}}, или я получаю 500, если Dash API не может обработать строку '403'.

1 Ответ

0 голосов
/ 20 сентября 2019

После некоторого исследования о фляге наиболее подходящим решением, по-видимому, является использование ответа фляги для отправки кода ошибки сервера, а затем выполните все, что вы считаете подходящим в обратном вызове, например:

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
...