작성
·
1.1K
2
안녕하세요. 최근 querydsl 공부를 시작하려고 정보를 찾던 중
querydsl에 대한 SQL Injection 에 관한 내용을 보고 김영한님의 생각이 궁금합니다!
그리고 querydsl 지원중단 얘기를 보기도 해서 이런 취약점이 나올 때마다 빠른 대응이 되는지 역시 궁금합니다!!
https://www.csirt.sk/querydsl-java-library-vulnerability-permits-sql-hql-injection.html
답변 2
0
안녕하세요. yywj님
querydsl의 지원에 대한 부분은 다음을 참고해주세요.
https://www.inflearn.com/community/questions/1144489
추가로 말씀하신 취약점의 경우에는 일반적인 동적쿼리에서 모두 조심해야 하는데요.
대부분 다음과 같이 별도의 정렬 타입을 받아서 애플리케이션 코드 내부에서 별도의 정렬 조건을 만들어내기 때문에 크게 문제가 되지는 않습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. yywj님께서 문의하신 Querydsl의 SQL Injection 취약점 및 지원 중단 우려에 대해 답변드리겠습니다.
Querydsl은 Java 기반의 쿼리 생성 라이브러리로, JPA와 함께 사용되며 타입 세이프한 쿼리 작성을 지원합니다. 일반적으로 Querydsl은 JPA가 제공하지 않는 동적 쿼리 작성을 쉽게 해주고, 컴파일 시점에 쿼리 에러를 잡아주는 장점이 있습니다. 그렇지만 모든 기술이 그렇듯이 취약점이나 유지 보수 이슈가 있을 수 있습니다.
SQL Injection 우려: Querydsl은 JPQL을 기반으로 하고 있으며, 기본적인 사용 방식에서는 개발자가 직접적으로 SQL 문을 작성하지 않으므로 SQL Injection에 대한 위험성을 많이 줄여줍니다. 그러나, 사용자가 쿼리 작성 시 동적 SQL을 직접 다루거나 String 기반의 쿼리를 삽입할 경우 취약점이 발생할 여지가 있습니다. 따라서 항상 쿼리 파라미터 바인딩을 활용하는 것이 안전합니다.
지원 중단 우려: 현재 Querydsl의 공식적인 업데이트는 느리게 진행되고 있으며 이로 인해 사용자는 언제든지 새로운 취약점이나 이슈에 노출될 수 있습니다. 그럼에도 불구하고 여전히 많은 개발자 커뮤니티에서 활발하게 사용되고 있으며, GitHub 등을 통해 비공식적으로 유지 보수되고 강화되고 있습니다(OpenFeign Querydsl 참조).
질문에 대한 더 깊이 있는 의견을 얻고자 하신다면, 김영한님께서 이전에 남긴 답변도 도움이 될 것입니다. 관련된 질문과 답변을 제공하는 링크는 다음과 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.