Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cakephp ¿Seguridad al usar actions a través de URL?

Estas en el tema de ¿Seguridad al usar actions a través de URL? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas a todos, soy nuevo en cakephp, estoy haciendo una aplicación web en cakephp 2.3.5, mi aplicación tiene varios controladores con sus modelos correspondientes, en ...
  #1 (permalink)  
Antiguo 07/06/2013, 10:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta ¿Seguridad al usar actions a través de URL?

Buenas a todos, soy nuevo en cakephp, estoy haciendo una aplicación web en cakephp 2.3.5, mi aplicación tiene varios controladores con sus modelos correspondientes, en cada controlador tengo actions con sus respectivas vistas y otros actions que son simple funciones sin vistas que son utilizadas por los otros actions, tengo dos dudas :

- Uno, de los actions por ejemplo es la de eliminar una entidad, ¿hay alguna manera que el usuario no ejecute las acciones a través del explorador escribiendo la URL (por ejemplo http://www....com/estudiantes/delete/6)?, osea que solo se puedan lanzar los actions navegando por la web.

- Dos, la pagina tengo varios user que pertenece a un roles diferentes, lógicamente habrá action en los que un perfil en concreto no pueda usar y otros que sí, para ello utilizo la funcion "isAuthorized" en cada controlador, controlando cada acción y viendo el usuario y el rol que tiene usando la sesión, ¿sería correcto?

Un saludo y gracias.
  #2 (permalink)  
Antiguo 07/06/2013, 10:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ¿Seguridad al usar actions a través de URL?

Nunca, nunca nunca uses el método GET para lanzar acciones que cambian el modelo, no es lo más adecuado, para eso existe POST, o PUT. GET es para regresar datos, cuando vayas a borrar, o a actualizar hazlo por POST es lo más seguro.

Segundo fuera de eso necesitas siempre validar que la acción que va a realizar el usuario, sea la adecuada, nunca te fies ni asumas, siempre checa roles, permisos etc en cada request, si te fias te pueden meter un gol.

Saludos.
  #3 (permalink)  
Antiguo 07/06/2013, 20:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: ¿Seguridad al usar actions a través de URL?

¿y como haces eso en cake? Yo no veo ninguna opción en el link del html helper para cambiar el envio de parámetros por la url. Si lo hay para los formularios claro pero cuando ves un registro y le das al link de borrar eso se pasa por la url.

Aún no lo he hecho porque estoy iniciándome pero yo creo que la solución a eso debe ser que en la url no vaya solo la acción sino el identificador de sesión. De esa forma si copian una url en otra sesión no funcionará porque el identificador no será el mismo. Aún así existe el riesgo de que un usuario malintencionado en su sesión haga cosas indebidas, pero ese ya es otro problema. Para eso la solución en la que pienso es que haya un sistema de login que te obligue a identificarte y que haya un sistema de log que grabe lo que has hecho.

También he visto que hay opciones de acl y seguridad que aún no se como funcionan pero he visto que se pueden utilizar para resolver problemas de ataques por desbordamiento, etc osea que es algo que tengo por mirar.

De momento bastante tengo con insertar, editar, borrar registros como para andar en eso pero es un camino que tengo por andar.
  #4 (permalink)  
Antiguo 08/06/2013, 03:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ¿Seguridad al usar actions a través de URL?

Cita:
Iniciado por Gedeon Ver Mensaje
¿y como haces eso en cake? Yo no veo ninguna opción en el link del html helper para cambiar el envio de parámetros por la url. Si lo hay para los formularios claro pero cuando ves un registro y le das al link de borrar eso se pasa por la url.

Aún no lo he hecho porque estoy iniciándome pero yo creo que la solución a eso debe ser que en la url no vaya solo la acción sino el identificador de sesión. De esa forma si copian una url en otra sesión no funcionará porque el identificador no será el mismo. Aún así existe el riesgo de que un usuario malintencionado en su sesión haga cosas indebidas, pero ese ya es otro problema. Para eso la solución en la que pienso es que haya un sistema de login que te obligue a identificarte y que haya un sistema de log que grabe lo que has hecho.

También he visto que hay opciones de acl y seguridad que aún no se como funcionan pero he visto que se pueden utilizar para resolver problemas de ataques por desbordamiento, etc osea que es algo que tengo por mirar.

De momento bastante tengo con insertar, editar, borrar registros como para andar en eso pero es un camino que tengo por andar.
Supongo que se referirá a Form->postLink lo he utilizado para eliminar por ejemplo y ya al menos no se ven los parametros que se pasan...
  #5 (permalink)  
Antiguo 08/06/2013, 04:26
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: ¿Seguridad al usar actions a través de URL?

Pero (y perdona que insista) es que cuando tu estas en un formulario de añadir o editar por ejemplo y le das al submit ciertamente que allí tienes una opción para que vaya por post, pero no creo que eso solucione el problema porque al menos como tengo yo entendido al darle al submit devuelves la información al controlador y es este quien lleva $this->data al modelo osea que ahí no veo yo ninguna url. Es un proceso interno de cake.

¿o estoy cometiendo algún error de bulto de principiante?
  #6 (permalink)  
Antiguo 08/06/2013, 05:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ¿Seguridad al usar actions a través de URL?

Cita:
Iniciado por Gedeon Ver Mensaje
Pero (y perdona que insista) es que cuando tu estas en un formulario de añadir o editar por ejemplo y le das al submit ciertamente que allí tienes una opción para que vaya por post, pero no creo que eso solucione el problema porque al menos como tengo yo entendido al darle al submit devuelves la información al controlador y es este quien lleva $this->data al modelo osea que ahí no veo yo ninguna url. Es un proceso interno de cake.

¿o estoy cometiendo algún error de bulto de principiante?
Es cierto lo que tu dices, pero yo no me refiero a un formulario para añadir o editar un registro, si no a una pagina en la que muestra ya todos los registros de ese modelo y al lado de cada uno un enlace para eliminar un registro en concreto, en ese caso si pones un html link se pasa por get con el riesgo que ello conlleva y si lo pones un form postLink pasas los parámetros por post...
  #7 (permalink)  
Antiguo 08/06/2013, 20:05
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: ¿Seguridad al usar actions a través de URL?

ah ya, los enlaces de la acción index. Pues yo lo tengo así y que la solución era que además de pasar en el enlace el id del registro a borrar (o modificar) que pasara el id de la sesión. Aún no trabajo con sesiones pero pensaba hacerlo así porque entonces no solo hay que conocer el id del registro a borrar sino también el identificador de sesión válido y si no, no hace porque en el controlador se compara el argumento con el id de sesion y si son distintos ya no hace nada.

Mi solución creo que es buena, pero esto del postlink también suena interesante, gracias.

Etiquetas: cakephp, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:04.