Avisos
Vaciar todo

duda con defined( '_JEXEC' ) or die (acceso re....  

 
Rodrigo
 Rodrigo
Estimable Member

que tal como le va a todos, un saludo, miren les planteo la siguiente cuestion, en mi sitio llamo a ejecutar un archivo PHP atraves de una pieza con la intruccion PHP siguiente
...
i

f($filtro=="todos") //el usuario ah seleccionado mostrar todos los resultados desde el breezingforms
{
                        header("Location: administrator/components/com_breezingforms/libraries/fpdf/todos.php");//ejecutar todos.php
                        exit;
}

if($filtro=="solofaltantes")//El usuario ah seleccionado mostrar solo los faltantes
{
                        header("Location: administrator/components/com_breezingforms/libraries/fpdf/faltantes.php");//ejecutar taltantes.php
                        exit;
}

...
eh colocado despues de la instruccion <?php de cada uno de los archivos a los cuales llamo con la instruccion header(todos.php y faltantes.php) segun la evaluacion con IF, la siguiente instuccion de evaluacion de que el archivo PHP en cuestion no vaya ser ejecutado desde un acceso directo sino en joomla
defined( '_JEXEC' ) or die( 'Restricted access' );

Mi pregunta en cuestion es, ¿qué instruccion debo agregar para que no me arroje el mensaje "Restricted access", dado que ese el archivo en cuestion está siendo llamado desde una aplicacion joomla?, les agradezco mucho cualquier tipo de comentarios o sugerencias a mi post, Gracias.

Citar
Respondido : 21/10/2010 1:46 am
Rodrigo
 Rodrigo
Estimable Member

bueno actualizando mi pregunta, eh estado un buen rato aqui y eh corregido de la siguiente manera
- doy un valor a una variable en mi pieza y lo envio atraves del URL de la siguiente forma

$valor=zas;
if($filtro=="todos") //Nombre de la seccion
{

                        header("Location: administrator/components/com_breezingforms/libraries/fpdf/todos.php?var=$valor");
                        exit;
               
}
y en el archivi PHP eh colocado un IF de ecaluacion:

pero esto esta URL es memorizable ya que en la barra de direcciones siempre aparece http://misitio/documentaciones/administrator/components/com_breezingforms/libraries/fpdf/todos.php?var=zas, y si se escribe esta direcsion directamente en la varra de direcciones me carga el archivo PHP.

¿alguna recomendacion?, gracias por todo.

ResponderCitar
Respondido : 21/10/2010 3:04 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Rodrigo
 Rodrigo
Estimable Member

creo que eh publicado mucho antes mis preguntas, jeje autorizo al moderador eliminar mis mensajes, ofrezco una disculpa por el trabajo. lo eh resuelto atraves de codificaciones de valores almacenados en una tabla de mysql, muchas gracias por todo.

ResponderCitar
Respondido : 21/10/2010 3:28 am
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Moderator

Hola chapulin,

Por una directiva de seguridad de Joomla! los archivos .php deben incluir la siguiente línea:

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

En palabras de David seria más o menos esta la explicación:

La ...línea comprueba si esta definida la variable “_JEXEC”, y si no esta definida se muestra un mensaje de error por pantalla mediante la función “die”. Esto es una medida de seguridad que incluye el marco de trabajo Joomla! y que es recomendable usar en todos nuestros archivos .php que tengamos en el sitio, y que evitara que la gente acceda a las paginas directamente sin hacer antes las comprobaciones de seguridad que lleva incluida Joomla!

Espero que te aclare, aunque parece ser que ya lo habías resuelto.

Saludos

ResponderCitar
Respondido : 21/10/2010 4:05 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Rodrigo
 Rodrigo
Estimable Member

Si, gracias de todas maneras Grumax, la cuestion es que los archivos PHP de los cuales hablo son completamente independientes a mi joomla, y queria dar un modo de seguridad de acceso, el detalle era tambien de que podia ser accedido a dicho archivo atraves de un acceso directo o copiando simplemente la direccion en la barra de direcciones de mi navegador por defecto, y poniendo la intruccion
defined( '_JEXEC' ) or die( 'Restricted access' ); aun llamando a dichos archivos a traves de la instuccion

header("Location: administrator/components/com_breezingforms/libraries/fpdf/todos.php?var=$valor");
desde una pieza de mi joomla me aparecia el mensaje de error del Or die y ese era el punto entonces lo que hice fue pasarle valores desde el header("Location: codificado, de modo que si no se recibia ningun valor se supondrá entonces que se está intentando acceder desde un acceso directo y es entonces cuando hay que restringuir el acceso, espero haberme explicado, de todas maneras ahi dejo mi forma de solusion a mi caso, y si hay alguna otra sugerencia con gusto larecibo, -Gracias

ResponderCitar
Respondido : 23/10/2010 4:14 am
Marco Ceron
 Marco Ceron
Usuario activo

Buenas noches

Soy nuevo en la area de desarrollo bajo el entorno joomla, y quiero hacer una aplicacion tomando el modelo mvc, pero quiero saber a donde se define l_JEXEC' en joomla para tomar de ejemplo y aplicarlo en mi aplicación.

Quedo a la espera de su respuesta.

ResponderCitar
Respondido : 17/03/2011 5:13 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

David Noguera
 David Noguera
Miembro Moderator

Hola a todos,

_JEXEC es una variable "tonta" que se define nada más inicarse el Framework de Joomla, con el objetivo de comprobar si se está ejecutando el framework o no..
En el ejemplo que indica Chapulin, en lugar de redirecciones con la función header de PHP, si quisiera que no le de el error de "Restricted access", lo que debería de hacer sería un require_once del fichero todos.php o faltantes.php según la condición, de esta forma se incluye la definición de la variable _JEEXEC. No tiene mucho sentido hacer la comprobación de la variable _JEXEC si tu mismo la defines antes de hacer la comprobación.. ya que alguien podría acceder al fichero directamente de la misma forma sin haber pasado antes por el Framework de Joomla.

Un saludo

ResponderCitar
Respondido : 17/03/2011 9:51 am
Rodrigo
 Rodrigo
Estimable Member

Hola David:

Pues como lo comenté en este hilo, quedaba a la espera de una mejor solucion a este detale y te agradesco infinitamente la idea, lo probaré y lo hecharé andar de dicho modo, muchas gracias de nueva cuenta y recibe un coridal saludo desde Mexico, un saludo a todos.

Rodrigo

ResponderCitar
Respondido : 17/03/2011 8:00 pm

David Noguera
 David Noguera
Miembro Moderator

De nada, para eso está el foro 🙂

Saludos!

ResponderCitar
Respondido : 17/03/2011 10:36 pm