0

setParameterによって設定されたjplパラメータをsql-injectできますか? つまり、次のようなものがあればできることはわかっています。

String nm = "'anything' or 'x'='x'--";
Query m = em.createQuery("SELECT p FROM Tbl p WHERE UPPER(p.name) = '" + nm + "'");

このようなもので同様のことを行うことはできますか?:

String nm = "'anything' or 'x'='x'--";
   Query m = em.createQuery("SELECT p FROM Tbl p WHERE UPPER(p.name) = :param").setParameter("param", nm.toUpperCase());
4

1 に答える 1

1

SQLインジェクションセーフのようです。私はSQLクエリのログを調べました:潜在的に危険なシンボルは、結果のSQLでエスケープされています

于 2012-05-21T06:17:24.067 に答える