Sicherheit: MySQL-Verbindungsdetaildatei ausblenden

7

Ok, ich weiß, dass dies eine sehr grundlegende Frage sein muss, aber mein Problem ist das folgende: Ich habe meine erste PHP-Mini-App entwickelt (ich bin also ziemlich neu in diesem Bereich) und bin mir ziemlich sicher, dass es zwei Dateien von gibt meine Webanwendung, die irgendwie vor neugierigen Blicken geschützt sein sollte

  • der mit den Details zum Verbinden mit der Datenbank
  • der mit dem Passwort-Hashing und dem Salzschlüssel

Wie soll ich sie beschützen? Ich habe irgendwo gelesen, dass sie irgendwo über meinem öffentlichen Verzeichnis abgelegt werden sollen, aber wie kann die App dann darauf zugreifen? Sollte ich etwas in meiner Apache-Konfiguration ändern, damit sich das Dokumentstammverzeichnis von etwas anderem unterscheidet?

Gibt es noch andere Dinge, die ich im Hinblick auf die Sicherheit berücksichtigen sollte? Bisher entkomme ich jedem Benutzerfeld, das mit mysql_real_escape_string () in die Datenbank geht, aber abgesehen davon und dem Hashing und Salting der Passwörter mache ich nichts anderes.

Margaritam
quelle

Antworten:

7

Ohne mehr über Ihre App zu wissen oder echten Code zu sehen, ist es schwierig, detaillierte Sicherheitshinweise zu geben. Davon abgesehen fallen Ihnen nach dem Lesen Ihres Beitrags einige Dinge ein:

1: Bewahren Sie Ihre Konfigurationsdatei mit den Datenbankverbindungsinformationen und dem Salt-Schlüssel außerhalb des öffentlichen Verzeichnisses auf und ändern Sie sie auf 444 oder 644. Sie können auf ein Verzeichnis über Ihrem Skript zugreifen, indem Sie Folgendes tun<?php include('../config.php'); ?>

2: Das Escaping von Informationen, die in eine Datenbank gelangen, sollte immer erfolgen. Erwägen Sie jedoch, zu mysqli zu wechseln, da mysql_real_escape_string ab PHP 5.5.0 veraltet ist und in Zukunft entfernt wird.

3: Ich habe keine Ahnung, wie Ihr Authentifizierungssystem aussieht, aber stellen Sie sicher, dass Sie keine wichtigen Daten wie Kennwörter in Cookies speichern. Dies geht auf meinen ersten Punkt zurück, dass es unmöglich ist, gute Ratschläge zu geben, ohne Ihren Code zu sehen, aber es gibt viele Artikel, Tutorials und vorgefertigte Lösungen zur Sicherung der Benutzerauthentifizierung - /programming/1624846/ PHP-Best-Practices-für-Benutzer-Authentifizierung-und-Passwort-Sicherheit

Josh Mountain
quelle
Danke für deine Antwort. Ich muss # 1 weiter versuchen, bis ich es bekomme. Ich wusste nicht, dass mysql_real_escape_string veraltet ist, ich werde es überprüfen. Danke auch für den Link.
Margaritam