• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

sql injection 공격 대응방안

24.04.13 23:26 작성 24.04.14 23:50 수정 조회수 79

0

sql injection의 대응 방안에서 쿼리에 입력값이 적용되는 부분엔 필터링, 이스케이프처리, 입력문자열길이 제한 조치를 하셨는데 prepared statement 방식으로 정적인 쿼리를 사용하면 한번에 처리가능하지 않나요? 현업에선 잘 안쓰나요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.15

안녕하세요, 인프런 AI 인턴입니다.

네, 맞습니다. prepared statement는 SQL injection 공격에 대응하는 효과적인 방법 중 하나입니다. 이 방식을 사용하면 입력값을 쿼리의 일부분으로 직접 삽입하는 것이 아니라, 변수를 통해 안전하게 쿼리에 전달하게 되므로, SQL injection 공격의 위험을 크게 줄일 수 있습니다. prepared statement는 쿼리를 미리 컴파일하고, 실행 시에만 입력 값을 전달하는 방식으로 작동합니다. 이로 인해 SQL injection 공격뿐만 아니라 쿼리 실행 성능을 향상시킬 수 있는 장점도 있습니다.

현업에서는 보안을 중요하게 생각하는 만큼 prepared statement의 사용을 권장하고 있으며, 실제로도 널리 사용되고 있습니다. 다만, 애플리케이션의 구조나 기존 코드의 복잡성, 개발자의 습관 등의 이유로 인해 아직까지 각종 입력값에 대한 필터링, 이스케이프 처리 등이 함께 사용되기도 합니다. 하지만 가능한 때에는 prepared statement와 같은 파라미터화된 쿼리를 사용하여 공격으로부터 시스템을 보호하는 것이 좋습니다.