1

JavaScript を使用して保存された Cookie を取得しようとしています。ページを調べて [リソース] に移動すると、Google Chrome に表示される Cookie のリストを次に示します。

ここに画像の説明を入力

コードを実行すると:

alert(document.cookie);

K----S------C---- Cookie のみが表示され、adminhtml Cookie は表示されません。adminhtml Cookie にアクセスするにはどうすればよいですか?

================================================== =

編集:

選択した回答によると、JavaScript は HTTP のみの Cookie にアクセスできません。回避策を見つけましたが。最も安全ではないかもしれませんが、Cookie 情報を取得する必要があるこのようなシナリオでは、これを試してください。

PHP を使用して、cookie 情報を非表示の div に書き込みます。

<div id="adminhtml" style="visibility:hidden"><?php
    echo $_COOKIE['adminhtml'];
?></div>

次に、JavaScript を使用して div の innerhtml を取得します。

<script>
    var cookieValue = document.getElementById("shopperid").innerHTML;
</script>
4

1 に答える 1

2

adminhtml は HttpOnly Cookie のようです。JavaScript から HttpOnly Cookie にアクセスすることはできません。

ウィキペディアからの引用、公式ドキュメントが見つかりません:

HttpOnly 属性は、最新のブラウザーのほとんどでサポートされています。サポートされているブラウザーでは、HttpOnly セッション Cookie は HTTP (または HTTPS) 要求を送信する場合にのみ使用されるため、他の非 HTTP API (JavaScript など) からのアクセスが制限されます。この制限により、クロスサイト スクリプティング (XSS) によるセッション cookie の盗難の脅威が緩和されますが、なくなるわけではありません。この機能は、セッション管理 Cookie にのみ適用され、他のブラウザー Cookie には適用されません。

于 2013-11-08T16:29:34.370 に答える