[RUBY] [Rails] Ajout d'attributs SameSite et Secure ~ Mesures de sécurité des rails ~

introduction

** Il y a eu une session d'étude sur la sécurité des cookies en interne, donc je vais résumer ce que j'ai appris ~ ~ **: writing_hand :: writing_hand: ** Rails est un excellent cadre, il est donc livré en standard avec des mesures de sécurité décentes. ** ** Vous pouvez l'implémenter sans trop penser à la sécurité. C'est à la fois bon et mauvais: runner :: runner:

Sortie de Google Chrome 80

Google Chrome 80 a été officiellement lancé le 4 février 2020 (heure locale). https://developers-jp.googleblog.com/2019/11/cookie-samesitenone-secure.html Avec cette mise à jour de version, l'attribut SameSite du ** cookie par défaut est passé de None à Lax **. De plus, si l'attribut ** SameSite est défini sur None, l'attribut Secure doit être ajouté **.

??? Qu'est-ce que c'est? ??

Je ne suis pas venu au but, et certaines personnes peuvent ne pas le comprendre, alors je vais l'expliquer grossièrement.

Attribut SameSite

** L'attribut SameSite est un attribut donné aux cookies pour protéger les utilisateurs contre les cyberattaques appelé CSRF (Cross Site Request Forgery) **. Pensez-y comme si vous définissez des options de cookies pour la sécurité.

À partir de Google Chrome 80, la valeur par défaut de ceci est passée de None à Lax. En termes simples, c'est ** plus sûr **. Récemment, Google est strict sur les mesures de sécurité ~

** L'attribut SameSite est divisé en trois étapes. ** **

attribut Contenu
None Les cookies peuvent être transmis à travers les domaines
Lax (Uniquement pour les demandes GET) Les cookies peuvent être transmis à travers les domaines
Strict Les cookies ne peuvent pas être transmis d'un domaine à l'autre

En termes de niveau de sécurité ** Aucun <Lax <Strict ** C'est vrai.

En d'autres termes, est-il possible de transmettre des cookies entre les domaines? Tu ne peux pas? C'est un paramètre pour faire la différence!

attribut sécurisé

L'attribut Secure est un attribut qui contrôle le comportement des cookies non HTTPS **. ** Les cookies avec l'attribut Secure ne peuvent être envoyés que pour la communication HTTPS. ** ** En bref, les cookies sont moins susceptibles d'être volés.

** À partir de Google Chrome 80, la spécification selon laquelle l'attribut Secure doit être ajouté lorsque SameSite est None a été modifiée. ** **

En d'autres termes, il s'agit d'un message de Google disant: "Même site est Aucun? La sécurité est un problème, alors ajoutez au moins l'attribut Secure."

Paramètres dans les rails

Maintenant que vous comprenez les spécifications de Google Chrome 80 et du SameSite et des attributs sécurisés, configurons-le avec Rails!

Gemfile


gem 'rails_same_site_cookie'

Terminal


bundle install

**Oui. Seulement ça. ** **

Aucun réglage spécial n'est requis. Installez simplement le gem "rails_same_site_cookie". C'est vraiment simple. L'attribut SameSite = None; Secure sera automatiquement ajouté à tous les cookies.

Méthode de confirmation

La méthode de confirmation est également simple. À partir de la validation chrome, cliquez sur Application pour voir le contenu du cookie utilisé. C'est OK si l'attribut ** secure est coché et l'attribut SameSite est None **.

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

en conclusion

J'ai rencontré un hacker ridicule lors d'une session d'étude, donc je développe en tremblant tous les jours: baby :: baby:

Recommended Posts

[Rails] Ajout d'attributs SameSite et Secure ~ Mesures de sécurité des rails ~
Rails mesures CSRF et fichiers html sous public
Rails et données de forme