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

Fragen zu allen anderen Programmiersprachen.
Rico
Beiträge: 24
Registriert: 06.09.2005 13:58

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

Beitrag 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
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 ... ?
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag 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?!
Rico
Beiträge: 24
Registriert: 06.09.2005 13:58

Beitrag 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.
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag 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.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten