reales pagina mas kali inyecciones inyeccion injection hackear ejemplos ejemplo comunes casos ruby-on-rails activerecord

ruby-on-rails - pagina - sql injection ejemplos reales



Cómo usar comodines en un registro activo where cláusula mientras se protege contra la inyección sql (1)

Debe modificar su consulta de esta manera

User.where("first_name LIKE (?)", "%#{first_name}%")

Desde la guía de consulta de registros activos de rieles en la inyección de sql

Este código es altamente preferible:

Client.where ("orders_count =?", Params [: orders])

a este código:

Client.where ("orders_count = # {params [: orders]}")

Mi problema es que quiero usar una cláusula LIKE con un comodín. Mi consulta anterior se ve así:

User.where("first_name LIKE ''%#{first_name}%''")

Que es vulnerable a la inyección sql, pero si hago esto:

User.where("first_name LIKE ''%?%''", first_name)

Entonces el sql resultante se ve así:

SELECT "users".* FROM "users" WHERE (first_name LIKE ''%''michael''%'')

que no es válido debido a las comillas simples adicionales.

¿Cuál es la mejor manera de usar comodines y una cláusula LIKE pero también proteger contra los ataques de inyección sql?