기사를 많이 읽었을 때 JPA/Hibernate 쿼리를 사용할 때 SQL 주입을 피할 수 있도록 내 쿼리에서 매개 변수를 설정하는 것이 좋습니다. Like :JPA 질의 - 위치 매개 변수에서의 SQL 주입 jpa 네이티브 질의
select user from User user where user.name = :name and user.surname = :surname
내 문제는 내 쿼리를 만들 때 고유 쿼리를 사용해야하는 경우가 있습니다.
엔티티 관리자와 createNativeQuery
을 사용할 것입니다. 그러나이 경우 매개 변수는 위치 적입니다. 마찬가지로 :
select * from users where user_name = ? and user_surname = ?
그런 다음 내 쿼리에서 나는 매개 변수가있는 쿼리에서 같은 방법
setParameter(1, "name")
등 그래서이 경우 "SQL 인젝션 증거"를 사용할 것인가?
예, 데이터로만 사용되도록 setParameter 메소드를 사용할 때 매개 변수를 올바르게 이스케이프 처리합니다. 사용자가 제공 한 매개 변수를 사용하여 문자열을 직접 작성하고 올바르게 이스케이프 처리하지 않으면 주입 취약점이 발생합니다. – kevingallagher