CookieのDomain、Path、Secure、HttpOnly、max-age(expire)属性の設定




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

Cookieの設定は色々あって複雑

初心者だけでなくプログラミング経験者でもCookieの設定は慣れないものだと思います。そんな自分もここ数日どハマりしてましたので簡単に解説しておきたいと思います。

Domain

ドメインを何も設定していない場合、Cookieを発行したドメインが設定されます。

例えばa.comから発行されたCookieはa.comのサイトでしか扱うことができません。しかし、サブドメインのsub.a.comではこのCookieを扱うことはできません。

ドメインにa.comを指定した場合は、サブドメインのsub.a.comでもそのCookieを扱うことができます。なので、ドメインは指定しない方がセキュリティ上安全と言われているので特段理由がなければ指定しないことをオススメします。

Path

パスはドメイン以降のURLのパスを指定します。Pathに/apiと指定すると/api、/api/a、/apiaというように/api以下のパスルーティング時にだけCookieを扱うことができます。

Secure

セキュア属性をtrueにするとHTTPS通信時のみCookieをクライアントに送るという設定ができます。本番環境ではこれをtrueにしておくことを推奨します。

HttpOnly

HttpOnlyをtrueにするとHTTP(HTTPS)通信時のみCookieを扱うことができます。これはよく勘違いされるのですが、tureにしたからといってHTTPSで使えなくなる訳ではありません。

JavascriptからCookieを扱う場合はこの値をfalseにしておかないといけません。

max-age(expire)

max-ageはCookieの有効期限を秒数で設定することができます。100とすると100秒間だけ有効なCookieを設定できます。

expireは有効期限を日付で設定することができます。両方とも指定されている場合はmax-ageの方が優先して使われます。

まとめ

Cookieの属性の設定は5種類だけです。この5種類をしっかりと覚えておけば今後設定に戸惑うこともなくなると思います。

関連記事

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です