F5 GLOSSARY

Cookie/クッキー

Cookie(HTTP Cookie)とは、HTTPを使用するWebサイトとWebブラウザの間で、状態(ステート)管理を行うために使用される手法です。またこの手法のためにWebブラウザ側のコンピュータに格納される情報のこともCookieと呼びます。

HTTPはステートレスなプロトコルであるため、Webブラウザからのリクエスト内容が同一であれば、Webサイトは毎回同じレスポンスを返すことになります。HTTP開発の当初の目的である「ハイパーテキストを転送する」だけの用途に限定すればこれでも問題はありませんが、CGIやJavaScript等によって動的なページ生成が可能になり、高度なWebアプリケーションが構築できるようになると、ユーザの状態に合わせて異なるレスポンスを行いたいという要求が高まっていきました。例えばオンライン バンキングの処理をWebアプリケーションで行う場合、ログイン前のユーザとログイン後のユーザでは、アクセス先のURLが同一でも異なる情報を提示すべきです。これを可能にするには状態管理の手段が必要であり、それを実現するための手法として広く使われているのがCookieです。

CookieではWebサイト側が、アクセス元となるWebブラウザを介して、ユーザのコンピュータにCookieという情報を格納します。Cookieには一般的に、ユーザを識別するための情報や、最後にサイトを訪れた日時、サイトを訪れた回数等が記録されています。Cookieが保存された状態で再度そのWebサイトにアクセスすると、WebブラウザはCookieの情報をリクエストの中に組み込んだ状態でWebサイトに送信します。これによってWebサイトは、アクセス元ユーザの識別情報などを得ることができ、これに基づいたレスポンスを返せるようになります。

CookieはWebページに含まれるスクリプトからもアクセスできますが、アクセス可能なCookieは、そのスクリプトを送り出したドメインと同一ドメインのものに限られています。このような制約を「クロスドメイン制約」と言います。これは、悪意のあるサイトのスクリプトが他のサイトのCookieを読み取ることで、ユーザ情報等を不正に入手することを防ぐための制約です。しかしWebサイトにクロスサイト スクリプティング(XSS)への脆弱性がある場合には、この制約を回避して不正にCookieの情報を取得できる可能性があります。

XSS等の攻撃を防ぐには、Webアプリケーション ファイアウォール(WAF)の活用が有効です。F5ではWAF製品として「F5 BIG-IP Application Security Manager」を提供しています。


< Return to the glossary