Ergebnis 1 bis 5 von 5

Thema: [erledigt] Backendfeld Passwort: verschlüsseln statt hashen?

  1. #1
    Contao-Nutzer
    Registriert seit
    21.02.2014.
    Beiträge
    9

    Standard [erledigt] Backendfeld Passwort: verschlüsseln statt hashen?

    Hallo,

    ich möchte einen Autologin für ein Drittsystem vom Contao-Backend aus realisieren.
    Dafür brauche ich URL, Benutzername & Passwort für den Account in diesem anderen System. Diese Daten sollen im Contao-Backend eingetragen werden können.

    Soweit funktioniert das auch alles, aber nur, wenn ich das Passwortfeld im Backend vom Typ "text" nehme, was ich ein bisschen unschön finde. Ich würde hier gerne ein Feld vom Typ "password" einsetzen, leider scheitert's hierbei an der Entschlüsselung.
    Ich brauche das Passwort an einer bestimmten Stelle im Backend wieder im Klartext, um es dann per vom Drittsystemanbieter vorgegebenen Hash-Funktion zu hashen.


    Der Teil im dca sieht folgendermaßen aus:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_settings']['fields']['pwcPassword'] = array
    (
      
    'label' => &$GLOBALS['TL_LANG']['pwcURL']['pwcPassword'],
      
    'inputType' => 'password',
      
    'exclude' => true,
      
    'eval' => array('mandatory' => false'rgxp' => 'pwcPassword')
    ); 

    Was dann als Wert in der localconfig landet, scheint für mich der Hash+Salts zu sein, zudem sich das Ergebnis immer ändert, auch wenn man das gleiche Passwort eingibt.

    Ich habe dann die Angabe encrypt im DCA hinzugefügt, in der Hoffnung, dass das Passwort dann NUR verschlüsselt, nicht gehasht UND verschlüsselt wird, aber das haut auch nicht hin...jedenfalls bekomme ich mit

    PHP-Code:
    Encryption::decrypt($stored_pw); 
    nur Murks heraus.


    So wie das aussieht, komm ich also mit dem derzeitigen Password-Widget nicht zurande. Im Grunde genommen dürfte man im Widget nur eine Zeile ändern müssen:

    PHP-Code:
    135 - return \Encryption::hash($varInput);
    135 + return \Encryption::encrypt($varInput); 
    https://github.com/contao/core/blob/...s/Password.php

    und jetzt frage ich mich, wie ich das am ehesten anstellen könnte. Ein neues Backend-Widget erstellen mit demselben Inhalt, bis auf diese eine Zeile? Klingt wie Kanonen auf Spatzen. Wie würdet ihr das angehen? Hab ich vielleicht was übersehen?
    Geändert von ct9 (04.06.2014 um 14:52 Uhr) Grund: erledigt

  2. #2
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Warum nutzt du dafür nicht den passenden Hook?

    https://contao.org/de/manual/3.2/cus...eckcredentials

    I. d. R. lässt man dann Contao lokal in ein falsches Passwort laufen und prüft die Eingabe dann direkt gegen die entfernte Nutzerdatenbank.
    Passwörter lokal im Klartext speichern ist doch doof.

  3. #3
    Contao-Nutzer
    Registriert seit
    21.02.2014.
    Beiträge
    9

    Standard

    Ich möchte das Passwort nicht im Klartext speichern. Ich möchte es verschlüsselt speichern und später wieder entschlüsseln können.
    Ich brauche an der Stelle keine Credentials-Prüfung.

  4. #4
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $GLOBALS['TL_DCA']['...']['fields']['...'] = array(
        
    'inputType' => 'text',
        ...
        
    'eval' => array(
            
    'hideInput' => true,
            
    'encrypt' => true,
        ),
    ); 
    Siehe https://contao.org/de/manual/3.3/dat...tml#evaluation

  5. #5
    Contao-Nutzer
    Registriert seit
    21.02.2014.
    Beiträge
    9

    Standard

    Ha, sehr gut. Jetzt hab ich zwar schon ein neues Backend-Feld definiert, aber die Vorgehensweise ist natürlich sinnvoller.
    Danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •