PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Logindaten in Session-Variablen oder new mysqli (https://www.php-resource.de/forum/php-developer-forum/107242-logindaten-in-session-variablen-oder-new-mysqli.html)

waffelchen 25-02-2021 11:59

Logindaten in Session-Variablen oder new mysqli
 
Hallo! Ich bin neu hier und bastele seit einiger Zeit an einer Website, mit der auf eine DB zugegriffen werden soll. Das klappt auch alles wunderbar, nur möchte ich jetzt noch gern eine paar Securitysachen abgeklärt haben. Vorab: die Website läuft nur in einem kleinen Intranet, welches nach außen ganz gut abgesichert ist. Trotzdem möchte ich auf Nummer sicher gehen.

Konkret geht es mir um das Handeln der Logindaten.

Momentan läuft das so ab:
Der User gibt seine Datenbankzugangsdaten über ein Inputfeld ein, diese werden per POST übergeben, escaped und es wird versucht, damit eine Verbindung zur Datenbank herzustellen. Bei Erfolg werden Username und PW in zwei Sessionvariablen gespeichert, auf die ich auf jeder einzelnen Page meines Projektes zugreifen kann, um eine Verbindung zur DB herzustellen. Das klappt sehr gut, nur habe ich dazu leider sehr unterschiedliche Aussagen im Netz gefunden, ob man das so machen kann/sollte oder nicht.

Es wäre mir natürlich lieber, statt der Zugangsdaten die Datenbankverbindung zu übergeben
Code:

$mysqli = new mysqli('localhost', $nutzer, $passwort, 'db');
$_SESSION['mysqli'] = $mysqli;

Aber die lässt sich wohl nicht in einer Session-Variablen ablegen.

Was haltet ihr davon? Sicher, unsicher? Gut, nicht gut, total bescheuert?

h3ll 25-02-2021 13:12

Für was das Escaping?

Die Sicherheit steht und fällt mit der Konfiguration der Server. Man kann das Passwort natürlich verschlüsselt in der Session abspeichern. Wenn es aber jemand schafft fremde Session-Daten auf dem Webserver abzugreifen, dann mit einer hohen Wahrscheinlichkeit auch den PHP-Code, der das wieder entschlüsseln kann.

Man könnte das Passwort auch verschlüsselt im Cookie des Browsers speichern. Hier das gleiche, wenns jemand schafft den Webserver zu hacken, kommt er auch an den Code, der das Passwort im Cookie entschlüsseln kann.

Also sagen wir so, das über eine Webanwendung im internen Netz zu machen ist nicht gerade die sicherste Variante. Aber phpMyAdmin macht im Endeffekt auch nichts anderes. Es kommt halt auf die Rahmenbedingungen an. Haben nur vereinzelt User Zugriff zu der Webanwendung und sind diese vertrauenswürdig, dann würde ich mir keine großen Gedanken machen. Ist aber davon auszugehen, dass jemand Schindluder treiben will, würde ich sowas eher nicht machen. Auch sollte sicher gestellt werden, dass kein User direkten Zugang zum Webserver hat und dort PHP-Code oder Session-Daten auslesen kann.

Gibts eigentlich einen besonderen Grund, warum die User nicht einfach einen herkömmlichen SQL-Client verwenden? Wozu eine PHP-Lösung?


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:02 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG