Frontend User mit unverschlüsseltem Passwort abspeichern

Gesperrt
mikesteiner99
Beiträge: 93
Registriert: Mi 12. Aug 2009, 11:01
Wohnort: Au, Zürich
Kontaktdaten:

Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag von Oldperl »

Hallo Mike,

aus welchem Grund willst du Passwörter unverschlüsselt ablegen? Sowas macht man eigentlich nicht.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
mikesteiner99
Beiträge: 93
Registriert: Mi 12. Aug 2009, 11:01
Wohnort: Au, Zürich
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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... :roll:

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
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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

Code: Alles auswählen

$_COOKIE['upw']
zugreifen, das Login kriegst du über

Code: Alles auswählen

$auth->auth['uname']
Gruß
René
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
mikesteiner99
Beiträge: 93
Registriert: Mi 12. Aug 2009, 11:01
Wohnort: Au, Zürich
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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.
Zuletzt geändert von mikesteiner99 am Di 22. Jan 2013, 14:41, insgesamt 1-mal geändert.
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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é
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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é
mikesteiner99
Beiträge: 93
Registriert: Mi 12. Aug 2009, 11:01
Wohnort: Au, Zürich
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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.
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag 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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
mikesteiner99
Beiträge: 93
Registriert: Mi 12. Aug 2009, 11:01
Wohnort: Au, Zürich
Kontaktdaten:

Re: Frontend User mit unverschlüsseltem Passwort abspeichern

Beitrag von mikesteiner99 »

Hallo xmurrix

Das ist genau was ich gesucht habe und werde das mal ausprobieren. Vielen Dank aus Zürich

Mike
Gesperrt