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. p>
Beim Aktualisieren der Rails-Datenbank können mehrere Spalten gleichzeitig angegeben werden.
Es ist sehr praktisch, mehrere Spalten gleichzeitig aktualisieren zu können. p>
Obwohl es praktisch ist, gibt es einige gefährliche Teile für die Massenzuweisung. Das heißt, nicht autorisierte Anforderungen können Administratorrechte manipulieren. p>
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. p>
Es gibt einen starken Parameter, um Schwachstellen bei der Massenzuweisung zu vermeiden. p> Mit dem Parameter
strong können Sie nicht autorisierte Anforderungen mithilfe von Entwicklertools verhindern. p>
params.require(:user).permit(:name, :email, :password, :password_confirmation)
Rufen Sie den Wert des im Argument festgelegten Schlüssels mit der Methoderequire ab und filtern Sie nur die Parameter, die Sie mit der Methode allow zulassen möchten. p>
Recommended Posts