28/04/2013, 20:11
|
| $this->role('moderador'); | | Fecha de Ingreso: mayo-2006 Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 8 meses Puntos: 2135 | |
Respuesta: bloqueo de archivo Pues viendo el tema, creo no haz entendido bien lo que te dice Pateketrueke, y como funciona PHP, el caso es simple.
include, lo que hace es incluir un archivo local y ejecutarlo / procesarlo, así es como funciona, abre el archivo, lo parsea por el código PHP válido, (es decir lo que este entre <?php y ?> (el ?> es opcional)) y lo ejecuta. Punto eso es todo lo que hace include. Su variante require funciona igual pero tiene otras "ventajas".
Ahora versiones más nuevas de PHP introdujeron la directiva allow_url_include, ¿que hace esta directiva? Algo sencillo y es, te permite realizar una petición HTTP hacía otro servidor para traer código, evaluarlo y ejectuarlo, pero como bien dice Pateketrueke, es una vulnerabilidad ya que nunca puedes confiar que el script que vas a traer para ejecutar, sea código PHP "bueno" o "maligno".
Pero aquí esta la clave, al hacer la petición HTTP hacía el otro servidor, es exactamente lo mismo que si con el navegador pidieras esa URL, (con algunas diferencias pero en escencia es lo mismo). Por lo que NUNCA van a co-existir esos ámbitos, es como la gente que ingenuamente quiere ejecutar javascript y PHP en paralelo, los ámbitos no son diferentes.
Si tú defines una constante, o una variable en tu local, y haces el include hacía el script remoto, estas variables no existen en el script remoto nunca, lo único que existe son las variables GET que puedas mandar (si lo haces con include) y hasta ahí.
Entonces si entiendes y comprendes esto, puedes ver que lo que estas haciendo es justamente, trucos chinos que no tienen nada que ver, ya que es imposible que alguién te baje tu script y lo altere, lo único que te tienes que proteger precisamente es de los datos de entrada (GET, POST, PUT, COOKIES), y hasta ahí, las variables nunca van a ser modificadas por un tercero a menos que tengan acceso local a tu servidor.
Saludos. |