Как запретить не браузерные запросы (пользовательские агенты) к конечной точке POST в приложении фляги? - PullRequest
0 голосов
/ 30 апреля 2019

Я загружаю форму входа для проверки пользователя.Мне было интересно, смогу ли я ограничить конечную точку в приложении flask, чтобы она отвечала только на запросы браузера, для которых я ранее загрузил форму.

Я думаю, что токен CSRF может быть вариантом, но мне было интересно, есть лилучший способ сделать это.

Я хочу иметь возможность запретить Postman, curl и другим пользовательским агентам отправлять запросы к определенной конечной точке, если только это не из браузера с формой входа в систему пользовательского интерфейса.

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете определить пользовательский агент из атрибута request.user_agent.Например, в моем случае после доступа к приложению Flask с помощью браузера Chrome оно имеет следующее значение:

{'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'}

Однако имейте в виду, что изменение пользовательского агента на то, что вы хотите, - простая задача.Таким образом, я бы не стал придавать большое значение тому, что вы получаете.

...