> Zumindest in 1.2 ist das ein ernstes Sicherheitsproblem.
1.2 ist Alpha Software also für Anfänger nicht unbedingt empfehlenswert.
> Die einzige Möglichkeit dem entegegenzuwirken scheint mir das löschen
> der ID aus dem Data-Array zu sein.
>
> Also vor dem Save in einer add-Funktion:
> if (isset($this->data['XYZ']['id'])) unset($this->data['XYZ']['id']);
>
> Wird das nicht gemacht ist das Scheunentor elendsweit offen.
Die von Dirk beschriebene Methode halte ich für sinnvoller und sollte
man generell bei Cake beachten:
Der dritte Parameter für save nennt sich fieldList und ist eine
Whitelist der Felder die gespeichert werden dürfen.
Ich habe im AppModel save überschrieben, um eine Notice zu werfen,
falls die Whitelist vergessen wurde. Das macht das Benutzen von save
zwar etwas umständlicher, aber deutlich sicherer.
Im AppModel:
public function save($data = null, $validate = true, $fieldList =
array ()) {
if (empty ($fieldList)) {
trigger_error('There is no fieldList for ' . $this->name .
'->save(). Please add this argument to provide more security in this
application.', E_USER_NOTICE);
} else {
$fieldList[] = 'created';
$fieldList[] = 'modified';
}
return parent :: save($data, $validate, $fieldList);
}
Siehe auch:
http://groups.google.com/group/cake-php/browse_thread/thread/3ce2bc624d335b9/5d322c710be706d2
Grüße,
Timo
--
Timo Derstappen
http://teemow.com
mailto:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe
"CakePHP-de für deutsche CakePHP Entwickler".
Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL
PROTECTED]
Weitere Optionen finden Sie in dieser Gruppe unter
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---