Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/02/2016, 02:46
Amiancht
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años
Puntos: 25
Respuesta: Proteger scripts en php de cronjobs

Cita:
Iniciado por juanmedina Ver Mensaje
Holap!! No había apartado de presentaciones así que me estreno con esta consulta :). Espero también poder ser de ayuda en los post que vayáis publicando.

El tema es que he creado en mi hosting unos archivos con códigos en php y cronjobs para que se ejecuten con una determinada frecuencia. El problema es que las urls de esos archivos son públicos y ya me ha pasado que alguien visitando la url ha hecho que se ejecutasen esos códigos cuando no tenían que ejecutarse. Mi consulta es ¿cómo puedo hacer para que esos códigos sólo puedan ejecutarse por el cronjob, o bien cómo podría hacer para "ocultarlos" y que no se ejecuten si alguien visita esa url?

Gracias de antemano y saludos.
Hay muchas formas, pero tal vez la más útil para ti seria usando un archivo .htaccess en la carpeta de dichos scripts php, deniegas el acceso a todos menos a las conexiones locales.
Código Apache:
Ver original
  1. order allow,deny
  2. allow from 127.0.0.1
  3. deny from all
El codigo lo saqué de aquí:
http://stackoverflow.com/questions/2...ocalhost-xampp

Eso sí, en el cronjob, las direcciones deben apuntar de forma local, y no de forma externa. Es decir, por ejemplo: http://127.0.0.1/cronscripts/cron1.php . Aunque depende de como esté configurado el archivo hosts del hosting.

Otra idea, si tienes acceso a consola, puedes ejecutar tus scripts php por linea de comandos, teniendo almacenados los scripts en una carpeta externa a la de apache, eso sí, la programación por consola es un tanto diferente a la ejecutada para la web. Pero también sería viable dependiendo de lo que quieras hacer. Aunque obviamente, necesitas acceso por consola, y los hosting no te suelen dar esos privilegios, otra cosa sería que tuvieras un servidor dedicado donde tienes total acceso.

Un saludo.