Ответ 1
Различные браузеры включают разные меры безопасности, когда установлен флаг HTTPOnly. Например, Opera и Safari не запрещают JavaScript писать в cookie. Тем не менее, чтение всегда запрещено в последней версии всех основных браузеров.
Но что более важно, почему вы хотите прочитать HTTPOnly
cookie? Если вы разработчик, просто отключите флаг и убедитесь, что вы проверили свой код на xss. Я рекомендую вам избегать отключения этого флага, если это возможно. HTTPOnly
должны быть установлены флаг HTTPOnly
и "безопасный флаг" (который заставляет куки отправляться через https).
Если вы злоумышленник, то вы хотите захватить сеанс. Но есть простой способ HTTPOnly
сеанс, несмотря на флаг HTTPOnly
. Вы все еще можете ездить на сессии, не зная идентификатора сессии. Червь MySpace Samy сделал именно это. Он использовал XHR для чтения токена CSRF и затем выполнения авторизованной задачи. Таким образом, злоумышленник может сделать почти все, что может сделать зарегистрированный пользователь.
Люди слишком сильно верят в флаг HTTPOnly
, XSS все еще можно использовать. Вы должны установить барьеры вокруг чувствительных функций. Например, для изменения пароля необходимо указать текущий пароль. Способность администратора создать новую учетную запись должна требовать капчу, которая представляет собой метод предотвращения CSRF, который нельзя легко обойти с помощью XHR.