JDO pour Google App Engine: la détection des guillemets
-
19-09-2019 - |
Question
Comment puis-je échapper des paramètres de requêtes dans JDO (Google App Engine)?
Par exemple, comment puis-je faire le prochain extrait sûr, si le nom de la variable peut contenir les caractères dangereux comme des guillemets simples ( ')
PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
La solution
Utiliser les paramètres de la requête à la place, il est beaucoup plus sûr que d'inclure les valeurs dans la requête elle-même. Voici un exemple de la documentation 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");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow