andti
29-05-2005, 10:12
Hallo.
Bin gerade dabei, ein sehr simples Gästebuch mit MySQL zu programmieren. In der letzten c't (11/2005) war ein"Schnellkurs Web-Datenbank". Dort war auch auf das Einbinden von Dateien mit require hingewiesen. Man sollte den Datenbankzugriff in eine Datei db.inc auslagern, damit keiner das Datenbank-Passwort auslesen kann, und sie dann einbinden. Dazu stand weiter:
Zur Sicherheit sollte man die Dateirechte von db.inc prüfen und versuchen, die Datei im Browser aufzurufen - es wäre peinlich, wenn das Datenbank-Passwort in Google zu finden wäre.
Das wollte ich jetzt an meiner Homepage einmal ausprobieren. Ich binde die einzelnen Parts meiner Seite (Grundgerüst, Menü, Inhalt, ...) per require, bzw. include in eine index.php ein. Diese Dateien kann man natürlich mit dem Browser (sofern man den Dateinamen kennt) auch unabhängig von der index.php öffnen. Mit meinem FTP-Programm habe ich jetzt mal ein wenig an der Rechtevergabe rumgespielt. Aber sobald ich die Seite nicht mehr im Browser aufrufen konnte (was ja gewollt war), konnte meine index.php sie auch nicht mehr einbinden. Als Fehlermeldung kam
Warning: main(./include/framework.inc.html): failed to open stream: Permission denied in [...] on line 26
Warning: main(./include/framework.inc.html): failed to open stream: Permission denied in [...] on line 26
Fatal error: main(): Failed opening required './include/framework.inc.html' (include_path='.') in [...] on line 26
Das wird ja wohl heißen, dass die benötigten Lese-Rechte fehlen.
Ich habe jetzt folgende Fragen:
Kann man die Rechte überhaupt so vergeben, dass ein php-Skript die Datei auslesen kann, der Browser aber nicht?
Wie macht ihr das mit euren Datenbank-Passwörtern?
Danke für eure Hilfen,
andti.
Bin gerade dabei, ein sehr simples Gästebuch mit MySQL zu programmieren. In der letzten c't (11/2005) war ein"Schnellkurs Web-Datenbank". Dort war auch auf das Einbinden von Dateien mit require hingewiesen. Man sollte den Datenbankzugriff in eine Datei db.inc auslagern, damit keiner das Datenbank-Passwort auslesen kann, und sie dann einbinden. Dazu stand weiter:
Zur Sicherheit sollte man die Dateirechte von db.inc prüfen und versuchen, die Datei im Browser aufzurufen - es wäre peinlich, wenn das Datenbank-Passwort in Google zu finden wäre.
Das wollte ich jetzt an meiner Homepage einmal ausprobieren. Ich binde die einzelnen Parts meiner Seite (Grundgerüst, Menü, Inhalt, ...) per require, bzw. include in eine index.php ein. Diese Dateien kann man natürlich mit dem Browser (sofern man den Dateinamen kennt) auch unabhängig von der index.php öffnen. Mit meinem FTP-Programm habe ich jetzt mal ein wenig an der Rechtevergabe rumgespielt. Aber sobald ich die Seite nicht mehr im Browser aufrufen konnte (was ja gewollt war), konnte meine index.php sie auch nicht mehr einbinden. Als Fehlermeldung kam
Warning: main(./include/framework.inc.html): failed to open stream: Permission denied in [...] on line 26
Warning: main(./include/framework.inc.html): failed to open stream: Permission denied in [...] on line 26
Fatal error: main(): Failed opening required './include/framework.inc.html' (include_path='.') in [...] on line 26
Das wird ja wohl heißen, dass die benötigten Lese-Rechte fehlen.
Ich habe jetzt folgende Fragen:
Kann man die Rechte überhaupt so vergeben, dass ein php-Skript die Datei auslesen kann, der Browser aber nicht?
Wie macht ihr das mit euren Datenbank-Passwörtern?
Danke für eure Hilfen,
andti.