1

私はサーバーを管理しており、Cookie に HttpOnly を設定することを検討しています。

サーバー側とクライアント側の両方で相互作用する Cookie はありませんが、すべての Cookie に対してこのオプションを有効にすると、クライアント側で生成された Cookie が後続のページ読み込みでアクセスされなくなりますか?

明確にするために、これはサーバーオプションとして設定されます。私は Apache を使用しているので、これは次のようになります Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

さらに、質問はデータ保存に Cookie を使用することに基づいています。LocalStorageクライアント側で純粋に使用されるデータを保存するための優れた方法であっても、質問の文脈の外にあります。

4

1 に答える 1

2

すべての Cookie に対してこのオプションを有効にすると、その後のページ読み込み時にクライアント側で生成された Cookie にアクセスできなくなりますか?

はい。JS は、サーバー応答が でタグ付けした Cookie の値にアクセスできず、HttpOnly新しい値をそれらに書き込むこともできません。

JS が 1 つに書き込もうとしたときに正確に何が起こるかはわかりませんが、ブラウザは、http で送信されたものを、クライアント側のスクリプトによってのみアクセス可能なローカルに保存されたもので隠しているようです。ただし、この動作には依存しません。書き込みは単に無視される可能性があります。古いブラウザーでは、http のみの Cookie が書き込まれるバグがあったようです。

ただし、すべてのCookieを有効HttpOnlyにする方法はありません。交換されるすべての Cookie に個別に設定する必要があるため、このオプションは、サーバーがそのフラグを使用してクライアントに送信する Cookie に対してのみ有効になります。

したがって、すべての送信 Cookie でそのフラグを有効にするように Apache を構成している場合でも、サーバー アプリケーションがクライアントから送信されたすべての Cookie をミラーリングするかどうかによって異なります。通常は送信せず、設定したい Cookie のみを送信します (サーバー上で使用するため)。

于 2015-07-02T14:42:54.327 に答える