[RUBY] Rails CSRF-Maßnahmen und HTML-Dateien unter public

Umgebung und Fehlermeldung

Ich versuche, Daten aus einer HTML-Datei (statische Datei) öffentlich zu veröffentlichen, ohne ERb of Rails zu verwenden.

Terminal.


Can't verify CSRF token authenticity.

Der Punkt ist: "Ich habe die Anfrage abgespielt, weil sie sich von dem erwarteten Sicherheitstoken unterscheidet."

Was ist CSRF?

Abkürzung für Cross Site Request Forgery, Betrug.

Die Handlung eines Angreifers, der eine Anfrage an die Zielwebsite sendet, indem das Opfer auf einen Link klickt oder eine Seite besucht. Mit anderen Worten, der Angreifer kann sich als gültige Anforderung authentifizieren und die Kontoinformationen des Opfers manipulieren.

Daher ergreift Rails automatisch Maßnahmen, um zu verhindern, dass böswillige Dinge mit normalen Anforderungen verwechselt werden.

Schienen misst

In Rails ist der CSRF-Gegenmaßnahmencode bereits automatisch in application_controller eingebettet.

application.controller.rb


protect_from_forgery with: :exception

Es wird ein erforderliches Sicherheitstoken eingeführt, das automatisch in allen von Rails generierten Formularen und Ajax-Anforderungen enthalten ist.

Wenn das Sicherheitstoken nicht mit dem erwarteten Wert übereinstimmt, kann ein Fehler auftreten.

Deaktivieren Sie CSRF-Messungen selbst

application_controller.rb


protect_from_forgery with: :null_session

CSRF-Maßnahmen sind für alle Aktionen deaktiviert. Dies hat jedoch das Problem, extrem anfällig für Aggressionen zu sein.

Sicherheitstoken teilweise ausschließen

Indem nur bestimmte Aktionen ausgeschlossen werden, die APIs von außen empfangen, ist es möglich, Daten von Clients zu empfangen und gleichzeitig die Sicherheit zu gewährleisten.

feeds_controller.rb


protect_from_forgery :except => [:create, :index]

def create
end

def index
end

Durch Angabe des Aktionsnamens des Controllers ist es nun möglich, Daten aus der HTML-Datei unter public zu empfangen.

Ich durfte auf ## verweisen

https://qiita.com/chobi9999/items/2b59fdaf3dd8f2ed9268

https://www.transnet.ne.jp/2016/10/26/%E3%80%8Cruby-on-rails%E3%81%AEcsrf%E5%AF%BE%E7%AD%96colnd/

https://railsguides.jp/security.html#%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA-csrf

Recommended Posts

Rails CSRF-Maßnahmen und HTML-Dateien unter public
[Rails] Hinzufügen von SameSite- und Secure-Attributen ~ Rails-Sicherheitsmaßnahmen ~
HTML & Rails Memo
[Schienen] Beachten Sie bei der Verwendung von Ajax die "CSRF-Maßnahmen".