MySQL-Zugangsdaten sicher machen // Sicherheitsproblem

leon_20v

Erfahrenes Mitglied
Hallo,

Ich habe eine Datei, in der die Zugangsdaten für meine Datenbank steht. Ich möchte ja nicht, das jeder die Daten der Datenbank lesen kann. In der Datenbank stehen nämlich sensible Dateien wie Name und Adresse von Membern.

Wie schaffe ich es denn, das keiner auf meine MySQL Datenbank kommt und alles auslesen kann?

Kann ich das mit htaccess machen? Wenn ja wie funktioniert das ganze? Wenn nein, was ist die Sicherstes möglichkeit.

Ich Danke schonmal
 
Du meinst so eine Art "Config.php"? Also eine PHP-Datei wo der Datenbankname, User, Passwort usw. drin stehen?

Brauchst du meiner Meinung nach nicht sichern. Ich würde der Datei einfach nicht soviele Rechte geben (644) und Fertig. Die Datei kann niemand auslesen...

Die Config.php wird bei vBulletin Foren auch nicht abgesichert und vBulletin gilt als sehr sicher.
 
wie bl500 schon sagt einfach auf den ftp Server die eine Datei alle rechte entziehe. Weiterhin kannst du ja auch sensible Daten auf der Datenbank verschlüsseln bzw. Salzen.
 
verschlüsseln mit md5? aber das kann man doch einfach wieder entschlüsseln oder nicht?
was versteht man unter Salzen?

Wie kann ich der Datei alle Rechte entziehen?
 
Das "Salzen" kannst du wieder vergessen, weil dich das hier nicht weiterbringt, da du deine Datei vorm Auslesen schützen willst.

Es reicht, wenn du die richtigen Zugriffsrechte setzt. Du kannst auch eine Konfigurationsdatei anlegen, die ausserhalb deines Document Root liegt und die dann einbinden. Dann kommt von aussen niemand an die Datei heran.
 
okay aber wie kann ich etwas ausserhalb des Root legen? verstehe ich nicht.

Wie vergebe ich denn einer Datei Rechte? Das hab ich auch noch nie gehört?

Danke an alle schonmal für eure Antworten! :)
 
Wenn du im FTP-Server mit der rechten MAustaste auf eine Datei gehst, öffnet sich ein kleines Menü. Dort gehst du auf Dateiberechtigung und dann nimmst du die Häckchen raus. Ich würde alles rausnehmen, bis "Besitzer"
 
[...]
Brauchst du meiner Meinung nach nicht sichern. Ich würde der Datei einfach nicht soviele Rechte geben (644) und Fertig. Die Datei kann niemand auslesen...[...]

644?! Autsch. Klar, machen wir die Datei world-readable, dann kann sie sicherlich keiner lesen...
644 kenn ich noch von folgender Sache: http://www.netzpolitik.org/2009/datenleck-bei-bsmparty-de/
Sorry, normal flame ich nicht, aber da konnte ich mich jetzt einfach nicht zurückhalten.

Back to Topic:
Eine Datei hat unter Unix 3 verschiedene Arten von Rechten, die auf 3 Gruppen zutreffen.
Lesen, Schreiben, Ausführen jeweils für den Eigentümer, eine Gruppe und alle anderen.
Ich würde folgendes vorschlagen:
Als Eigentümer gibst du www-data an (der Benutzer, als der dein Webserver läuft) und als Gruppe "root". Die Rechte setzt du dann auf:
  • Besitzer: Lesen, Schreiben
  • Gruppe: Lesen
  • Andere: Keine Rechte

Unter Linux ausgedrückt sollte die Datei somit die Rechte 640 haben.
Somit hat dein Webserver Zugriff darauf, dein FTP-Benutzer aber normalerweise nicht (solange du nicht als www-data per FTP arbeitest).

Gruß
BK
 
Zuletzt bearbeitet:
Jein, der Gruppe root kannst du Leserechte geben, in der sollte eigentlich niemand drinstehen.
Aber grundsätzlich hast du schon recht, ja. Zugriff nur für die, die diesen unbedingt brauchen.

// Edit: Zur Sicherheit der Datenbank noch ein Nachtrag:
Erstelle einen Benutzer für dein PHP-Projekt mit den entsprechenden Rechten auf der Datenbank. Stelle nun als erlaubte Hosts nur localhost ein. Somit kann jemand, der die config.php geklaut hat und das Datenbankpasswort hat nicht auf die Daten zugreifen, da die Zugriffsbeschränkung nur Verbindungen von der gleichen Maschine akzeptiert. Dann deinstallierst du noch phpmyadmin. Dies wäre nochmals ein Schritt in die richtige Richtung ;)

Gruß
BK
 
Zuletzt bearbeitet:
Zurück