Includes vor direktem Zugriff bewahren
Tom Wieczorek
- php
ich habe eine menge includes die den enduser nix angehen in denen die zugriffsdaten für die datenbank und so gespeichert sind. ich kann diese leider nicht ausserhalb der doc-root des webservers ablegen. wie schütze ich die dinger nun vor direkten zugriffen durch den benutzer? ich weiß nich ob das mit .htaccess bei dem server funktioniert ausserdem hab ich von .htaccess keine ahnung...
wie macht man das am besten?
wenn du *.php dateien includest machst du das am besten so:
if ( eregi("config.php", $PHP_SELF) )
{
Header ( "Location: index.php" );
die();
}
das packst du in deine zb. config.php ganz oben hin .. für andere dateien muss das natürlich anders heißen ;)
und wenn du keine php dateien includest, sonder templates oder inc oä. dann hilft dir nur htaccess .. :(
dank dir dafür, also prinzipiell kann ich die ganzen inc-dinger auch im php-dinger umbenennen, aber aber eben festgestellt, dass man ganz einfach per chmod 700 daten vom web aus unzugänglich machen kann (hätte ich auch eher drauf kommen können), die danach aber von einem lokalen skript noch zugänglich sind :-) das is natürlich echt praktisch...
Hallo Tom, *gg*
ich gehe jetzt mal davon aus, dass Du einen Linux-Server hast. AUf dem Server hast Du einen Account und eine Domain. Beide haben ein unterschiedliches Wurzelverzeichnis für Dich. Der PHP-Deamon, den Du n´benutzt darf aber in deinem gesamten Userberich lesen, also sowohl im normalen Datenbereich als auch unterhalb der Document-Root (Das ist der Website-Bereich)
Unter normalen Umständen würde bein einem vernünftigen Provider der Website-Bereich ein Unterordner Deines Accounts sein. An den Account kommen also die "HTTP-Besucher nicht heran".
Wenn Du Deine Include-Dateien jetzt in den Bereich außerhalb des Website-Bereiches (oberhalb der Document-Root) legst und mit den Rechten 0070 versiehst, ihnen die Gruppe gibst, der Dein PHP-Deamon angehört, dann können "normale User" nicht mehr darauf zugreifen, aber der PHP-Deamon.
Das setzt natürlich voraus, dass Dein Provider eine Gruppe für Dich eingerichtet hat, der DU und Dein wwwrun (PHP-Deamon) angehören. Die Rechte für Others sollten immer auf 0 stehen. Dann ist sichergestellt, dass nur DU und "Dein" wwwrun auf die Daten zugreifen können.
Wenn Dein Provider Dir diese minimale Möglichkeit nicht einräumt, dann behaupte ich einfach mal, dass er nix taugt. Solltest Du einen eigenen Server betreiben, dann gibts noch andere Möglichkeiten.
Liebe Grüße
Tom
Moin!
ich habe eine menge includes die den enduser nix angehen in denen die zugriffsdaten für die datenbank und so gespeichert sind. ich kann diese leider nicht ausserhalb der doc-root des webservers ablegen. wie schütze ich die dinger nun vor direkten zugriffen durch den benutzer? ich weiß nich ob das mit .htaccess bei dem server funktioniert ausserdem hab ich von .htaccess keine ahnung...
wie macht man das am besten?
Wenn alle deine Dateien auf .php enden, kann man sie aus dem Web heraus nicht mehr auflisten, weil sie dann ja geparst werden. Solange sie keine sichtbare Ausgabe produzieren, dürfte damit niemand etwas anfangen können.
Viel interessanter ist, ob du einen Schutz gegen Zugriffe von fremden Scripten auf deinem Server benötigst. Du kannst ja mal gucken, ob du per Skript noch auf Verzeichnisse oberhalb und dann neben deinem Account zugreifen kannst - wenn ja, ist das außerst schlecht, und ich würde den Provider wechseln.
- Sven Rautenberg
Viel interessanter ist, ob du einen Schutz gegen Zugriffe von fremden Scripten auf deinem Server benötigst. Du kannst ja mal gucken, ob du per Skript noch auf Verzeichnisse oberhalb und dann neben deinem Account zugreifen kannst - wenn ja, ist das außerst schlecht, und ich würde den Provider wechseln.
krasse sache ich hab irgendwo noch son verzeichnis-crawl-skript, erst mal hochladen und ausprobieren, das wär ja was....