Foros del Web » Programando para Internet » Javascript »

Seguridad Variables Globales

Estas en el tema de Seguridad Variables Globales en el foro de Javascript en Foros del Web. Buenas forer@s Tengo la necesidad de crear variables globales en el lado del cliente. Si tengo acceso a la consola del navegador, puede cambiar "en ...
  #1 (permalink)  
Antiguo 20/03/2014, 15:42
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Seguridad Variables Globales

Buenas forer@s

Tengo la necesidad de crear variables globales en el lado del cliente.

Si tengo acceso a la consola del navegador, puede cambiar "en tiempo de ejecución" el valor de esas variables como a mi se me antoje, logrando así comportamientos indeseados.

Quisiera saber si existe alguna forma segura de manejar este tipo de variables.

O si tienen otro consejo para realizar algo similar.

Muchas gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #2 (permalink)  
Antiguo 20/03/2014, 16:41
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 9 meses
Puntos: 32
Respuesta: Seguridad Variables Globales

la mejor forma de dar seguridad usando variables globales es simplemente no usandolas
siempre hay otra manera de solucionar el problema men... yo que tu mejor simplemente buscaria eso... otra manera que no sean variables globales
  #3 (permalink)  
Antiguo 20/03/2014, 16:43
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Seguridad Variables Globales

Como que solución propone???

En mi caso necesito recordar varios valores todo el tiempo mediante un proceso largo en el cliente (formularios largos), para luego enviar toda la información de una sola petición al servidor
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 20/03/2014, 17:05
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 9 meses
Puntos: 32
Respuesta: Seguridad Variables Globales

se que haria mas trabajo y mas pesado pero por mi parte preferiria que cuando necesite guardar esos valores haria un ajax y lo guardaria en una $_SESSION de php ....
  #5 (permalink)  
Antiguo 20/03/2014, 23:22
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Seguridad Variables Globales

Eso es justamente lo que quiero evitar... estar realizando peticiones al servidor....

Gracias por la idea... pero sigo con la inquietud

Ayudaaa!
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #6 (permalink)  
Antiguo 20/03/2014, 23:40
Avatar de Ito79  
Fecha de Ingreso: diciembre-2013
Mensajes: 71
Antigüedad: 10 años, 3 meses
Puntos: 18
Respuesta: Seguridad Variables Globales

Hola,
Puedes usar el localStorage para guardar esos valores, viene bien para estas cosas (aunque yo estoy más acostumbrado al PHP y a guardarlo en la sesión)

Te paso dos links que te pueden ser de ayuda:
[URL="http://diveintohtml5.info/storage.html"]http://diveintohtml5.info/storage.html[/URL]
[URL="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage"]https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage[/URL]

Un saludo

// Ito
  #7 (permalink)  
Antiguo 21/03/2014, 09:27
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Seguridad Variables Globales

Hola Ito79

Muchas gracias por la respuesta... estoy leyendo sobre el tema... lo que veo es que localStorage es un objeto global que tiene unos "métodos" predefinidos.

Pero seria lo mismo que tener una variable global como objeto... quedando así expuesta a ser modificada... o no????

lo que veo es que no debe importarme que modifiquen mis variables... lo importante es la validación el servidor... tal vez podría firmar los datos y luego en el servidor comprobar las firmas...

Sin embargo sigo atento a sus consejos .

Muchas gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #8 (permalink)  
Antiguo 21/03/2014, 09:36
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Seguridad Variables Globales

Puedes definir una propiedad en tu objeto no writable y no configurable, pero claro, el programa tampoco la va a poder modificar o eliminar.
  #9 (permalink)  
Antiguo 21/03/2014, 09:44
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Seguridad Variables Globales

Hola PHPeros

No lo conocía, pero prácticamente estas hablando de una constante... y esto no me serviría en este momento....

Por lo que veo el tema de "seguridad" en el cliente no es posible...

En cambio es realmente efectivo en el lado del servidor.. con buenas practicas claro está
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #10 (permalink)  
Antiguo 21/03/2014, 10:33
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: Seguridad Variables Globales

Código Javascript:
Ver original
  1. var valor1=55;
  2. (function(){
  3.     var valor2=45;
  4. })();
Usa closures.

valor1 es accesible por consola.
valor2 no es accesible por consola. Mete todo el código que la use dentro de la función anónima autoejecutable que actúa como muro.
  #11 (permalink)  
Antiguo 21/03/2014, 12:58
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años
Puntos: 1329
Respuesta: Seguridad Variables Globales

Todo lo que pase del lado del cliente es modificable, todo.

Incluso la opción de marlanga, con un debugger se puede acceder.

Es inutl tratar de proteger esos datos.


Saludos
__________________
Grupo Telegram Docker en Español
  #12 (permalink)  
Antiguo 21/03/2014, 13:07
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: Seguridad Variables Globales

Evidentemente todo código javascript se puede modificar; pero él dijo explícitamente el impedir la modificación a través de la consola; y con closures, evitas que la consola te modifique lo que hay dentro.

Y usar closures no es tan inútil: evitas en gran medida que inyecciones de código XSS o la ejecución de otros scripts linkeados por el programador por error o desconocimiento, te modifiquen el comportamiento normal de tu otro código.

Última edición por marlanga; 21/03/2014 a las 13:13
  #13 (permalink)  
Antiguo 21/03/2014, 13:28
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Seguridad Variables Globales

Hola muchachos,

marlanga e tema de los closures es nuevo para mi y se ve interesante... ya estoy leyendo sobre el tema...

ahora Carlangueitor no se a que te refieres con debugger.. es software especial para inspeccionar más el detalle los script?

Lo que hago es armar objetos JS con todos los datos... cuando realizo la petición al servidor le mando exclusivamente lo que voy a guardar... ahorrando con esto ida y venida entre browser y server...

Lo que intento evitar es hacer muchas peticiones al servidor... simplemente para recordar un valor... que tal vez al final de mi proceso sea descartado...

De igual manera muchas gracias por todas las respuestas... son de mucha utilidad para mi.
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #14 (permalink)  
Antiguo 21/03/2014, 16:18
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años
Puntos: 1329
Respuesta: Seguridad Variables Globales

@marlanga, no me refería a que fuera inutil la técnica, si no inútil proteger datos de un formulario que uno mismo lleno.

@malakian checa la página de herramientas de desarrollo de chrome: https://developers.google.com/chrome-developer-tools/

Cuando he tenido que hacer formularios muy grandes mando todo el formulario y voy mostrando/ocultando conforme sea necesario, se me hace mucho más accesible y con menos cochinero.


Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: globales, seguridad, valor, variable, variables
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 10:03.