[SQL Injection] SQL Injection 대응 방안

2024. 6. 7. 14:09정보보안 및 해킹/웹 해킹

Prepare Statement

SQL Injection을 절대적으로 방어할 수 있음

 

작동 원리

SQL 쿼리문을 미리 컴파일 한 후 기계어로 완성된 쿼리문 안에 사용자가 입력한 데이터를 끼워넣는 방식

 

이점

컴파일을 미리 진행하기 때문에 속도가 다소 빨라진다

SQL Injection을 절대적으로 방어할 수 있다.

 

하지만 여전히 SQL Injection공격이 존재하는데 이유는 무엇인가?

 

1. Prepare Statement를 잘못 사용하는 경우

물음표를 사용하여 사용자가 입력할 부분을 뚫어놓고 나머지 부분을 컴파일한 후 기다려야 하는데 이렇게 하지 않는 경우

 

2. Prepare Statement를 사용하지 못하는 경우

order by, table name, column name에는 Prepare Statement를 사용하지 못하기 때문에 취약한 상태로 노출되어 있음