Ответ 1
Вы не можете получить доступ к файлу cookie HttpOnly в JavaScript.
Следующая цитата взята из материала Wikipedia:
HttpOnly cookie поддерживается большинством современных браузеров. В поддерживаемом браузере куки файлы HttpOnly будут использоваться только при передаче запросов HTTP (или HTTPS), тем самым ограничивая доступ к другим API-интерфейсам, отличным от HTTP (например, JavaScript).
Другими словами, файлы cookie HttpOnly предназначены для использования только на стороне сервера.
Я написал пример в PHP:
<?php
$name = 'foo';
$value = 'bar';
$expirationTime = 0; // Session cookie.
$path = '/';
$domain = 'localhost';
$isSecure = false;
$isHttpOnly = false;
setcookie($name, $value, $expirationTime, $path, $domain, $isSecure, $isHttpOnly);
?>
<script>
alert(document.cookie);
</script>
Он оповещает foo=bar
.
Удалите файл cookie, измените $isHttpOnly
на true
, перезагрузите страницу, и вы увидите пустое предупреждение. Но в то же время браузер сохраняет cookie для отправки его во время запроса на сервер.