web-dev-qa-db-ja.com

Spring SQLインジェクションの@Queryアノテーションは安全ですか?

Springの@Queryアノテーションに渡された文字列のパラメーターは、たとえば、PreparedStatementクラスまたはSQLインジェクションを防ぐためのメソッドを使用している場合と同じように、純粋なデータとして扱われますか?

final String MY_QUERY = "SELECT * FROM some_table WHERE some_column = ?1";

@Query(value=MY_QUERY, nativeQuery = true)
List<SomeEntity> findResults(String potentiallyMaliciousUserInput);

ボトムライン:上記のコードはSQLインジェクションの影響を受けやすいですか?

11
Usman Mutawakil

SpringDataの@QueryはJPAの単なるラッパーのようです

これを参照してくださいSO回答: JPAでSQLインジェクション攻撃は可能ですか?

2
Alex

クエリでは、文字列の連結(SQLインジェクションに対して脆弱)の代わりにバインド変数を使用するため、SQLインジェクションの脆弱性に関してあなたの例は保存されていると思います。

0
AntonBerezin