coldfusion railo cfml openbd

cfqueryparam con el operador like en ColdFusion



railo cfml (2)

Me han encomendado la tarea de visitar varios sitios de ColdFusion que recientemente han sido objeto de un ataque de inyección de SQL bastante desagradable. Básicamente, mi trabajo consiste en agregar etiquetas <cfqueryparam > a todos los sql en línea. En su mayor parte, lo he bajado, pero ¿alguien puede decirme cómo usar cfqueryparam con el operador LIKE?

Si mi consulta se ve así:

select * from Foo where name like ''%Bob%''

¿Cómo debería ser mi etiqueta <cfqueryparam >?


@ Joel, tengo que estar en desacuerdo.

select a,b,c from Foo where name like <cfqueryparam cfsqltype="columnType" value="%#variables.someName#%" />

  1. Nunca sugiera a alguien que debería "seleccionar estrella". ¡Mala forma! ¡Incluso por un ejemplo! (¡Incluso copiado de la pregunta!)

  2. La consulta se precompila y debe incluir los caracteres comodín como parte del parámetro que se pasa a la consulta. Este formato es más legible y se ejecutará de manera más eficiente.

  3. Al realizar la concatenación de cadenas, utilice el operador de y comercial (&), no el signo más. Técnicamente, en la mayoría de los casos, plus funcionará bien ... hasta que arrojes un NumberFormat () en el medio de la cadena y comiences a preguntarte por qué te dicen que no estás pasando un número válido cuando lo has marcado y usted es.


select a,b,c from Foo where name like <cfqueryparam cfsqltype="cf_sql_varchar" value="%Bob%" />;