Seite 1 von 1

PHP - Klartextpasswörter im Script oder alles verschlüsseln

Verfasst: 04.05.2007 11:09
von Rico
Hallo,

ich würde gern mal Eure Meinung hören/lesen, da wir in meiner Firma derzeit eine heftige Diskussion mit unserem Admin darüber führen, ob Passwörter in PHP-Scripten im Klartext stehen dürfen, bzw. ob PHP-Scripte generell zu verschlüsseln sind.
Unser Admin ist der Meinung (stur wie ein Esel), wenn was programmiert wird, hat kein Passwort unverschlüsselt in irgendeinem Script zu stehen (auch nicht die für den Zugang zu einer Datenbank, z. Bsp. Mysql).
Wir, d.h. die Programmierer sind aber der Meinung, dass das egal ist ob verschlüsselt oder nicht - d. h. wer die Dateien z. Bsp. über FTP ansehen darf kann doch unabhängig davon so oder so damit Unfug treiben. Also ist es Admin-Sache, dafür zu sorgen, dass keine Unberechtigter die Dateien einsehen darf.
Ich muss dazu sagen, wir programmieren hier nur für unser Intranet verschiedene Anwendungen, d.h. kein Script verlässt jemals die Firma.

Es ist nun eine heftige Diskussion entbrannt und unser Verständnis über Sicherheit geht in diesen Sachen irgendwie sehr weit auseinander.

Und überhaupt: Im Internet habe ich bisher nur PHP-Scripte gesehen, in denen Username und Passwort für den Datenbankzugang im Klartext steht.

Mich würde mal interessieren, wie ihr darüber denkt.

Gruß Rico

Verfasst: 04.05.2007 11:39
von edel
Unser Admin ist der Meinung (stur wie ein Esel), wenn was programmiert wird, hat kein Passwort unverschlüsselt in irgendeinem Script zu stehen (auch nicht die für den Zugang zu einer Datenbank, z. Bsp. Mysql).
Recht hat er . Wer sagt dir denn das PHP frei von Sicherheitsluecken ist
und man nicht auch ohne ftp an ein solches Passwort kommt ? Fuer private
Scripte mag das ja noc egal sein , aber in einer Firma ... ?

Verfasst: 04.05.2007 11:47
von D@nte
Klartext imo
myconfig.php hat geschrieben: <?
# === GLOBAL DEFS ===#
$host = "localhost";
$dbusername = "rootuser";
$dbpassword = "rootuser";
$datenbank = "root-db";
$verbindung = mysql_connect($host,$dbusername,$dbpassword);
mysql_select_db($datenbank);
.
.
.
?>
Wär zumindest das was ich zur ersten Hälfte deines Posts gesagt hätte, wenn's jetzt aber darum geht das euer Admin Angst davor hat das Leute per FTP die files mit den zugangsdaten zu MySQL whatever runterladen und auslesen würd mich dann doch mal intressieren wie er diese 'brisanten' Daten verschlüsseln will.

@edel
Wie denn das?! Haste sowas scho ma gemacht oder nur irgendwo drüber gelesen?! Irgendwelche Quellen?!

Verfasst: 04.05.2007 12:33
von Rico
Klartext imo

myconfig.php hat Folgendes geschrieben:

<?
# === GLOBAL DEFS ===#
$host = "localhost";
$dbusername = "rootuser";
$dbpassword = "rootuser";
$datenbank = "root-db";
$verbindung = mysql_connect($host,$dbusername,$dbpassword);
mysql_select_db($datenbank);
.
.
.
?>
@D@nte
genau das meine ich. Ich kenne kein PHP-Script in dem der Verbindungsaufbau zur Datenbank nicht wie oben gemacht wird. Dabei ist es doch egal, ob an der Stelle nun das PW in Klartext oder verschlüsselt steht. Wer die PHP-Datei einsehen kann, weis was er machen muss um auf die DB zu kommen.

Also ist es doch Admin-Sache, die Rechte für Dateien und Verzeichnisse entspr. zu setzen in denen die Scripte liegen.

Ich weiss, dass es Möglichkeiten gibt auch den Quellcode von PHP-Dateien zu verschlüsseln. In unserem Fall reicht es doch aber aus die Verzeichnisse sicher zu machen - und das ist meiner Meinung nach, Aufgabe der Admins.

Verfasst: 04.05.2007 12:53
von stbi
Passwortverschlüsselung für den internen Gebrauch halte ich auch für überflüssig (es sei denn, es handelt sich um Personaldaten oder andere kritische Daten).

Aber sei doch lieb zu Deinem Admin und tue ihm den Gefallen! Guck mal unter dem Stichwort Salted Hash, da gibts im Netz auch entsprechend PHP-Code dafür.

Verfasst: 04.05.2007 13:22
von DarkDragon
Das beste ist es die Zugangsdaten einfach in einem passwortgeschützten Ordner zu legen(Als PHP Include) und diese dann mit dem PHP Skript mit include() einbetten. Das PHP Skript hat natürlich die Rechte auf den Zugriff, der außenstehende allerdings nicht.

Das PHP Include ist desshalb nötig, da falls der Hacker doch mal reinkommen sollte - aus welchem Grund auch immer - kann man davon ausgehen, dass er nicht die Daten sieht sondern eine Leere Seite, da ein PHP Skript ausgeführt wird.

Und wers dann noch verschlüsselt (Symmetrisch zumindest, man muss es ja im Klartext an die mysql Befehle übergeben), kann auch vor einem FTP angriff ziemlich sicher sein.

Verfasst: 04.05.2007 14:25
von bluejoke
Hallo!

Falls der Admin darauf besteht, werdet ihr euch ja wohl dran halten müssen. Fraglich wie sinnvoll das ist, weil Entschlüsselungsschlüssel, Entschlüsselungsroutine und Verschlüsselten Text ja sowieso einigermaßen zusammen bleibt. Vielleicht verwechselt da dein Admin was, mit dem Vorgehen, wenn man Benutzerpasswörter speichern will, also Passwörter, die zunächst eingegeben werden müssen und nur geprüft werden müssen...

Sinnvoller finde ich, wie DarkDragon schon ausgeführt hat, das speichern der Daten in einer extra php-Datei, möglichst außerhalb des Webroot, oder zumindest per htaccess geschützt.

Simon