¿Podría alguien indicarme una buena guía para principiantes sobre la ejecución segura de consultas SQL formadas en parte a partir de la entrada del usuario? Estoy usando Java, pero una guía de idioma neutral también está bien.¿Cómo debo desinfectar la entrada de la base de datos en Java?
El comportamiento deseado es que si alguien escribe en la GUI algo así como
very nice;) DROP TABLE FOO;
La base de datos debe tratar como una cadena literal y almacenar de forma segura sin dejar caer ninguna tabla.
Este es exactamente el tipo de ataque contra el que las declaraciones preparadas pretenden proteger. Escapará del; – danieltalsky
Técnicamente, la interfaz PreparedStatement no lo garantiza. Aunque si su controlador hace algo diferente, busque un nuevo proveedor. –
@daniel - Tendré que probarlo y verlo por mí mismo. Si estoy en lo cierto al respecto o no, ¿no está de acuerdo en que la validación del lado del servidor sigue siendo una buena idea? – duffymo