質問

JDO(Google App Engine)のクエリのパラメーターをエスケープするにはどうすればよいですか?

たとえば、変数名に単一の引用として安全でないcharが含まれている可能性がある場合、次のスニペットを安全にするにはどうすればよいですか( ')

PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
役に立ちましたか?

解決

代わりにクエリパラメーターを使用して、クエリ自体に値を含めるよりもはるかに安全です。 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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top