コードのセキュリティ上の欠陥を見つけるのに役立つFindBug
プラグインと一緒に使用しています。Find Security Bugs
一部のコードが SQL インジェクションに対して脆弱であるというフラグが立てられている理由がわかりません。
以下に 2 つの例を示します。
final StringBuilder queryString = new StringBuilder("SELECT users.login FROM Users users, Table table WHERE users.idUser = table.users.idUser");
Query query = session.createQuery(queryString.toString()); // This line is flagged
StringBuilder queryString = new StringBuilder("SELECT data FROM Table ");
queryString.append("WHERE table.idEntreprise = :id");
Query query = session.createQuery(queryString.toString()).setInteger("id", id); // This line is flagged
それは偽陽性ですか、それとも何かを見逃しましたか? 問題を正しく理解していれば、createQuery()
andsetX()
を使用するだけで十分ですか?