25

HttpOnlyフラグを有効にしてCookieを作成しようとしています。

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;";

ありがとう -

4

1 に答える 1

25

JavaScript で HttpOnly Cookie にアクセスすることはできません。

次の引用は、ウィキペディアの資料から借用したものです。

HttpOnly Cookie は、最新のブラウザーのほとんどでサポートされています。サポートされているブラウザーでは、HttpOnly セッション Cookie は HTTP (または HTTPS) 要求を送信する場合にのみ使用されるため、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>

警告しfoo=barます。

Cookie を削除して に変更$isHttpOnlytrue、ページをリロードすると、空のアラートが表示されます。しかし同時に、ブラウザは Cookie を保存して、サーバーへのリクエスト中に送信します。

于 2012-06-19T09:59:16.250 に答える