2016-07-13 6 views
2

Ich erstelle eine Laravel-Verwaltungsanwendung, die eine Verbindung zu einer Anzahl verschiedener Datenbanken auf verschiedenen Servern herstellen kann. Ich möchte die Passwörter nicht im Klartext auf dem Server speichern, wenn der Server irgendwann einmal kompromittiert ist, was Zugriff auf alle Anwendungsdaten und nicht nur auf die lokalen Daten geben würde.Wie speichere ich vorübergehend ein Datenbankpasswort in Laravel?

Wenn ein Benutzer auf eine der Datenbanken klickt, um darauf zuzugreifen, möchte ich, dass er das Kennwort für diese Datenbank eingibt und ihnen dann für die Dauer ihrer Sitzung Zugriff gewährt.

Ich könnte das Passwort in einer Sitzungsvariablen speichern, aber ich bin mir nicht sicher, ob das sicher ist. Was ist der sicherste Weg, dies zu tun?

+0

besten Weg wäre Laravel5 Standard verschlüsseln/entschlüsseln Mechanismus verwenden, mit starken Salz. –

Antwort

1

Sie können es verschlüsselt mit der Sitzungsklasse speichern.

Und Sie können die Sitzung verschlüsselt machen, und speichern Sie den Benutzerpass als verschlüsselte Variablen.

können Sie sehen, wie es hier zu tun: https://laravel.com/docs/5.1/session

Und Sie können Verschlüsselung/Entschlüsselung der Verschlüsselungs-Klasse. https://laravel.com/docs/5.1/encryption

// Somewhere in your controller 
$encrypted = Crypt::encrypt($value); 
$request->session()->put('encrypted_pass', $encrypted); 

// Later in your controller 
$encrypted= $request->session()->get('encrypted_pass', 'default_if_any'); 
$decrypted = Crypt::decrypt($encrypted); 

So etwas kann funktionieren, sollten Sie es ändern, um Ihre Bedürfnisse anzupassen.