Pourquoi la plupart des fichiers PHP de Joomla! commence par ant par 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.


La plupart des fichiers PHP de Joomla! commencent avec la déclaration suivante :

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

Cette déclaration permet de vérifier si le fichier est appelé à partir d'une session Joomla. Cela protège votre site en compliquant la possibilité pour un pirate/hacker d'endommager votre site.

La déclaration agit principalement à deux niveaux :

  • Cela permet d'éviter des erreurs d'exécution d'un fichier PHP qui doit être exécuté à dans Jooma! Bootstrap et il empêche la divulgation des vulnérabilités découlant de l'affichage d'erreurs fatales PHP qui seraient générées.
  • Cela empêche l'injection accidentelle de variables par le biais d'une attaque globale faisant croire au fichier PHP qu'il est traité à l'intérieur de l'application, alors qu'il ne le serait pas.

Régler les rapports d'erreurs sur un niveau moins élevé pourrait avoir des effets similaires mais il existe des des cas où les changements de la configuration des paramètres PHP .INI ne sont pas autorisés. La vérification JEXEC fonctionne indépendamment si la modification de la configuration est possible ou non (par exemple si vous êtes en mode débogage diminuer le niveau de déclaration des erreurs serait gênant pour pouvoir définir l'indicateur de débogage).

Notez cependant que cette ligne ne devrait PAS figurer dans votre fichier index.php principal puisque c'est le programme qui démarre la session Joomla.