Empfehlungen: Erweiterte Suche

Krise: MD5 Passwort

Daten auslesen, verarbeiten und den Views übergeben

Krise: MD5 Passwort

Beitragvon havanna » Mi 6. Mai 2009, 21:41

Hallo zusammen,

ich bekomme im Moment mal wieder die Krise: Setze gerade die Applikation für meinen Kunden auf - bei 1blu.de

Nun funktionieren manche Sachen nicht so, wie auf meinem Server (ist ja normal). Gem. deren Anleitung habe ich das mal auf PHP5 eingestellt. Aber die PHP Zip geht z.B. nicht. O.k. dafür habe ich eine Lösung gefunden.

Jetzt stottert meine Authake Komponente. Jedesmal wenn ich einen User ändern oder anlegen möchte bekomme ich nur die Meldung, dass der User nicht angelegt werden konnte. Die Logs sagen so gut wie nichts. Ich vermute aber, dass es an MD5 liegt.
Die Authake hat das Tabellenfeld für das Passwort als normales Varchar definiert. Im Controller ist folgende Zeile:

Code: Alles auswählen
$this->data['User']['password'] = $this->__makePassword($p, $p);


Weiß zufällig jemand, woher die Funktion __makePassword kommt? Im Authake Plugin habe ich sie nicht gefunden. Ist das was von Cake (Google zeigte aber nicht viel)?
MD5 gibt es doch schon seit PHP4. Hat von euch schon mal Probleme mit MD5 im PHP gehabt?

Ciao Thomas

P.s. Dankbar für jeden Tipp
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Krise: MD5 Passwort

Beitragvon euromark » Do 7. Mai 2009, 12:39

davon abgesehen, dass
a) du kein md5 verwenden solltest
b) md5 nicht verwendet wird von cake (sondern sha1 defaultmäßig)

gibt es diese passwortfunktion vermutlich nicht

korrekterweiße hashed man mit:
$this->Auth->password()
(wenn Auth Componente in Benutzung ist)
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: Krise: MD5 Passwort

Beitragvon havanna » Do 7. Mai 2009, 14:43

Hallo Mark,

zu a): Meinst du das jetzt generell oder nur nicht innerhalb von PHP? Ich habe auch schon Anwendungen gesehen, bei denen das Feld in der MySQL Datenbank als MD5 angegeben war. Da wird ja dann verschlüsselt, wenn gespeichert wird.

b) Weißt du, wo in Cake sha1 verwendet wird (Klasse, Funktion)?

Wie gesagt, ich habe hier die Authake-Komponente beinahe 1:1 übernommen - ich musste nur ein paar Anpassungen für 1.2 machen. Woher diese Funktion kommt weiß ich auch nicht und ich habe sie bis jetzt nicht gefunden. Ich weiß nur, dass er bei 1blu immer aus der Validierung den Fehler zurück gibt "verwenden sie nur Buchstaben und Zahlen". Und das Feld Passwort ist dann leer - auch im Array. Daher liegt wohl der Fehler irgendwo in der Verschlüsselung.

Bei all-inkl und lokal auf XAMPP funktioniert alles.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Krise: MD5 Passwort

Beitragvon euromark » Do 7. Mai 2009, 18:44

gut, in der authake kenn ich mich nich aus
aber in der normalen cake auth meinte ich eben, kenn ich die funktion nicht

zu md5, siehe den anderen beitrag von mir
md5 ist absolutes tabu, da kann man auch gleich die passwörter plain in die DB setzen, oder gleich veröffentlichen

Security Component:
Security::hash()
macht den Sha1 key

und $this->Auth->password() ruft diese funktion auf

aber bei authake vermute ich, ist es wie gesagt etwas anders...
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: Krise: MD5 Passwort

Beitragvon havanna » Do 7. Mai 2009, 20:19

Hallo Mark,

habe die Stelle gefunden, wo Cake das Passwort verschlüsselt:

Code: Alles auswählen
  function hash($string, $type = null, $salt = false) {
 $_this =& Security::getInstance();
 
 if ($salt) {
 if (is_string($salt)) {
 $string = $salt . $string;
 } else {
 $string = Configure::read('Security.salt') . $string;
 }
 }
 
 if (empty($type)) {
 $type = $_this->hashType;
 }
 $type = strtolower($type);
 
 if ($type == 'sha1' || $type == null) {
 if (function_exists('sha1')) {
 $return = sha1($string);
 return $return;
 }
 $type = 'sha256';
 }
 
 if ($type == 'sha256' && function_exists('mhash')) {
 return bin2hex(mhash(MHASH_SHA256, $string));
 }
 
 if (function_exists('hash')) {
 return hash($type, $string);
 }
 return md5($string);
 }


Wie du siehst, macht Cake im schlechtesten Fall auch md5 ;)

Die Funktion kommt übrigens vom Authake Plugin - habe ich auch gefunden und werde ich jetzt ändern.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Krise: MD5 Passwort

Beitragvon euromark » Do 7. Mai 2009, 21:53

im schlechstesten fall is man selbst schuld
-> php4 UND kein ersatz-sha1

dann is ja alles bestens
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: Krise: MD5 Passwort

Beitragvon havanna » Do 7. Mai 2009, 22:54

Hallo Mark,

ich habe jetzt die Funktion, in der Authake das Passwort verschlüsselt, geändert. Dabei habe ich mich an die Hash-Funktion von CakePHP orientiert.
1. Passwort + salt = Passwort
2. Wenn möglich sh1 verschlüsseln
3. Wenn nicht möglich md5

Funktioniert :D

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast