it-swarm-eu.dev

Ist es sicher, das Datenbankkennwort in einer PHP Datei) zu speichern?

In meiner connection.php - Datei werden die Anmeldeinformationen für die Verbindung zur Datenbank gespeichert:

<?php 
    $objConnect = mysql_connect("localhost","username","password"); 
    mysql_select_db("selectDB", $objConnect);
?>

Wenn eine Seite die Datenbank verbinden muss, verwende ich einfach <?php include("connection.php"); ?>.

Ist das sicher? Können Hacker meine Anmeldeinformationen aus dieser Datei stehlen?

32
OammieR

Meine Empfehlung: Speichern Sie keine Passwörter im Quellcode.

Speichern Sie sie stattdessen in einer Konfigurationsdatei (außerhalb des Webstamms) und stellen Sie sicher, dass die Konfigurationsdatei nicht öffentlich zugänglich ist. Der Grund dafür ist, dass Sie Ihre Kennwörter normalerweise nicht im Quellcode-Repository einchecken oder für alle zugänglich machen möchten, die Dateien in Ihrem Webstamm anzeigen können.

Das Speichern von Passwörtern in einer .php - Datei in Ihrer Webroot birgt ein zusätzliches Risiko. Dies ist etwas unklar, kann jedoch leicht vermieden werden, indem die Datei außerhalb Ihres Webstamms platziert wird. Bedenken Sie: Wenn Sie connection.php Mit einem Texteditor bearbeiten und Ihre Verbindung während der Bearbeitung unterbrochen wird, speichert Ihr Editor automatisch eine Kopie der Datei connection.php In einer Sicherungsdatei: z. connection.php~ (Im selben Verzeichnis). Jetzt hat die Sicherungsdatei eine andere Erweiterung. Wenn also jemand versucht, diese Datei abzurufen, stellt der Apache-Server gerne eine Kopie der Datei im Klartext bereit und gibt Ihr Datenbankkennwort an. Weitere Informationen finden Sie unter 1% der CMS-basierten Sites legen ihre Datenbankkennwörter offen .

Siehe auch Wie gehen Open Source-Projekte mit sicheren Artefakten um? , Open Source und wie funktioniert es bei sicheren Projekten?

35
D.W.

Es ist ziemlich sicher. Um den Inhalt der PHP-Datei zu erhalten, muss ein Hacker Ihren Server kompromittieren oder Sie müssen ihn falsch konfigurieren.

Trotzdem empfehle ich, MySQL so zu konfigurieren, dass der vom Skript verwendete Benutzer nicht remote erreichbar ist, und einen anderen Benutzer für den administrativen Remotezugriff zu verwenden.

11
CodesInChaos

Das Problem tritt auf, wenn Sie ein PHP - Skript haben, das möglicherweise die Dateien auf Ihren Server herunterlädt, z. B. download.php?=index.php.

Wenn Sie Google überprüfen, werden Sie feststellen, dass diese Sicherheitsanfälligkeit auf vielen anderen Websites besteht.

5
Victor Casé