Ситуация
Существует REST API, который в настоящее время используется другими серверными системами.
Теперь этот же REST API будет использоваться одним page, и этому SPA требуются некоторые дополнительные меры безопасности (среди прочего, проверка токена CSRF), но эти дополнительные меры безопасности должны применяться только к конечным пользователям, использующим обычные браузеры, а не к другим серверным процессам, чтобы эти существующие другие серверы продолжали работать без каких-либо изменений.
Вопрос
Как вы отличите guish между тем, когда браузер использует REST API, и когда его использует другой бэкэнд?
Есть ли заголовок, который будет отправлен любыми современными браузерами и не может быть отключен или не может быть изменен?
Может быть, User-Agent
? Или это тоже отправляют библиотеки REST (на любом языке)?
Или Referer
? Или Origin
? Или какие-то другие заголовки?
Или что-то еще, кроме заголовка?