2016-10-02 7 views
2

アプリケーションが404 Not Foundコードで応答する状況によっては、セッション識別子のSet-Cookieディレクティブも返されますが、プラグマディレクティブこれは、セッション識別子をブラウザキャッシュに格納できることを意味し、アプリケーションのセキュリティに影響しますか? Set-Cookieのすべてのレスポンスにキャッシングディレクティブが含まれているかどうかはわかりません。HTTP 404が見つかりません。Set-Cookieディレクティブのレスポンスにキャッシュコントロールヘッダーが含まれています

答えて

1

Cookieがブラウザに永続的に保存されているかどうかは、Expires and Max-Age propertiesによって制御されます。キャッシュ制御とプラグマヘッダーはページの内容にのみ影響します。だから私はあなたが明示的なキャッシュヘッダーがなくても、404ページでうまくいくと思います(*ただし、以下の編集を参照してください)。

セッションクッキーは、明示的な有効期限なしに設定する必要があります。この場合、セッションCookieは通常ディスクに保存されず、ユーザーがブラウザを終了すると削除されます。

(ユーザーが休止することを決定、またはコンピュータがメモリ不足と交換し始めたとき、メモリからそのようなデータはまだ例えばのように、ディスクに保存されますあなたのコントロールを超えた場合があることに注意してください。)

編集(コメントを参照してください):クッキーを設定し、通常のページの場合は

、あなたは通常Cache-control: no-cache,no-store,must-revalidateなどの機密情報のキャッシュを防止するためのヘッダを持っています。私は本質的にはクッキーレスポンスをキャッシュしていないので、通常のページに明示的に設定する必要はありません。

したがって、404ページにどのようなCookieが設定されているのですか?認証されていないユーザーが404ページをダウンロードしてセッションCookieを取得した場合、そのCookieはセッション固定に対する脆弱性がないように(Cookie値はログオン時に変更される必要があるため)、攻撃者にとっては役に立ちません。認証されたユーザーの場合、アプリケーションがセッションCookieを再び設定するのはなぜですか404ページに?それがしても、キャッシュを防ぐためにヘッダーを送るべきです、それはSkipfishの良いキャッチです。 (実際には認証されていないユーザーに対してもこれを行うことができますが、そのリスクは非常に低いと評価します)。

+0

ありがとうございます。私はこの質問をしました。この場合、Skipfishは問題を返します - 不正なキャッシングディレクティブ(高リスク) - 暗黙的にキャッシュ可能な 'Set-Cookie'レスポンス。これは単に偽陽性の結果だと思いますか? – user187205

+0

インターネットでいくつかの情報を検索しています。これは、_Cache-Control:no-cache = "set-cookie" _を使用するための提案です(https://github.com/pintsized/ledge/issues/7)。 – user187205

+0

私は1分で答えを編集します、これを指摘してくれてありがとう、面白いです。 –

関連する問題