プログラミング

Webの新しい Cookie技術 http SameSite と Secure 対策

http-cookie

概要

フリーランスエンジニア スリーネクスト

Webページの作成で確認や検証は最近はGoogleChromeが中心になりました。Google Chromeのデベロッパーツールがあるとフロントエンド の開発はある程度エラーやレイアウト崩れは解消できます。

ただ、ChromeのWarningでSameSite Noneと言う物が多発して出てくるようになりました。今回はSameSiteについて研究してますのでご覧ください。


SameSiteとは

Httpクッキーの設定のひとつです。

HttpクッキーはWebサーバー側からWebサイトを見たパソコンに対して設定できるデータのことです。

知らず知らずの間にご自宅のパソコンに知らないデータを仕込まれることになります。
言い方は怖いですが、マーケティング目的に設定されたり、アフィリエイト の成果として設定されていることだったりとあまり知られない技術です。

悪意を持って何かをしようとする人も出てきます。
そこで新たにSameSite属性という物ができました。

つまり、SameSite属性は安全にクッキー情報を扱うための設定です。

いつ SameSite をセットするのか

それぞれのパソコンで設定することはありません。
サーバーサイドで設定する技術になります。

chromeの警告内容

SameSiteの設定をしていない場合以下のようなWarningメッセージが出力されます。

A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

この警告文は何か危険なエラーかと言われると特に修正しないといけないものではありません。

Googleの公式の発表
https://developers-jp.googleblog.com/2019/11/cookie-samesitenone-secure.html

サーバーサイドの設定について

PHPのフレームワーク Laravel6 ではすでに対応ができています。
Ruby on Rails 6.0 は 2020/01/02時点未対応です。

Web技術速習テキストではHTTPクッキーについて書かれており、そこでも詳しくSamesiteについて記載があります。より詳しく知りたい方はこちらをどうぞ

まとめ

今後はサーバーサイドのプログラミングをする際はcookieの設定でSameSite属性も理解してCookieの動きを制御していく必要が出てきました。
これは安全のために必要な技術ですのでぜひ習得して欲しいところです。

具体的な設定については次回に説明していく予定です
お楽しみください。

続きはこちら

webサイト設計
Webの新しい Cookie技術 http SameSite と Secure 対策その2

cookieによるセキュリティ対策を具体的にどのようにすればいいのか。今回はPHPのLaravel6で設定する方法を記載しました。Laravel好きの方やLaravelを仕事で携わっている方はごらんくださいませ。

続きを見る

-プログラミング