Foros del Web » Programando para Internet » Javascript »

Evitar inyección de código javascript

Estas en el tema de Evitar inyección de código javascript en el foro de Javascript en Foros del Web. Buenos días a tod@s!!! Veréis, estoy desarrollando un juego usando HTML, javascript, PHP y MySQL. Como sabéis se pueden ejecutar funciones de javascript desde la ...
  #1 (permalink)  
Antiguo 17/11/2009, 06:45
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 0
Evitar inyección de código javascript

Buenos días a tod@s!!!

Veréis, estoy desarrollando un juego usando HTML, javascript, PHP y MySQL. Como sabéis se pueden ejecutar funciones de javascript desde la barra de direcciones o desde un debuger.

El problema es que un usuario un poco avispao o con ganas de molestar, podría ejecutar una función que yo he programado en javascript en cualquier momento.

Pongo un ejemplo, supongamos que tengo una función javascript que se llame sumarPuntos() y que tenga que ejecutarla cada X tiempo o al pulsar un botón. Es fácil saber que existe esa función. Si el usuario la descubre, podría "hacer trampas" en el juego.

¿Podría evitar de alguna forma que el usuario ejecutara esa función a su antojo?

Gracias, un saludo!!!
  #2 (permalink)  
Antiguo 17/11/2009, 06:50
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Evitar inyección de código javascript

La solución es usar javascript correctamente, es decir, como soporte para amenizar diferentes aspectos (hacerlos más amigables), pero no para nada que tenga que ver con validaciones o seguridad. Validaciones y seguridad, en el servidor, no con javascript.
Siempre cualquiera podrá ejecutar una de tus funciones javascript, ya sea con algún programa o desde la barra de direcciones usando el protocolo javascript:, no hay manera de evitarlo.
  #3 (permalink)  
Antiguo 17/11/2009, 06:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Evitar inyección de código javascript

Gracias Panino5001 por contestar,

te entiendo perfectamente lo que quieres decir. Uso AJAX para actualizar unos valores en la BBDD y si no lo hago empleando una función javascript que se ejecute con un setInterval cada X tiempo, ¿como podría hacerlo?
  #4 (permalink)  
Antiguo 17/11/2009, 07:09
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Evitar inyección de código javascript

En toda aplicación de suma de puntos, existe una condición para sumar esos puntos.
La clave está entonces en controlar que se cumpla esa condición. Es decir, el problema puede reducirse a "no importa que ejecuten la función sumarPuntos mientras se cumpla x condición". Y lo que no es posible obviar es el control de esa condición en el servidor, y desde allí sumar los puntos si corresponde (se cumple la condición) o descartarlos en caso contrario.
  #5 (permalink)  
Antiguo 17/11/2009, 07:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Evitar inyección de código javascript

Muchísimas gracias!!!

Voy a preguntar en el foro de PHP. Creo que pondré una condición temporal para evitar trampas. No se me había ocurrido, pensé que podría haber alguna forma más sencilla.

Doy el tema por cerrado.Saludos!!
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 11:56.