Есть ли способ прочитать безопасный файл cookie с помощью JavaScript?
Я попытался сделать это с помощью document.cookie
и, насколько я могу судить в этой статье о безопасных файлах cookie и флаге HttpOnly , я не могу получить доступ к безопасному файлу cookie таким образом.
Может ли кто-нибудь предложить обходной путь?
Ответы:
Разные браузеры включают разные меры безопасности, когда установлен флаг HTTPOnly . Например, Opera и Safari не препятствуют записи javascript в cookie. Однако в последних версиях всех основных браузеров чтение всегда запрещено.
Но что еще более важно, почему вы хотите читать
HTTPOnly
cookie? Если вы разработчик, просто отключите флаг и обязательно протестируйте свой код для xss. Я рекомендую вам избегать отключения этого флага, если это вообще возможно.HTTPOnly
Флаг и «безопасный флаг» (который заставляет кук для отправки через HTTPS) всегда должны быть установлены.Если вы злоумышленник , вы хотите захватить сеанс . Но есть простой способ перехватить сеанс, несмотря на
HTTPOnly
флаг. Вы все еще можете ездить на сеансе, не зная идентификатора сеанса. Червь MySpace Samy сделал именно это. Он использовал XHR для чтения токена CSRF, а затем для выполнения авторизованной задачи. Следовательно, злоумышленник может сделать практически все, что может сделать зарегистрированный пользователь.Люди слишком сильно верят в
HTTPOnly
флаг, XSS все еще можно использовать. Вы должны установить барьеры вокруг чувствительных функций. Например, для смены пароля необходимо указать текущий пароль. Для возможности администратора создать новую учетную запись должна потребоваться капча, которая является методом предотвращения CSRF, который нельзя легко обойти с помощью XHR .источник
Суть файлов cookie HttpOnly в том, что к ним нельзя получить доступ с помощью JavaScript.
Единственный способ (за исключением использования ошибок браузера) для вашего сценария прочитать их - это иметь на сервере взаимодействующий сценарий, который будет считывать значение cookie и выводить его обратно как часть содержимого ответа. Но если вы можете и будете это делать, зачем вообще использовать файлы cookie HttpOnly?
источник
Один из способов - использовать веб-инспектор Safari, и на вкладке хранилища вы можете увидеть все файлы cookie, httpOnly или нет, и просто выберите файл cookie Command + C, чтобы скопировать его.
Получив строку, вы можете легко проанализировать ее с помощью любого парсера файлов cookie или простого javascript.
источник