Foros del Web » Programando para Internet » Javascript »

Impedir que los visitantes usen la consola js

Estas en el tema de Impedir que los visitantes usen la consola js en el foro de Javascript en Foros del Web. Hola gente, tengo una duda, como es posible hacer que no funcione la consola js para evitar que usuarios ingresen código js y lo ejecuten? ...
  #1 (permalink)  
Antiguo 14/02/2014, 18:19
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Impedir que los visitantes usen la consola js

Hola gente, tengo una duda, como es posible hacer que no funcione la consola js para evitar que usuarios ingresen código js y lo ejecuten?

No es que lo vaya a implementar (o quizas, si) pero me causa mucha curiosidad.

Por si alguien piensa que no se puede, antes que lo responda, que intente lanzar un simple alert en facebook desde la consola.

me gustaria aprender como se hace para poder permitir que se llamen a ciertas funciones desde alli que ya esten definidos (osea, escritas por mi) pero que no se pueda ejecutar ningun otro codigo
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 15/02/2014, 04:31
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: Impedir que los visitantes usen la consola js

Yo no le veo ningún inconveniente que ejecuten código a tiempo real

De todas formas lee esto.

  #3 (permalink)  
Antiguo 15/02/2014, 12:48
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Impedir que los visitantes usen la consola js

es para prevenir ataques del tipo self-xss, coincido con vos en que en una web comun no tiene mucho sentido, pero siempre es bueno tener algun az en la manga, nunca se sabe cuando lo vas a necesitar...

ahora bien me surge una duda, este es el codigo:

Código Javascript:
Ver original
  1. <script type="'text/javascript'">
  2. (function(){
  3.  
  4.     var _z = console;
  5.     Object.defineProperty( window, "console", {
  6.     get : function(){
  7.         if( _z._commandLineAPI ){
  8.         throw "Sorry, Can't exceute scripts!";
  9.             }
  10.         return _z;
  11.     },
  12.     set : function(val){
  13.         _z = val;
  14.     }
  15.     });
  16.  
  17. })();
  18. </script>

bloquea todas las ejecuciones js, pero si quiero permitir que llamen a una determinada funcion o que usen un prototipo en particular y todo lo demas se bloquee, es posible?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 15/02/2014, 14:09
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: Impedir que los visitantes usen la consola js

No puedes tener control sobre las entradas de código que ejecuta el usuario, ahí simplemente modificas el objeto para que lanze error.

Creo que así es suficiente.
  #5 (permalink)  
Antiguo 17/02/2014, 14:44
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 7 meses
Puntos: 343
Respuesta: Impedir que los visitantes usen la consola js

Es imposible. Cualquier cosa que quieras hacer es facilmente evitable con un conveniente breakpoint.
__________________
blog | @aijoona
  #6 (permalink)  
Antiguo 18/02/2014, 11:47
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: Impedir que los visitantes usen la consola js

Cita:
Por si alguien piensa que no se puede, antes que lo responda, que intente lanzar un simple alert en facebook desde la consola.
Que se supone debe pasar al lanzar un alert en facebook? lo acabo de hacer y salta el alert o cualquier otro código que me disponga a ejecutar.
  #7 (permalink)  
Antiguo 18/02/2014, 14:41
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: Impedir que los visitantes usen la consola js

Me acabo de percatar, Facebook a podido bloquear la consola. Para que consigas eso en tu web no creo que halla forma ya que lo más probable es que halla sido un acuerdo entre Facebook y los navegadores para reducir el riesgo de sus cuentas, o talvez en un futuro hhla alguna forma implementado en el motor Javascript.



Depende a lo que estés haciendo puedes encontrar algún truco para evitar ejecutar código desde la consola. Pon el código.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #8 (permalink)  
Antiguo 18/02/2014, 20:02
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Impedir que los visitantes usen la consola js

@Aijoona depende de que herramientas tengas en tus manos, por ejemplo, habia leido que se podia sobreescribir la funcion eval que era la que usaba la consola (es mentira, o al menos ya no funciona) pero si se recibiera en un parametro el texto a ejecutar, habria que parcearlo mal para permitir al visitante ejecutar codigo indebido.

@ArturoGallegos @America|UNK te respondió. a mi me pasa lo mismo.

@America|UNK el codigo que tengo es el que sugirio @PHPeros y esta en un mensaje mas arriba. Lo que quiero hacer es que los tipos solo puedan ejecutar una funcion "miFuncion()" cualquier otra cosa que hagan que la consola tire error.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #9 (permalink)  
Antiguo 20/02/2014, 12:27
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Impedir que los visitantes usen la consola js

Lo único que hace bloquear la consola es protegerse de si mismos los usuarios, realmente no te da ninguna seguridad a ti. Yo lo omitiría.


Saludos
__________________
Grupo Telegram Docker en Español
  #10 (permalink)  
Antiguo 20/02/2014, 13:57
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 7 meses
Puntos: 343
Respuesta: Impedir que los visitantes usen la consola js

Si facebook te 'bloquea' la consola, buscas en el código donde lo hace, le metés un breakpoint, modificas a piaccere y listo.

Como dijo Carlangueitor, es simplemente para proteger a los usuarios, no da ningun tipo de seguridad frente a gente con dos dedos de frente (y tiempo libre por supuesto)
__________________
blog | @aijoona
  #11 (permalink)  
Antiguo 11/06/2019, 08:22
Avatar de supersiana  
Fecha de Ingreso: diciembre-2014
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
Respuesta: Impedir que los visitantes usen la consola js

Cita:
Iniciado por America|UNK Ver Mensaje
Me acabo de percatar, Facebook a podido [URL="https://www.facebook.com/selfxss"]bloquear la consola[/URL]. Para que consigas eso en tu web no creo que halla forma ya que lo más probable es que halla sido un acuerdo entre Facebook y los navegadores para reducir el riesgo de sus cuentas, o talvez en un futuro hhla alguna forma implementado en el motor Javascript.



Depende a lo que estés haciendo puedes encontrar algún truco para evitar ejecutar código desde la consola. Pon el código.
En realidad Facebook no lo bloquea, sino que envía a la consola un mensaje de alerta previo. Una vez que uno entra a la consola, lo ve.
Pero si envías el Alert, de todos modos se envía y se ejecuta.
El aviso lo pone Facebook por si el usuario ingresa a la consola siguiendo la guía de algún estafador que le haga seguir pasos por esa vía para sacarle información.

Etiquetas: consola, funcion, impedir, js
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:36.