[RUBY] [Rails] Hinzufügen von SameSite- und Secure-Attributen ~ Rails-Sicherheitsmaßnahmen ~

Einführung

** Es gab eine interne Lernsitzung zur Cookie-Sicherheit, daher werde ich zusammenfassen, was ich gelernt habe ~ ~ **: writing_hand :: writing_hand: ** Rails ist ein ausgezeichneter Rahmen, daher ist er standardmäßig mit angemessenen Sicherheitsmaßnahmen ausgestattet. ** ** ** Sie können es implementieren, ohne zu viel über Sicherheit nachzudenken. Es ist sowohl gut als auch schlecht: Runner :: Runner:

Veröffentlichung von Google Chrome 80

Google Chrome 80 wurde am 4. Februar 2020 (Ortszeit) offiziell veröffentlicht. https://developers-jp.googleblog.com/2019/11/cookie-samesitenone-secure.html Mit diesem Versions-Upgrade wurde das SameSite-Attribut des ** Standard-Cookies von None in Lax ** geändert. Wenn das Attribut ** SameSite auf None festgelegt ist, muss das Attribut Secure hinzugefügt werden **.

??? was ist das? ??

Ich bin nicht auf den Punkt gekommen, und einige Leute verstehen es möglicherweise nicht, deshalb werde ich es grob erklären.

SameSite-Attribut

** Das SameSite-Attribut ist ein Attribut, das Cookies zum Schutz von Benutzern vor Cyberangriffen mit dem Namen CSRF (Cross-Site Request Forgery) gegeben wird **. Stellen Sie sich vor, Sie setzen Cookie-Optionen für die Sicherheit.

In Google Chrome 80 wurde der Standardwert von "Keine" in "Lax" geändert. Einfach gesagt, es ist ** sicherer **. In letzter Zeit ist Google streng in Bezug auf Sicherheitsmaßnahmen ~

** Das SameSite-Attribut ist in drei Stufen unterteilt. ** ** **

Attribut Inhalt
None Cookies können domänenübergreifend weitergegeben werden
Lax (Nur für GET-Anfragen) Cookies können domänenübergreifend weitergegeben werden
Strict Cookies können nicht domänenübergreifend weitergegeben werden

In Bezug auf die Sicherheitsstufe ** Keine <Lax <Streng ** Das stimmt.

Mit anderen Worten, ist es möglich, Cookies domänenübergreifend weiterzugeben? Kannst du nicht? Es ist eine Einstellung, um den Unterschied zu setzen!

sicheres Attribut

Das Secure-Attribut ist ein Attribut, das das Verhalten von Nicht-HTTPS-Cookies ** steuert. ** Cookies mit dem Attribut "Sicher" können nur für die HTTPS-Kommunikation gesendet werden. ** ** ** Kurz gesagt, es ist weniger wahrscheinlich, dass Cookies gestohlen werden.

** In Google Chrome 80 wurde die Spezifikation geändert, dass das Secure-Attribut hinzugefügt werden muss, wenn SameSite None ist. ** ** **

Mit anderen Worten, es handelt sich um eine Nachricht von Google: "Dieselbe Site ist keine? Sicherheit ist ein Problem. Fügen Sie also mindestens das Attribut" Sicher "hinzu.

Einstellungen in Rails

Nachdem Sie die Spezifikationen von Google Chrome 80 und SameSite sowie die sicheren Attribute verstanden haben, können Sie sie mit Rails einrichten.

Gemfile


gem 'rails_same_site_cookie'

Terminal


bundle install

**Ja. Nur das. ** ** **

Es sind keine speziellen Einstellungen erforderlich. Installieren Sie einfach das Juwel "rails_same_site_cookie". Es ist wirklich einfach. Das Attribut SameSite = None; Secure wird automatisch allen Cookies hinzugefügt.

Bestätigungsmethode

Die Bestätigungsmethode ist ebenfalls einfach. Klicken Sie in der Chrome-Validierung auf Anwendung, um den Inhalt des verwendeten Cookies anzuzeigen. Es ist in Ordnung, wenn das Attribut ** Secure aktiviert ist und das Attribut SameSite None ** ist.

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

abschließend

Ich habe bei einer Lernsitzung einen lächerlichen Hacker getroffen, also entwickle ich mich jeden Tag beim Schütteln: baby :: baby:

Recommended Posts

[Rails] Hinzufügen von SameSite- und Secure-Attributen ~ Rails-Sicherheitsmaßnahmen ~
Rails CSRF-Maßnahmen und HTML-Dateien unter public
Schienen und Formulardaten