В обоих случаях ключ API будет передаваться в незашифрованном виде.Таким образом, оба являются небезопасными, если вы не используете HTTPS.
На практике заголовок HTTP оказывается немного более безопасным, потому что -
- URL-адрес сохраняется в истории браузера
- URL-адрес сохраняется в журналах доступа на стороне сервера.
В стороне: REST API через Интернет не может быть защищен, если вы не попросите пользователя войти в систему с его учетными данными.Любой может легко идентифицировать ключ API и отправлять запросы на ваш сервер.
РЕДАКТИРОВАТЬ: В ответ на комментарии @ segfault -
Пользователь веб-сайта обычно не вводит ключ API.Они вводят свои имя пользователя и пароль, и они продаются, чтобы получить ключ API или токен доступа, как это обычно называется.
Если вы заставляете своих пользователей вводить ключ API вместо имени пользователя и пароля, хорошоЭто было бы безопасно.Но, как я уже сказал, я не видел, чтобы какое-либо серьезное приложение делало это.
В частности, я имел в виду «Если бэкэнд-API ожидает ключ API, и вы делаете вызовы AJAX из браузера, а вы нене спрашивайте пользователя о каких-то учетных данных, вы не уверены "