Как отличить браузерных потребителей от бэкэнд-потребителей службы REST - PullRequest
0 голосов
/ 27 мая 2020

Ситуация

Существует REST API, который в настоящее время используется другими серверными системами.

Теперь этот же REST API будет использоваться одним page, и этому SPA требуются некоторые дополнительные меры безопасности (среди прочего, проверка токена CSRF), но эти дополнительные меры безопасности должны применяться только к конечным пользователям, использующим обычные браузеры, а не к другим серверным процессам, чтобы эти существующие другие серверы продолжали работать без каких-либо изменений.


Вопрос

Как вы отличите guish между тем, когда браузер использует REST API, и когда его использует другой бэкэнд?

Есть ли заголовок, который будет отправлен любыми современными браузерами и не может быть отключен или не может быть изменен?

Может быть, User-Agent? Или это тоже отправляют библиотеки REST (на любом языке)?

Или Referer? Или Origin? Или какие-то другие заголовки?

Или что-то еще, кроме заголовка?

1 Ответ

1 голос
/ 27 мая 2020

Есть ли заголовок, который будет отправлен любыми современными браузерами и не может быть отключен или не может быть изменен?

Насколько я знаю, вы не не найду то, что вы ищете.

User-Agent близко

Поле заголовка «User-Agent» содержит информацию о пользователе агент, отправляющий запрос, который часто используется серверами, чтобы помочь определить объем сообщаемых проблем совместимости, обойти или адаптировать ответы, чтобы избежать определенных ограничений пользовательского агента, а также для аналитики, касающейся использования браузера или операционной системы. Пользовательский агент ДОЛЖЕН отправлять поле User-Agent в каждом запросе, если специально не настроено для этого.

Но это определенно не "защищено от взлома"; это просто текстовый заголовок, многие пользовательские агенты позволят вам настроить его и т. д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...