Antworten auf deine Fragen:
Neues Thema erstellen

Php Include_check

puur

Nicht mehr ganz neu hier

Hi, ich habe gerade in einem PHP Script etwas von

Code:
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');

gelesen. Sieht für mich echt sicherheits relevant aus und wäre bestimmt nicht schlecht wenn man sowas in seine Scripte einbauen könnte. Allerdings bin ich mir nicht ganz sicher wie das funktioniert.

Habe mal etwas gegooglet und habe mir das folgender maßen zusammen gereimt.

Also

1. die Konstante INCLUDE_CHECK definieren und auf True setzen und danach direkt die datei einbinden.

Code:
<?php
[URL="http://www.php.net/define"]define[/URL]('INCLUDE_CHECK',1);require "connect.php";
?>


2. in der Datei connect.php checken ob INCLUDE_CHECK definiert ist, andernfalls die();

Code:
<?php
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
?>


So jetzt frage ich mich aber wenn ich in der index.php die Konstante INCLUDE_CHECK definiere dann ist die Konstante doch gesetzt sobald ich auf der Seite war. Bringt das denn was oder funktioniert das irgendwie anders ? Das würde mich mal sehr interessieren.

Gruß :)
 

sokie

Mod | Web

AW: Php Include_check

So jetzt frage ich mich aber wenn ich in der index.php die Konstante INCLUDE_CHECK definiere dann ist die Konstante doch gesetzt sobald ich auf der Seite war. Bringt das denn was oder funktioniert das irgendwie anders ? Das würde mich mal sehr interessieren.

Gruß :)

nein, die ist nur definiert, wenn du auf der Seite BIST.

Oft sieht man solche Dinge in Zusammenhängen wie zB CMS Systemen.Hier werden ja in eine Seite (meisst die index.php) verschiedene Dinge (Module etc.) nach und nach per include eingebunden.

diese einzelnen "Teile" haben ihrerseits natürlich auch wiederum verschiedene php Bestandteile, die per Aufruf im Browser angesehen werden könnten. Das würde allerdings in den meissten Fällen zu einer Fehlermeldung (oder sogar einer Reihe von Fehlermeldungen) führen, weil diese Programmbestandteile beim Direktaufruf sehr wahrscheinlich viele informationen nicht haben,die sie zum korrekten Arbeiten eigentlich bräuchten.
Darum läd man ziemlich am Anfang eine Konfigurationsdatei, in der unter anderem dies Konstante definiert wird, und kann für jede inkludete datei sagen : wenn diese Konstante nicht besteht brich gleich ab (die("Meldung")) weil essich um einen driektaufruf handelt.
klar, dass man damit auf eine Art auch für Sicherheit sorgen kann, aber es ensteht auch weniger Verkehr auf dem server, als wenn die Datei erst abgearbeitet würde. Dafür sorgt das "die()" ziemlich am Anfang des Scripts.

so wird zB bei Joomla! in der index.php diese Konstante definiert
Code:
define( '_JEXEC', 1 );
und so der direktaufruf der includeten Dateie gleich in den ersten Zeilen unterbunden:
Code:
defined( '_JEXEC' ) or die( 'Restricted access' );
das schöne ist, dass man so jede Datei mit dieser Abfrage beginnen kann, und sicher sein kann:wenn der Beucher über die index.php kommt, ist _JEXEC definiert.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.068
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben