如何使用javascript设置cookie的HttpOnly标志?

use*_*136 24 javascript cookies httponly

我正在尝试创建一个cookie,并启用了HttpOnly标志.

虽然在Java和.Net中似乎有很多关于如何使用它的资源,但我需要在javascript中完成它.

这是我的(当前失败的)功能

createCookie = function(name,value,days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; domain=my.domain.com; path=/; HttpOnly;";
Run Code Online (Sandbox Code Playgroud)

谢谢 -

Yev*_*iuk 24

您无法在JavaScript中访问HttpOnly cookie.

以下引用来自维基百科材料:

大多数现代浏览器都支持HttpOnly cookie.在支持的浏览器上,仅在传输HTTP(或HTTPS)请求时才使用HttpOnly会话cookie,从而限制来自其他非HTTP API(例如JavaScript)的访问.

换句话说,HttpOnly cookie只能在服务器端使用.

我在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>
Run Code Online (Sandbox Code Playgroud)

它提醒foo=bar.

删除cookie,更改$isHttpOnlytrue,重新加载页面,您将看到一个空警报.但与此同时,浏览器会存储cookie,以便在向服务器发出请求时将其发送.