Является ли это безопасным способом предотвращения межсайтовых подделок запросов (CSRF)?
Наше приложение таким образом:
Каждый пользователь должен войтистраница входа отправляется обратно на сервер, и если авторизованному пользователю возвращается приложение SPA.SPA-приложение полностью AJAXHTTPSОбычно мы посылаемsessionid
печенье иcsrftoken
печенье. Значение cookie-токена будет включено в качестве x-заголовка для любых сообщений AJAX, и все данные проверяются на сервере при каждом запросе.
Поскольку страница SPA создается до ее возвращения в браузер, мы можем встраивать в нее все, что захотим. Мы бы хотели, чтобы конечный пользователь мог войти в систему на нескольких вкладках, одна из которых не влияет на другие.
Что бы мы предпочли сделать:
отправьте sessionid как файл cookie, как и раньше, но имя файла cookie будет случайным.нет csrftoken, но вместо этого вставьте случайное имя файла cookie в подпрограмму javascript, которая добавила x-заголовок к запросам почты AJAX.сервер получит идентификатор сеанса из x-заголовка.Это дает нам возможность разрешить несколько входов в систему, каждый из которых имеет уникальныйsessionid
имя cookie, но каждый пост-запрос имеет стандартизированное имя x-заголовка.
Будет ли это так же безопасно, как сессионный cookie, метод csrftoken cookie / x-header?