sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo evita MongoDB el lío de la inyección de SQL?

MongoDB evita la posibilidad de problemas al no analizar.

Cualquier API, en cualquier lugar, que involucre la codificación de datos de usuario en texto formateado que se analiza tiene el potencial de que la persona que llama y el destinatario no estén de acuerdo sobre cómo se debe analizar ese texto. Estos desacuerdos pueden ser problemas de seguridad cuando los datos se malinterpretan como metadatos. Esto es cierto ya sea que esté hablando de cadenas de formato printf, incluido el contenido generado por el usuario en HTML o generando SQL.

Dado que MongoDB no analiza el texto estructurado para averiguar qué hacer, no hay posibilidad de malinterpretar la entrada del usuario como instrucciones y, por lo tanto, no hay un posible agujero de seguridad.

Por cierto, el consejo de evitar las API que requieren análisis es el elemento 5 en http://cr.yp.to/qmail/guarantee.html. Si está interesado en escribir software seguro, también vale la pena ver las otras 6 sugerencias.

Actualización (2018):la respuesta original tal como la di sigue siendo cierta según mi leal saber y entender. Desde el punto de lo que se envía a MongoDB hasta lo que se devuelve, no hay ataque de inyección SQL. Los ataques de inyección que conozco ocurren fuera de MongoDB y en realidad son problemas en la forma en que los lenguajes y bibliotecas externos configuran la estructura de datos que se pasará a MongoDB. Además, la ubicación de la vulnerabilidad está en cómo se analizan los datos en el camino para convertirse en una estructura de datos. Por lo tanto, la respuesta original describe con precisión cómo evitar los ataques de inyección y qué lo pone en riesgo de sufrirlos.

Pero esta precisión no es un consuelo para un programador que se ve afectado por ataques de inyección de defectos que no eran evidentes en su propio código. Pocos de nosotros distinguimos entre la herramienta externa y todas las capas entre nuestro código y esa herramienta externa. Y el hecho es que requiere vigilancia de nuestra parte para anticipar y cerrar los ataques de inyección. Con todas las herramientas. Y este seguirá siendo el caso en el futuro previsible.