Edit:Behandelt CakePHP beim Speichern geänderter Daten automatisch Massensicherheitsanfälligkeiten?
Nach mehr Informationen von DCoder Empfangen ich die Phrase für hier war auf der Suche ist eine „Massenzuordnung Verletzlichkeit.“ Das heißt, den Vorteil von Methoden zu nutzen, die alle gültigen Felder in der Datenbank speichern, unabhängig von ihrer Anwesenheit auf dem ursprünglichen Formular (wodurch sie anfällig für manipulierte POST-Daten werden, die mehr [möglicherweise kritischere] Felder als die vorgesehenen enthalten).
Die beiden üblichen Antworten werden dann entsprechend als Whitelisting und Blacklisting bezeichnet; Whitelisting-Felder, die zur Änderung bestimmt sind, oder Blacklisting-Felder, die nicht geändert werden sollen.
Meine Frage folgt dann: setzt CakePHP automatisch nur die Felder im sendenden Formular auf die weiße Liste, oder ist es für mich (und andere Cake-Fans) notwendig, dass wir Whitelisting oder Blacklisting durchführen?
Ursprüngliche Frage:
Kuchen viele große Möglichkeiten bietet Formen zu erzeugen und sie fast automatisch handhaben. Als ich über Sicherheit nachdachte, fragte ich mich: Ist Cake bewusst, welche Felder in einem Formular vorhanden waren, oder akzeptiert es einfach ein beliebiges gültiges Feld? Nehmen Sie das folgende Szenario, wenn ich keinen Sinn habe (und jemand ist willkommen, meine Frage besser zu formulieren, wenn sie sich einen besseren Weg vorstellen können):
Lassen Sie mich sagen, ich erlaube meinen Benutzern, ihre zu bearbeiten Profil. Ich erstelle ein Formular mit Feldern für Benutzername, E-Mail und Passwort unter der Aktion edit
.
Ein kluger Benutzer möchte kommen und ihre is_admin
Feld von false
zu true
ändern, so dass sie verwenden, um eine App wie Firebug benutzerdefinierte Post-Daten an die edit
Aktion zu unterbreiten, die das Feld is_admin
Satz true
enthält.
Die Frage ist, würde Cake selbst erkennen, dass is_admin
nicht in der ursprünglichen Form war, oder muss ich vorsichtig sein, die Felder explizit anzugeben, die eine bestimmte Aktion Felder ändern kann? Gibt es einen leichteren Weg?
Vielen Dank!
James
Dies wird als „Massenzuordnung“ bekannt ist und es vor kurzem Schlagzeilen gemacht, als es war [ verwendet, um GitHub "zu hacken" (http://arstechnica.com/business/news/2012/03/hacker-commandeers-github-to-prove-vuln-in-ruby.ars). Normalerweise besteht die Lösung darin, die Felder, die massenweise zugewiesen werden können, auf die weiße Liste zu setzen. – DCoder
@DCoder, danke, den Namen zu haben hilft sehr. Ich werde die Frage so ändern, dass sie diese Informationen widerspiegelt. – xtraorange