23
12

More than 3 years have passed since last update.

【Rails】SameSiteとSecure属性の付与〜Railsのセキュリティ対策〜

Posted at

はじめに

社内でcookieのセキュリティに関する勉強会があったので、学んだことをまとめておきます〜〜:writing_hand::writing_hand:
Railsは優秀なフレームワークなので、そこそこのセキュリティ対策が標準装備されているんですよねえ。
セキュリティについてはあまり考えなくても、実装できてしまうんですよねえ。
良いことでもあり、悪いことでもありますね:runner::runner:

GoogleChrome80のリリース

2020年2月4日(現地時間)にGoogleChrome80が正式にリリースされました。
https://developers-jp.googleblog.com/2019/11/cookie-samesitenone-secure.html
今回のバージョンアップでデフォルトのCookieのSameSite属性がNone⇒Laxに変更されました。
またSameSite属性をNoneにする場合、Secure属性を付与しなければならない仕様になりました。

???
なにそれ??

私もピンと来ませんでしたし、よくわからない方もいるかも知れないので、ざっくり解説します。

SameSite属性

SameSite属性とは、CSRF(クロスサイトリクエストフォージェリ)というサイバー攻撃からユーザーを守るために、Cookieに付与される属性のことです。
安全のためのCookieのオプション設定みたいに考えておいてください。

GoogleChrome80からこれのデフォルト値がNone⇒Laxに変更になったのです。
簡単に言うとセキュリティが強化されましたということです。
最近、Googleはセキュリティ対策に厳しいですからね〜

SameSite属性は三段階にわかれています。

属性 内容
None ドメインをまたいでCookieの受け渡しが可能
Lax (GETでのリクエストのみ)ドメインをまたいでCookieの受け渡しが可能
Strict ドメインをまたいでCookieの受け渡しが不可

セキュリティのレベル的には
None < Lax < Strictですね。

つまり、ドメインをまたいでCookieの受け渡しができるか?できないのか?という違いを設定する設定のことですね!

secure属性

Secure属性はHTTPS化していないCookieの動作を制御する属性のことです。
Secure属性が付与されているCookieはHTTPS通信の場合のみ送信できます。
要はCookieが盗まれにくくなります。

GoogleChrome80からはSameSiteがNoneのときはSecure属性を付与しなければならない仕様に変更になりました。

つまり「SameSiteがNoneなんだろ?セキュリティー不安だからせめてSecure属性くらいつけておけよ〜」というGoogle様からのお達しということですね。

Railsでの設定

ではGoogleChrome80の仕様もSameSite属性・secure属性も理解したところで、Railsで設定をしてみましょう!

Gemfile
gem 'rails_same_site_cookie'
ターミナル
bundle install

はい。これだけです。

特に設定等もいりません。gem「rails_same_site_cookie」をインストールするだけです。
めちゃめちゃ簡単ですね。
自動的に全cookieにSameSite=None; Secure属性が追加してくれます。

確認方法

確認方法も簡単です。
chromeの検証からApplicationをクリックして、使用中のCookieの中身を見ます。
secure属性にチェックが入っていて、SameSite属性がNoneになっていたらOKです。

スクリーンショット 2020-10-23 18.31.24.png

※ローカル環境では確認できないことがあるので注意してくださいね〜

おわりに

勉強会でとんでもないハッカーに出会ってしまったので、毎日震えながら開発しています:baby::baby:

23
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
12