Seite 1 von 1
Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Fr 11. Jan 2013, 16:51
von mikesteiner99
Hallo Zusammen
Weiss jemand, wie und wo ich die Passwörter für einen neuen Frontendbenutzer unverschlüsselt ablegen kann.
Habe die Tabelle: "con_frontendusers" mit einer neuen Spalte: "password_unv" erweitert, finde jedoch den UPDATE Befehl nicht.
Danke für eine allfällige Hilfe
Gruss, Mike
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Fr 18. Jan 2013, 17:08
von Oldperl
Hallo Mike,
aus welchem Grund willst du Passwörter unverschlüsselt ablegen? Sowas macht man eigentlich nicht.
Gruß aus Franken
Ortwin
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 10:27
von mikesteiner99
Hallo Ortwin
Hab ich mir schon gedacht, dass die Frage kommt

.. Will ich auch nur in diesem Ausnahmefall.
Die Daten benötige ich, um in Zukunft eine externe Quelle damit zu füttern. Also nur eine temporäre Angelegenheit.
Gruss aus Zürich
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 11:54
von Oldperl
Hallo Mike,
mikesteiner99 hat geschrieben:Hab ich mir schon gedacht, dass die Frage kommt

.. Will ich auch nur in diesem Ausnahmefall.
Generell gibt es da für mich keine Ausnahme, daß ist für mich ein no-go wegen Datenschutz und Glaubwürdigkeit gegenüber meinen Nutzern. Passwörter gehören den Usern allein, und wenn ich die an anderer Stelle brauche, dann gibt es da entweder eine erneute Anmeldung, oder die Daten werden gleich beim 1. Mal dort mitgespeichert. Alternativ kann man auch Passwörter zentral verwalten und für die Anwendungen Bridges oder ähnliches verwenden. Aber wie dem auch sei...
FE-User werden in der Klasse FrontendUser bzw. FrontendUserCollection in der Datei
contenido/classes/class.frontend.users.php erzeugt bzw. gespeichert. Dort findest du aber keine direkten INSERT- oder UPDATE-Befehle, da diese Klasse auf der GenericDB basieren, sondern du mußt die Methoden entsprechend erweitern.
Alternativ könntest du aber auch ein FE-User-Plugin schreiben, welches die Daten entsprechend verarbeitet und dann z.B. in ein DB-Feld, eine csv-Datei oder ähnliches schreibt. So muss man für eine "temporäre" Aktion nicht den Core modifizieren.
Gruß aus Franken
Ortwin
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:00
von Spider IT
Hallo Mike,
wenn du das Passwort nur während der Session für den angemeldeten User brauchst, kannst du es auch beim Login (am besten direkt im Login-Modul) in die Session oder ein Cookie speichern.
Code für Speicherung in ein Cookie:
Code: Alles auswählen
// Kriegen wir das Password aus der Anmeldung?
if (isset($_POST['password'])) {
setcookie('upw', $_POST['password']);
$_COOKIE['upw'] = $_POST['password'];
}
Darauf kannst du dann bei Bedarf (für die externe Anmeldung) über
zugreifen, das Login kriegst du über
Gruß
René
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:23
von Oldperl
Spider IT hat geschrieben:...in die Session oder ein Cookie speichern.
Also davon kann ich nur abraten. Im einfachsten Fall bin ich an einem "Fremdrechner" und dann steht mein RAW-Passwort in einem Cookie. Oder Jemand hijacked die Session und hat dann ebenfalls gleich mal mein Passwort. Wenn überhaupt, dann bitte nur direkt auf dem Server verarbeiten und zumindest die Möglichkeiten des Lesens auf dem Client ausschließen.
Gruß aus Franken
Ortwin
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:36
von mikesteiner99
Hallo René
Danke für Deinen eingespielten Code. Nur benötige ich das PASS beim erstellen des Benutzers in der Datenbank. Das ist leider nicht gaanz so einfach wie ich gedacht habe.
Hallo Ortwin
Generell gibt es da für mich keine Ausnahme, daß ist für mich ein no-go wegen Datenschutz und Glaubwürdigkeit gegenüber meinen Nutzern. Passwörter gehören den Usern allein, und wenn ich die an anderer Stelle brauche, dann gibt es da entweder eine erneute Anmeldung, oder die Daten werden gleich beim 1. Mal dort mitgespeichert. Alternativ kann man auch Passwörter zentral verwalten und für die Anwendungen Bridges oder ähnliches verwenden. Aber wie dem auch sei...
Nun, so unüblich ist das nicht. Hetzner online schreibt Ihre Passwörter ja (auch nach dem grossen Versehen) immer noch unverschlüsselt in die DB. Ich denke, es kommt immer drauf an, was damit gemacht wird. Wenn keine Kreditkartenangaben oder sonst delikate Angelegenheiten damit verbunden sind ist das Risiko kalkulierbar.
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:39
von Spider IT
Das stimmt natürlich.
Aber wenn man es in der Session schreibt, welche nur auf dem Server gespeichert wird, kommt da auch niemand ran.
Allerdings kann man die Daten dann auch nicht für eine externe Anmeldung per Browserfenster nutzen, denn da könnte man dann das Absenden verhindern und per "Show my Password" (Firefox Addon) das Passwort anzeigen lassen.
Gruß
René
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:44
von Spider IT
mikesteiner99 hat geschrieben:Nur benötige ich das PASS beim erstellen des Benutzers in der Datenbank.
Dann bleibt dir nur der Weg den Ortwin dir beschrieben hat.
Nur mal so am Rande: Wenn ich weiß, dass auf eine Webseite mein Passwort unverschlüsselt zum Login gespeichert wird, und das für anderweitige Anmeldungen genutzt wird bzw. werden soll, dann sieht mich die Seite nicht mehr wieder, da registriere ich mich gar nicht erst, denn damit kann dann in meinem Namen alles gemacht werden, auch wenn ich gar nicht auf der Seite bin.
Gruß
René
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 14:55
von mikesteiner99
Nur mal so am Rande: Wenn ich weiß, dass auf eine Webseite mein Passwort unverschlüsselt zum Login gespeichert wird, und das für anderweitige Anmeldungen genutzt wird bzw. werden soll, dann sieht mich die Seite nicht mehr wieder, da registriere ich mich gar nicht erst, denn damit kann dann in meinem Namen alles gemacht werden, auch wenn ich gar nicht auf der Seite bin.
Das ist natürlich richtig. Nur wie soeben gesagt: Wenn die Passwörter vom Webseitenbetreiber herausgegeben werden und vom Kunden nicht verändert werden können und es sich dabei um ein unkritisches Login für die Bereitstellung von Informationen wie Termine geht, welche nicht für die breite Masse bestimmt sind, ist das meiner Meinung nach für den Webseiteninhaber eher unkritisch.
Aber danke für eure Security Inputs. Da bin ich gleicher Meinung.
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 16:43
von xmurrix
Hallo mikesteiner99,
es wurde schon darauf hingewiesen, dass man das eigentlich nicht macht und dass man den Core idealerweise nicht ändern sollte, aber hier ein Beispiel wie man die Klasse FrontendUser um die eigene Logik anpassen kann.
Die Datei contenido/classes/class.frontend.users.php öffnen und die Funktion setField()
Code: Alles auswählen
function setField ($field, $value, $safe = true)
{
if ($field == "password")
{
parent::setField($field, md5($value), $safe);
} else {
parent::setField($field, $value, $safe);
}
}
ändern in
Code: Alles auswählen
function setField ($field, $value, $safe = true)
{
if ($field == "password")
{
parent::setField($field, md5($value), $safe);
functionToSetMyPassword($this->get("idfrontenduser"), $value);
} else {
parent::setField($field, $value, $safe);
}
}
Die Funktion functionToSetMyPassword() ist hier ein Beispiel, es bekommt die id des Frontendusers und das Passwort. Damit kann man machen, was man möchte. Idealerweise verschlüsselt in eine andere Tabelle schreiben, in eine CSV-Datei Schreiben, usw...
Wenn du die gespeicherten Passwort auslesen möchtest, kannst du die Klasse um deine eigene Funktion erweitern, die dann das Passwort zurückliefert
Code: Alles auswählen
function getMyPassword()
{
return functionToGetMyPassword($this->get("idfrontenduser"));
}
Dabei bleibt allles beim Alten, d. h. CONTENIDO speichert die Passwörter weiterhin verschlüsselt und hast deine eigene Funktion, um die Passwörter eigenständig zu speichern/auszulesen, am besten auch verschlüsselt...
Gruß
xmurrix
Re: Frontend User mit unverschlüsseltem Passwort abspeichern
Verfasst: Di 22. Jan 2013, 17:06
von mikesteiner99
Hallo xmurrix
Das ist genau was ich gesucht habe und werde das mal ausprobieren. Vielen Dank aus Zürich
Mike