[RUBY] Was sind Sicherheitslücken bei Massenzuweisungen?

Übersicht

Ich habe nicht wirklich verstanden, was das Wort "Sicherheitslücke bei Massenzuweisungen" war, als ich Schienen studierte, also habe ich es nachgeschlagen und in meinen eigenen Worten zusammengefasst.

Was ist Massenzuordnung?

Beim Aktualisieren der Rails-Datenbank können mehrere Spalten gleichzeitig angegeben werden.
Es ist sehr praktisch, mehrere Spalten gleichzeitig aktualisieren zu können.

Notizen

Obwohl es praktisch ist, gibt es einige gefährliche Teile für die Massenzuweisung. Das heißt, nicht autorisierte Anforderungen können Administratorrechte manipulieren.

Warum wird die Administratorberechtigung manipuliert?

Dies liegt daran, dass Sie den auf dem Formular veröffentlichten Inhalt mit den Entwicklertools von Chorme bearbeiten können.
Angenommen, das Benutzermodell verfügt über ein Admin-Attribut, das angibt, ob Sie ein Website-Administrator sind.
Wenn Sie das Admin-Attribut mit Bearbeiten als HTML des Entwicklertools hinzufügen, den Wert eingeben und senden, wird die Datenbank unverändert aktualisiert.
In diesem Fall können Sie sich, auch wenn Sie kein Administrator sind, in die Website einschleichen und Unheil anrichten, was eine sehr gefährliche Situation ist.
* In Rails4 ist das Speichern oder Aktualisieren in der Datenbank nur möglich, wenn der Parameter strong festgelegt ist.

Was ist ein starker Parameter?

Es gibt einen starken Parameter, um Schwachstellen bei der Massenzuweisung zu vermeiden. Mit dem Parameter

strong können Sie nicht autorisierte Anforderungen mithilfe von Entwicklertools verhindern.

Verwendung starker Parameter

params.require(:user).permit(:name, :email, :password, :password_confirmation)

Rufen Sie den Wert des im Argument festgelegten Schlüssels mit der Methode

require ab und filtern Sie nur die Parameter, die Sie mit der Methode allow zulassen möchten.

Recommended Posts

Was sind Sicherheitslücken bei Massenzuweisungen?
[Schienen] Was sind starke Parameter?
Was ist ein Befehlszeilenargument?
[Umgebungsvariablen] Schienen Was sind Umgebungsvariablen?
Was sind praktisch endgültige Variablen?
Was sind Ruby-Klassenmethoden?
config.ru Was machst du?
Was sind Java-Metriken? _Memo_20200818
Was sind die Regeln in JUnit?
[Java] Was sind Überschreibungen und Überladungen?