Direktaufruf von Datei verhindern

TTlong

Angesehenes Mitglied
Hallo,

ich möchte gern die eine oder andere (includierte) Datei vor einem Direktaufruf schützen.

Beispiel:

Die Datei style.php wird in index.php includiert, soll aber nicht über domain.tld/style.php direkt aufgrufen werden können.
Jemand ne Idee?


Danke und Gruß TTlong
 
Includes sollten am besten ausserhalb der htdocs liegen. Vom Dateisystem her ungefähr so:

deinedomain.de/htdocs/index.php
deinedomain.de/includes/style.php
 
Das ist bei Shared-Hosting Accounts etwas (so gut wie) Unmögliches
wink.gif
 
billiger Workarround:

In der include auf Zeile 1:
if($geheim!="asdjkfaskjf"){
exit;
}

Im File von welchem das include geladen werden darf:
$geheim="asdjkfaskjf";
include"include.php";

Die schönste Lösung ist natürlich, wenn die Files nicht erreichbar sind via Appache...
 
QUOTE Das ist bei Shared-Hosting Accounts etwas (so gut wie) Unmögliches

ist bei allen von meinen shared-hosting accounts möglich!
(anders formuliert: das domainverzeichnis ist nirgendwo die oberste verzeichnisebene)

ansonsten halt ne prüfvariable wie von sd12 beschrieben.
 
mit htaccess kann man den Aufruf der Datei auch auf die eigene IP (die des Servers) begrenzen
 
oder auch

CODE
$PHP_SELF = $_SERVER["PHP_SELF"];
if (eregi("datei.php",$PHP_SELF)) {
Header("Location: deafult-seite.php");
die();
}
 
Generell sehe ich oft die Verwendung von Variablen bzw. Konstanten, wobei Konstanten zu bevorzugen sind, da Variablen bei register_globals = 1 auch "eingeschleußt" werden können.

index.php:
CODE <?php
define('INCLUDE', true);
require_once('include.inc.php');
?>


include.inc.php:

CODE
<?php
if(!defined('INCLUDE')) {
die('Please use the main page');
}
?>
 
QUOTE (PH @ Mo 17.09.2007, 17:38) mit htaccess kann man den Aufruf der Datei auch auf die eigene IP (die des Servers) begrenzen

Man kann auch gleich ein "Deny from all" reinschreiben, da der Server nicht übers Netz sondern übers Filesystem auf die Datei zugreift
 
QUOTE (David T. @ Mo 17.09.2007, 18:07) Generell sehe ich oft die Verwendung von Variablen bzw. Konstanten, wobei Konstanten zu bevorzugen sind, da Variablen bei register_globals = 1 auch "eingeschleußt" werden können.

Für mich ist es selbstverständlich, dass register global auf off ist...

Hast aber Recht gerade bei den Massenwebhostern ist es häufig on.
 
Zurück
Oben