Necesito implementar una búsqueda donde el usuario puede ingresar * como comodín. La base de datos que están buscando es un servidor SQL. Estaba pensando sólo la sustitución de la * con un%:Cómo utilizar * como un comodín en la consulta SQL de forma segura
userInput = userInput.replace('*', '%');
Me preocupa que ya estoy haciendo esto "a mano" que podría introducir algunos errores o fallos de seguridad. ¿Ves algún problema al hacerlo así? ¿Hay alguna biblioteca para hacer esto por mí?
Uso Hibernate como correlacionador ORM y API de Criteria para crear la consulta si ayuda con las respuestas.
Si está usando 'like', también quiere escapar de'% ',' _' y '[...]' existentes. Este * podría * ser un duplicado de: [Escape de una cadena en SQL Server para que sea seguro usarlo en la expresión LIKE] (http://stackoverflow.com/questions/258757/escape-a-string-in-sql- server-so-that-it-is-safe-to-use-in-like-expression) – Kobi
, pero mientras use un Estado Preparado, no inducirá ningún defecto de seguridad. –
@Kobi Gracias, no sabía sobre _ y []. Tengo que probar cómo afectan a la consulta. Hibernate me permite configurar un personaje de escape para que pueda actualizar esta pregunta conmigo tratando de escapar cosas que no quiero que usen los usuarios. – palto