2012-05-14 16 views
0

setParameterで設定したjplパラメータをsql-injectできますか?JPL:javax.persistence.Query.setParameter sql-injection safe?

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()); 

答えて

0

それがSQLベースであると思わ: は私が意味する、私はこのような何かを持っている場合、私はそれを行うことができます知っています注射安全。 sqlクエリを調べましたlog:潜在的に危険なシンボルが結果のSQLでエスケープされました