neo4j - Preocupaciones de "inyección" para Cypher sobre REST
code-injection (1)
Me preguntaba si existe una preocupación por la inyección de consultas cuando consulto sobre REST?
La parametrización de la consulta definitivamente hace las cosas más claras, pero también pude consultar con concatenación de cadenas para manipular propiedades y etiquetas.
Encuentro que este último enfoque es más flexible porque a veces no puedo consultar la forma en que lo deseo siguiendo el paradigma de los parámetros. ( ¿Puedo parametrizar etiquetas y propiedades en CREATE o SET? (REST y transacción) )
Si no hay preocupaciones de algún tipo de inyección ¿es un riesgo de seguridad para las cadenas de consulta concat? Personalmente, no tengo una comprensión demasiado profunda al consultar Neo4j, así que quiero tener mis opciones abiertas y dispuestas a intentar cualquier sugerencia.
EDITAR: Después de leer el comentario de Wes. Me gustaría pedirles a los espectadores que echen un vistazo al enlace publicado. ¿Qué hay de esas situaciones en las que quiero usar Where y Set? ¿Cuál sería la mejor manera de parametrizar?
¡Gracias!
Aquí hay una situación hipotética, dado que alguien conoce su consulta. Si toma la entrada del usuario y la concatena en una consulta, esto podría suceder:
"MATCH (u:User) WHERE u.id = " + userId + " RETURN u"
Probemos una ID de usuario de:
"1 WITH count(1) AS dummy MATCH (u:User) OPTIONAL MATCH (u)-[r]-() DELETE u, r "
Estoy seguro de que algunas personas podrían presentar peores ejemplos ...
Esto se resuelve al instante con los parámetros. También puedes desinfectar las entradas, pero yo tomaría el camino seguro si es posible.