Я использую REST API и сомневаюсь в содержании ответа в случае ошибки. Например, я использую токен jwt для аутентификации. Если клиент предоставляет неверный токен, сервер отвечает кодом состояния 401 со следующим телом
{
"status":"failed",
"details":"JWT token not valid"
}
Если клиент не предоставляет токен, сервер отвечает кодом состояния 401 со следующим телом
{
"status":"failed",
"details":"missing JWT token"
}
и т. Д.
Эти ответы HTTP информативны и полезны при отладке. Проблема в том, что злоумышленник теперь знает, что API использует токен вместо базовой аутентификации или системы аутентификации другого типа.
По этой причине сейчас я рассматриваю возможность ответа только с кодом статуса и пустым телом. Этот HTTP-ответ не является информативным. Злоумышленник не знает, что происходит, и то же самое происходит со мной при отладке.
Мой вопрос: какова лучшая практика? Информационный контент или нет? Нужно ли создавать безопасность с неясностью или нет?
Спасибо