Вы не можете получить доступ к cookie HttpOnly в JavaScript.
Следующая цитата заимствована из материала Википедии :
Файл cookie 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 для отправки его во время запроса к серверу.