wahsaga: Sicherheit: Datenbankzugriff

Beitrag lesen

hi,

Nun steht da aber als Fehlermeldung immer

Access denied for user: 'USER@maschine.domain.tld' (Using password: YES)

drin. Die Meldung stammt aus mysql_error().

und noch einen schritt vorher stammt diese meldung von der DB selbst.

Gibt es einen "normalen" Weg, wie dort als User der Name der Konstante und für den Server der Wert des Servernamens hineingelangen können?

es wurde versucht, eine verbindung zur DB herzustellen.
dabei wurden natürlich auch username/passwort übergeben, und der verbindungsversuch erfolgte zu einem bestimmten rechnernamen.
diese daten sind mysql jetzt also alle bekannt, und deshalb schreibt es sie auch in die fehlermeldung (bis auf passwort).

Wird "localhost" automatisch ersetzt durch den Servernamen bei einem Fehlzugriff?

nein, m.W. nicht.
die DB gibt die daten in der meldung aus, die zum zugriff verwendet wurden.
wenn du den DB-server mit "localhost" ansprichst, steht auch user@localhost in der meldung.
wenn 'USER@maschine.domain.tld' in der meldung steht, dann ist m.E. der verbindungsversuch mit maschine.domain.tld als DB-servername erfolgt.

Wenn PHP einheitlich die Bezeichner in die Fehlermeldung aufnehmen würde, müsst dort ja stehen
  Access denied for user: 'USER@HOSTNAME' (Using password: YES)

wie gesagt, das ist nicht PHPs baustelle; die DB selber setzt diese daten dort ein - und gibt dann die komplette meldung an PHP weiter.

gruß,
wahsaga

--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."