2010-08-22 8 views
6

Estoy desarrollando un proyecto utilizando Node.js en la parte posterior, con eso también estoy usando JSON para pasar datos ay desde clientes sobre sockets web. El problema que tengo es que si se envía una cadena no válida al servidor (lo hace fácilmente el usuario que juega con la consola de JavaScript), entonces se bloqueará el servidor al intentar analizarlo.Intento de analizar JSON sin bloquear servidor Node.js

El método actual que tengo para prevenir esta ocurrencia es usar una declaración try/catch.

Mi pregunta es, ¿hay una forma más adecuada de comprobar si una cadena es analizable? Además, ¿el uso de las declaraciones try/catch es una buena práctica o solo están destinadas para la depuración?

Gracias.

Respuesta

4

El uso de try/catch es esencial para crear un código robusto en muchos entornos, muy importante para manejar con elegancia las condiciones de error.

Sin embargo, siempre que acepte datos de una fuente externa, debe validarlo para asegurarse de que no ha abierto un vector de ataque.

Este módulo nodo tiene un par de elementos JSON JSON incluyendo esquemas que pueden ser de ayuda: https://github.com/kriszyp/json-schema