작성
·
191
답변 1
0
안녕하세요.
질문에서,
"
order by 절 뒤에 select 를 이용한 다중쿼리는
작성하지 못한다는 답변을 챗GPT로부터 받았는데,
GPT는 order by 뒤에 union을 이용한 공격은 가능하다고 하지만 왜 실제로 문제에선 union을 이용한 공격은 적용되지 않는 것일까요?
"
라고 하셧는데 gpt로부터 작성하지 못한다 or 가능하다 중 가능하다고 답변 받으신게 맞죠?
결론부터 말씀드리면, 영상에서도 말씀드렸듯 불가능합니다.
RDBMS(관계형 데이터베이스)에서 문법상 union 구문 사용 시 상위 select절에선 order by 절 사용이 불가능하며, 하위 select 절에서 사용 가능합니다. 따라서 order by절 구문에 인젝션 시 상위 select 절에 order by절이 사용된 경우기 때문에 union 절 사용이 불가능합니다.
왜 이렇게 설계를 한지에 대해서는 일관성에 대한 부분이 아닐까 추측은 할 수 있으나 제가 설계자가 아니라 디테일한 이유는 모르겠네요.
챗gpt 활용하는것은 좋으나 참고만하고, 직접 mysql, mssql, oracle 실습해보시는게 좋습니다.