Pregunta

¿Cómo escapo de los parámetros de consultas en JDO (Google App Engine)?

Por ejemplo, ¿cómo hago seguro el próximo fragmento, si el nombre de la variable puede contener caracteres inseguros como cotizaciones individuales (')

PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
¿Fue útil?

Solución

Use parámetros de consulta en su lugar, es mucho más seguro que incluir los valores en la consulta misma. Aquí hay un ejemplo de la documentación de GAE:

Query query = pm.newQuery("select from Employee " +
                          "where lastName == lastNameParam " +
                          "order by hireDate desc " +
                          "parameters String lastNameParam");

List<Employee> results = (List<Employee>) query.execute("Smith");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top