
Ich schreibe zum ersten Mal eine große PHP-Anwendung (mit Setup) und frage mich, welche Sicherheitsvorkehrungen ich hinsichtlich der Berechtigungen treffen sollte.
setup.php verwendet fopen/fwrite, um eine config.php basierend auf POST-Daten zu generieren, die von setup.php stammen. Das funktioniert, aber es scheint, dass ich nicht in config.php schreiben kann, wenn ich die Berechtigungen dafür nicht auf stelle 777
.
Config.php enthält im Wesentlichen die Datenbankanmeldeinformationen in PHP-Variablen (die mit include() verknüpft werden). Kann man das so belassen 777
?
Ich frage mich, ob das in Ordnung ist oder ob ich den Benutzer anweisen sollte, die Berechtigungen wieder auf einen Wert wie 655 zu ändern (ich bin nicht sicher).
Antwort1
Sie sollten die Dateiberechtigungen auf die für die jeweilige Aufgabe erforderlichen Werte einstellen. Dies kann 777 für die Installation und 644 für die Ausführung der Anwendung sein.
Sie sollten bei jeder Ausführung Ihrer Anwendung überprüfen, ob die Berechtigungen (für kritische Dateien und Pfade) Ihren Wünschen entsprechen. Wenn dies nicht der Fall ist, geben Sie eine Fehlermeldung aus und stoppen Sie die Ausführung der Anwendung.
Antwort2
Bei vielen PHP-Anwendungen müssen Sie während der Installation des Produkts die Datei config.php auf 777 setzen. Ich denke, das ist völlig akzeptabel, aber der Benutzer sollte darauf hingewiesen werden, dass die Datei nach Abschluss der Installation wieder auf 644 zurückgesetzt werden sollte.
Eine andere Lösung besteht darin, den Benutzer dazu zu bringen, die config.php mit Datenbankeinstellungen fest zu codieren. Dies macht die Dinge für einige neue Benutzer jedoch komplizierter.