Pregunta

¿Hay una forma integrada de escapar de la entrada del usuario en java utilizando el JDBC ? Algo similar a la versión de php mysql_real_escape () . ¿Cuál es la mejor manera de validar la entrada?

¿Fue útil?

Solución

Si se refiere a cómo asegurarse de que no se pueda utilizar la información del usuario en los ataques de inyección de SQL, la forma de hacerlo (y la forma en que se debe escribir todo el SQL en JDBC) es mediante el uso de declaraciones preparadas. JDBC manejará automáticamente cualquier escape necesario.

http://java.sun.com/docs /books/tutorial/jdbc/basics/prepared.html

Otros consejos

Solo para agregar a la sugerencia de @skaffman, PreparedStatements resuelve el problema para la mayoría de las aplicaciones. Sin embargo, hay algunas aplicaciones donde (partes de) sentencias de SQL (en lugar de solo valores de parámetros) se toman de la entrada del usuario (por ejemplo, un parámetro de URL que contiene la cláusula ORDER BY). Solo asegúrate de que también los desinfectes o, mejor aún, evita dichos diseños si es posible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top