У меня есть этот перехватчик запросов $http
app.config(function($httpProvider) {
$httpProvider.interceptors.push(function() {
return {
request: function(req) {
// Set the `Authorization` header for every outgoing HTTP request
req.headers['cdt_app_header'] = 'tamales';
return req;
}
};
});
});
Можно ли добавить заголовок или файл cookie для каждого запроса $http, но сохранить значение заголовка безопасным/не видимым с помощью JavaScript?
Мы можем добавить слой обфускации с этим заголовком, чтобы предотвратить легкий доступ к нашим конечным точкам API, но я задаюсь вопросом о более надежном решении.
Файлы cookie используются для безопасных сеансов, и они более безопасны, поскольку к ним нельзя получить доступ с помощью JavaScript. Скажем, у нас есть пользователь, который может выполнить этот запрос с интерфейсом:
GET /api/users
мы не хотим, чтобы они могли сделать простой запрос с помощью cURL или браузера без дополнительной информации. Куки файлы, которые мы им даем, дадут им возможность использовать адресную строку браузера, чтобы сделать запрос GET/api/users, но если мы добавим требование о наличии другого cookie или заголовка, то мы можем помешать им получить доступ к конечным точкам которые разрешены, в формате, который мы действительно не хотим использовать.
Другими словами, мы хотим сделать все возможное, чтобы предоставить им доступ, но только в контексте внешнего приложения Angular.