¿Por qué la mayoría de los archivos PHP de Joomla! se inician con define(' 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 mayoría de los archivos PHP en Joomla! comienzan con la siguiente declaración:

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

Esta afirmación se comprueba si el archivo se llama desde dentro de una sesión Joomla! y protege tu sitio por lo que es más difícil para un cracker/hackers dañar tu sitio.

Ayuda de dos formas principales:

1) Evita errores de funcionamiento de un archivo PHP que se espera se ejecute dentro de la rutina de carga de Jooma! y evita las vulnerabilidades de revelación de la ruta que surgen cuando se producen errores fatales de PHP.

2) También evita la inyección accidental de variables a través de un ataque a register globals impidiendo que el archivo PHP suponga que esta dentro de la aplicación cuando realmente no lo es.

Configurar los informes de errores tendría un efecto similar, sin embargo hay configuraciones en las que el cambio de configuración no están permitidos en PHP.INI. La verificación de JEXEC funciona independientemente de si la configuración se puede cambiar y no tiene otros efectos secundarios (por ejemplo, si estás depurando tener que reducir cada archivo al generar un informe de error sería molesto, porque tendrías que establecer un indicador de depuración para detenerlo o después de cada archivo se incluye restablecer el informe de error y eso ¡no es divertido!).

Sin embargo, esta línea NO debe ser incluida en el archivo principal index.php, ya que este es el programa que inicia la sesión en Joomla!.