Was ist der beste Weg, um eine Datenbank zu sichern connection-string?
Schreibe ich einen Satz von Datenbank-gestützten Anwendungen in PHP. Diese Anwendungen laufen auf einem Linux-server seinen eigenen user. Andere Benutzer werden wahrscheinlich auf dem system zu Zeiten, aber sehr kontrollierten Zugriff. Andere Server, die Sie nicht haben Zugriff auf alle. Ich werde auch aussetzen ein limit stored procedure API für Entwickler, die brauchen, um zu schreiben von Perl-Skripts, die Zugriff auf die Datenbank mit der DBI und eine Reihe von Funktionen, die ich Schreibe.
Meine Frage ist, was der beste Weg zur Sicherung der config-Dateien, die Verbindungszeichenfolgen in Ihnen?
Ist ein anderer Benutzer mit der [4+]00-Berechtigungen auf die Datei reicht? Sollte ich verschlüsseln? Das scheint nur verlagern das problem an anderer Stelle, so dass ich mir sorgen darüber, wo zum speichern eines Verschlüsselungs-Schlüssel. Mir ist klar, das Perl-Entwickler, müssen Sie eine Verbindungszeichenfolge zu Ihrer eigenen, wie Sie nur ausführen, Datenbank-Berechtigungen.
- dies ist ein Kommandozeilen-app oder web-app?
- Ich denke, es ist sicher anzunehmen, dass PHP == web-apps in über 99% der Fälle.
- Es ist eine legitime Frage. Teile des Systems tatsächlich verwenden die CLI.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Maschine wirklich verabreicht wird, die in der traditionellen Unix-Mode, in dem J. Random user nicht aus su-ing root die ganze Zeit, ich würde sagen, dass die Dateisystem-Berechtigungen sind Ihre beste Wette. Wenn jemand bekommt unberechtigten root-Zugriff, kein Betrag der Verschlüsselung Dummheit zu gehen, um "sichere" Verbindung Zeichenfolge.
Ich würde markieren Sie die Dateien, die w/die Verbindungszeichenfolge als Eigentum der "Skript-Benutzer", und geben Sie Ihnen Zugang wie Sie es beschreiben.
(Bravo für die Erkenntnis, dass eine Verschlüsselung der Verbindung Zeichenfolge nicht kaufen Sie nichts, in diesem Beispiel. Security through obscurity ist kontraproduktiv.)
Hier ist ein link zu einem kostenlosen Apache-Modul, das hilft, verwalten Sie den Zugriff mit einem Kennwort speichern:
http://uranus.it.swin.edu.au/~jn/linux/php/passwords.htm
Scheint es ein wenig näher zu mir, und erfordert, dass Sie PHP unter mod_php. Und noch ist es nicht die Möglichkeit, dass unbefugte Personen, die Zugriff auf den server kann nur Lesen Sie Ihre Passwort-Datei.
Ich denke, man muss sich verlassen auf Datei-Berechtigungen und Vertrauen, dass unbefugte nicht die Möglichkeit haben, zu
sudo
zu Ihrer PHP-Anwendung UID, oder auf root.Meine beste Lösung war bisher die store-config-Dateien in eine verschlüsselte partition so, dass Menschen mit direktem Zugriff auf die Maschine kann nicht ziehen Sie die Passwörter aus, indem Sie das Laufwerk an einen anderen PC, und mit Dateisystem-Berechtigungen, damit die Leute nicht Lesen können, die Datei von innerhalb des Betriebssystems selbst.
Müssen Sie verstehen, aber, dass es nicht viel Sie tun können, auch gegen Angreifer mit direktem Zugang zu der Maschine. Wenn es läuft der Datenbank-server selbst, ist das sichern der config-Dateien nicht viel Effekt, wenn er ändern kann, die Datenbank selbst. Stellen Sie einfach sicher, dass alles so sicher wie es sein kann, und Sie werden wahrscheinlich in Ordnung sein.