Prüfen ob config-Datei inkludiert oder nicht?

Jesus0190

Mitglied
Hi Leute,
ich brauch mal wieder Hilfe. ;-)

Folgendes: Ich bin grad dabei meine Seite ein bissl zu schützen, bzw. vor Falscheingaben des URl zu schützen.

Da bin ich doch auf meine config-Datei gekommen, wo Datenbankzeugs usw. drinsteht.
Kann ich irgendwie überprüfen, ob die config-Datei includiert wurde oder ob sie direkt über die Adressleiste aufgerufen wurde?

Danke für eure Hilfe
MfG
Bastian
 
Du kannst über $_SERVER['REQUEST_URI'] die aufgerufene URL ermitteln.....ist das die config-Datei, wurde sie nicht includet.

Allemal solltest die solche Dateien aber ausserhalb des Web-Verzeichnisses ablegen, damit ein solcher Aufruf garnicht erst möglich ist.
 
Sag das mal meinem Hoster ;)
Ich hab nur zugängliche Ordner...ausser ich würde mir einen mit htaccess machen, aber das find ich blöde *g*

Danke für die schnelle Hilfe, hätte gedacht das das diese Nacht nix mehr wird...
 
Was...du hast keinen Zugriffe auf Verzeichnisse oberhalb deines Web-Verzeichnisses?...das ist ja wirklich nicht nett.


Aber .htaccess wäre auch eine Variante(wahrscheinlich die bessere)....du könntest HTTP-Anfragen nach der Config-Datei damit gleich nach Nimmerland schicken....(sofern dein Hoster das zulässt:-))
 
Jesus0190 hat gesagt.:
Da bin ich doch auf meine config-Datei gekommen, wo Datenbankzeugs usw. drinsteht.
Kann ich irgendwie überprüfen, ob die config-Datei includiert wurde oder ob sie direkt über die Adressleiste aufgerufen wurde?
Ganz einfach:

index.php
PHP:
// define document root
define('WEB_ROOT', $_SERVER['DOCUMENT_ROOT']);

include_once WEB_ROOT.'/global.conf.php';

// ...
global.conf.php
PHP:
if(!defined('WEB_ROOT')) {
   // whoops, direct call not allowed
   die('security alert');
}

define('DB_HOST',       'localhost');
define('DB_USERNAME',   'root');
define('DB_PASS',       'dev');
// ...

Wir jetzt direkt die global.conf.php aufgerufen, bricht das Script mit einer Fehlermeldung ab.
 
Ich würde sagen du machst dir mal Gedanken über den Sietenablauf . OOB wäre auch nicht schlecht.

Hier mal ein Beispiel von mir:

index.php
-> config main // Alle Module laden
-> MySql Verbindung aufbauen oder EXIT header zur Fehlerdatei extern.
-> Cookies auslesen Sessionen übergeben oder EXIT header zur Fehlerdatei extern.
-> Laden der Standart einstellungen aus der DB oder EXIT header zur Fehlerdatei extern.
-> Auslesen der URL des User welche Variablen er übergibt oder EXIT header zur Fehlerdatei extern.
-> Eintrag in Mysql IP welche Seite er anfordert etc oder EXIT header zur Fehlerdatei extern.
-> Prüfen ob user sich einloggen darf oder EXIT header zur Fehlerdatei extern.
Wenn ja -> Falls login Modul login laden
-> Falls logout Modul logout laden


usw.......

Es spielt eigentlich keine Rolle ob eine Datei includet wird oder nicht! Du solltest nur eine art Weiche legen. Ist eine Bedienung nicht erfüllt, so sollte auch ein Script nicht abgearbeitet werden. Mit IF() kannst du das gut regeln.
 
Zurück