Waarom beginnen de meeste van de Joomla! PHP bestanden met "defined(' JEXEC')..."?

From Joomla! Documentation

This page is a translated version of the page Why do most of the Joomla! PHP files start with defined(' JEXEC')? and the translation is 100% complete.

Other languages:
العربية • ‎Deutsch • ‎English • ‎español • ‎français • ‎Nederlands • ‎中文(台灣)‎
Copyedit.png
This Article Needs Your Help

This article is tagged because it NEEDS REVIEW. You can help the Joomla! Documentation Wiki by contributing to it.
More pages that need help similar to this one are here. NOTE-If you feel the need is satistified, please remove this notice.


Bijna alle PHP bestanden binnen Joomla! beginnen met de volgende verklaring:

defined('_JEXEC') or die('Restricted access');

Deze verklaring verifieert of het bestand wordt aangeroepen binnen een Joomla! sessie en het beschermt uw site door het een cracker/hacker moeilijker te maken uw site te schaden.

Het helpt op twee manieren:

1. Het voorkomt fouten bij het uitvoeren van een PHP-bestand waarvan verwacht wordt dat het uitgevoerd wordt binnen Jooma bootstrap en het voorkomt dat het pad achterhaald kan worden bij fatale PHP fouten.

2. Het voorkomt het per ongeluk injecteren van variabelen door een aanval op register globals die het PHP-bestand doet denken dat het binnen de applicatie is terwijl het niet zo is.

Het instellen van een lager fout rapportage zou een soortgelijk effect geven, maar er zijn configuraties waarin het wijzigen van de PHP INI-instellingen niet zijn toegestaan. De JEXEC-controle werkt ongeacht of de configuratie kan gewijzigd worden of niet, en ze heeft geen andere bijwerkingen (bijv. een lage foutrapportage moet je op een bepaald punt deze verhogen om de foutmelding te zien , en moet je deze nadien terug verlagen).

Let op, deze regel mag NIET worden opgenomen in uw hoofd index.php bestand, want dit is het programma dat de Joomla! sessie begint.