Hey,
ich sitze hier gerade an einem neuen Script und versuche dabei, möglichst objektorientiert zu arbeiten.
Ich habe mir eine "statische Klasse" Tools erstellt, die alle Methoden enthält, die von anderen Klassen genutzt werden können.
In diesem Fall habe ich eine Konstante "SCRIPT_SECRET", die als Passwort-Salt genutzt werden soll.
Nun stellt sich die Frage, inwiefern es "legitim" ist, auf die externe Konstante zu prüfen. Wäre es eventuell sinnvoller, den Salt-String über einen Parameter zu übergeben?
Wenn ich das Salt über einen Parameter übergebe, müsste ich ja auch auf die Konstante zugreifen.
Der Aufruf würde dann in etwa so aussehen:
Das Ganze würde sich natürlich erübrigen, wenn es Modelle oder Ähnliches geben würde, die den Umgang mit globalen Variablen/Konstanten regeln. Sollte ich für solche Fälle eine Art "System"-Objekt erstellen, das alle möglichen Konfigurationsdinge enthält?
Würde mal gerne ein paar Meinungen zu dem Thema hören
Greetz
paddya
ich sitze hier gerade an einem neuen Script und versuche dabei, möglichst objektorientiert zu arbeiten.
Ich habe mir eine "statische Klasse" Tools erstellt, die alle Methoden enthält, die von anderen Klassen genutzt werden können.
In diesem Fall habe ich eine Konstante "SCRIPT_SECRET", die als Passwort-Salt genutzt werden soll.
PHP:
class Tools {
public static function hashPassword($password) {
$salt = (defined('SCRIPT_SECRET')) ? SCRIPT_SECRET : '';
return md5(sha1($password . $salt));
}
}
Nun stellt sich die Frage, inwiefern es "legitim" ist, auf die externe Konstante zu prüfen. Wäre es eventuell sinnvoller, den Salt-String über einen Parameter zu übergeben?
Wenn ich das Salt über einen Parameter übergebe, müsste ich ja auch auf die Konstante zugreifen.
Der Aufruf würde dann in etwa so aussehen:
PHP:
class User {
private function checkPassword() {
return $this->passwordHash === Tools::hashPassword($this->request->post('password'), SCRIPT_SECRET);
}
}
Das Ganze würde sich natürlich erübrigen, wenn es Modelle oder Ähnliches geben würde, die den Umgang mit globalen Variablen/Konstanten regeln. Sollte ich für solche Fälle eine Art "System"-Objekt erstellen, das alle möglichen Konfigurationsdinge enthält?
Würde mal gerne ein paar Meinungen zu dem Thema hören
Greetz
paddya
