• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

? 플레이스 홀더 문자

24.04.09 13:27 작성 24.04.13 19:28 수정 조회수 138

0

매게변수를 지정한 구문은 인젝션 할 방법이 없는건가요?

 요즘은 대부분 매게변수를 받아서 쿼리문을 만드는데

이런 식으로 말이죠

공격이 불가능하다면 모든 입력받는 매게변수를 받으면 sql인젝션 공격 방법이 무의미한 것 아닌가요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

Prepared Statement는 SQL 인젝션의 대응방법입니다. 이 방법은 아직 우회 기법은 없습니다.(물론 취약하게 코딩할 경우 제외) 만약 이 방법이 우회가 된다면 전 세계적으로 큰 이슈가 되겠죠.ㅎ

말씀하신대로, 해당 웹 서비스에서 모든 입력 값에 대해 Prepared Statement 처리를 하면 안전합니다.

그러나 Prepared Statement가 적용될 수 없는 경우도 있습니다.(이부분은 강의에서 설명을 드렸습니다.)

모든 웹 서비스의 모든 입력 값에서 Prepared Statement로 처리가 되면 모든 웹 서비스는 SQL 인젝션에 안전하기 때문에 SQL 인젝션이란 기술은 의미가 없게 됩니다.

그러나 그렇게 될 수는 없습니다. SQL 인젝션은 웹 서비스의 범주에서만 가능한 공격이 아니며 데이터베이스와 연동 되어 있는 모든 어플리케이션에서도 가능합니다. 또한 웹 서비스를 개발하는 개발자들이 경우에 따라선 Prepared Statement를 사용하지 않는 경우들도 있습니다.