Foros del Web » Programando para Internet » Node.js »

Seguridad en nodejs

Estas en el tema de Seguridad en nodejs en el foro de Node.js en Foros del Web. Hola quiero saber como protegerme en nodejs ya que es muy facil parar al servidor... bastaria con realizar muchas conexiones de socket.io para que salga ...
  #1 (permalink)  
Antiguo 14/09/2013, 20:31
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Seguridad en nodejs

Hola quiero saber como protegerme en nodejs ya que es muy facil parar al servidor...
bastaria con realizar muchas conexiones de socket.io para que salga TOO MANY CONECTIONS
O si el usuario manipula algun dato incorrecto(de esto creo que se protegerme) para producir error.

Algunos consejos??
  #2 (permalink)  
Antiguo 15/09/2013, 21:40
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Seguridad en nodejs

Hola,
Primero, asegura los dominios se pueden conectar,
utiliza el handshake de socket.io , todo el test debes hacerlo en el servidor, auque manipulen algo en cliente que suba el nivel en el cliente el servidor tiene que probar sus propiedades en el mismo server..

Usa session en el server si lo creastes en php puedes testearlo en el handshake..

solo unas ideas , alguien mas que agregue seria bueno.
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #3 (permalink)  
Antiguo 17/09/2013, 09:27
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Seguridad en nodejs

Cita:
Iniciado por utan Ver Mensaje
Hola,
Primero, asegura los dominios se pueden conectar,
utiliza el handshake de socket.io , todo el test debes hacerlo en el servidor, auque manipulen algo en cliente que suba el nivel en el cliente el servidor tiene que probar sus propiedades en el mismo server..

Usa session en el server si lo creastes en php puedes testearlo en el handshake..

solo unas ideas , alguien mas que agregue seria bueno.
Que quieres que los dominios se pueden conectar?? Los usuarios se conectan desde mi ip ya que no tengo dominio.
Lo de handshake de socket.io lo voy a investigar mas pero yo suelo utilizar una variable que asigno a un socket cuando se conecte con id unico y luego asi lo identifico. El socket no se puede manipular o si?
Lo de comprobar todas las propiedades en el servidor, ahora mismo estoy creando un programa de dibujo asincronizado que funciona con puntos en canvas. Los puntos estan en varios arrays multidimensonales y basicamente se guardan en el cliente y este cada vez que crea un nuevo punto lo envia al servidor y este a los demas en el room. Pero no se guarda nada en el servidor para no hacer mas carga.
Ademas utilizo un login mysql pero aun queda el problema de TOO MANY CONECTIONS
Si hay alguna manera de bloquear el haceso si se reciben demasiados.

Saludos

@Edit: el programa de dibujo era solo ejemplo del peso que puede hacer al servidor.
  #4 (permalink)  
Antiguo 17/09/2013, 10:09
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Seguridad en nodejs

Cita:
Los puntos estan en varios arrays multidimensonales y basicamente se guardan en el cliente y este cada vez que crea un nuevo punto lo envia al servidor y este a los demas en el room. Pero no se guarda nada en el servidor para no hacer mas carga.
Lo que aria es actualizar un array o un objeto en el server y mandarlos a todos los conectado, asi tienes la copia master que no puede ser manipulada y la copia del cliente que si puede ser manipulada, cuando quieras comprobar lo haces con la copia del server y no con la del cliente asi si la copia del cliente fue manipulada se encontrara con la del server que es la real..

Que vayas a extresar a node.js con eso no lo creo... es mas importante la memoria en node.js que los ciclos de CPU..

Cita:
Ademas utilizo un login mysql pero aun queda el problema de TOO MANY CONECTIONS
Si hay alguna manera de bloquear el haceso si se reciben demasiados.
Hay es donde el hanshake te sirve, determina si el cliente ya esta conectado y dropea la conexión si lo esta..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #5 (permalink)  
Antiguo 17/09/2013, 14:58
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Seguridad en nodejs

Hola que quieres decir con si el cliente ya esta conectado y si lo esta dropear la conecion?? Ya que para enviar peticiones en socket.io debe de estar conectado, y si envía demasiadas el servidor da este error y para.

Otra cosa seria el uso de eval() . Simplemente para destacar.

Última edición por patilanz; 17/09/2013 a las 15:28
  #6 (permalink)  
Antiguo 17/09/2013, 23:45
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Seguridad en nodejs

Cita:
Iniciado por patilanz Ver Mensaje
Hola que quieres decir con si el cliente ya esta conectado y si lo esta dropear la conecion?? Ya que para enviar peticiones en socket.io debe de estar conectado, y si envía demasiadas el servidor da este error y para.

Otra cosa seria el uso de eval() . Simplemente para destacar.
Me refiero a que si el usuario abre otro browser tab tu no quieres eso.. Ya esta conectado.. no le permites hacer nada ya que hay una instancia de el en el servidor.

Cual es la pregunta con el eval?

No lo uses a menos que venga de un lugar seguro,no pasaría nada que venga del cliente al eval();
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #7 (permalink)  
Antiguo 18/09/2013, 03:11
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Seguridad en nodejs

Cita:
Iniciado por utan Ver Mensaje
Me refiero a que si el usuario abre otro browser tab tu no quieres eso.. Ya esta conectado.. no le permites hacer nada ya que hay una instancia de el en el servidor.

Cual es la pregunta con el eval?

No lo uses a menos que venga de un lugar seguro,no pasaría nada que venga del cliente al eval();
Lo de dos o mas tabs esto se hace con los handshake ? No he tenido mucho tiempo para ver los.
Luego lo de eval simplemente quería destacar si hay mas gente leyendo el post.

Y una cosa, son posibles los ataques CSRF en nodejs?
  #8 (permalink)  
Antiguo 18/09/2013, 09:46
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Seguridad en nodejs

Cita:
Iniciado por patilanz Ver Mensaje
Lo de dos o mas tabs esto se hace con los handshake ? No he tenido mucho tiempo para ver los.
Luego lo de eval simplemente quería destacar si hay mas gente leyendo el post.

Y una cosa, son posibles los ataques CSRF en nodejs?
Si en el handshake o después cuando le das propiedades al usuario... ejemplo tenes un hash usando sha256 y el value es el nombre del usuario con el ip de el encriptado o en plain text..

Lo del CSRF es nuevo para mi, pero al parecer si entiendo bien todo va con dejar que el usuario postee texto trickeando el browser para hacer un http request a otra pagina o el mismo dominio mientras el usuario este identificado en su cookie
con ocurrencias usando una imagen..

Pero como todo, en seguridad web no confíes en inputs de los clientes todo escapalo .. mejor que se cargue el servidor a que te hackeen o lo hagan a tus clientes..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #9 (permalink)  
Antiguo 19/09/2013, 03:22
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Seguridad en nodejs

Hola se me ocurrio otra cosa, como detectas el proxy si esta usando un usuario ya que asi facilmente se puede conectar desde un ordenador 2 o mas veces ??
  #10 (permalink)  
Antiguo 05/11/2013, 08:27
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Seguridad en nodejs

Recuerda que Node.js esta en tu Backend, asi que antes de node puedes colocar cualquier cosa de seguridad, un firewall, un squid. Usualmente colocan un nginx de frente para el contenido estatico y ocultacion de puertos.

Saludos

Etiquetas: seguridad
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 07:40.