본문 바로가기
공부/해킹 과제

SQL Injection 대응 방안

by TILDA_16 2023. 4. 29.

이전에는

Union SQL Injection

Error Based SQL Injection

Blind SQL Injection

을 정리했다

 

SQL Injection은 공격자가 SQL 질의문을 삽입하는 공격이다.

 

Injection이 발생하는 이유는 뭘까

 

SQL 질의문에 사용자의 입력이 그대로 들어가기 때문에 발생한다.

 

그러면 or, and 이런 것들을 필터링하면 어떨까?

 

어느 정도는 막을 수 있지만 사용자 이름에 or, and가 있으면

 

사용자가 이용을 하는데 불편함이 생긴다.

 

그래서 필터링은 소극적인 대응방안이자 최후의 수단으로 놔둬야 한다.

 

 대응 방안으로는 PreparedStatement 처리하면 된다.

 

Prepard Statement처리를 하면 우회고 뭐고 Injection이 전부 막히게 된다.

 

하지만 그럼에도 Injection이 사용가능한 이유는 

 

Prepard Statement처리를 잘못 사용한 경우가 있고

 

옛날에 만들어 놓은 코드(레거시 코드)를 사용하는 경우

 

Prepard Statement처리가 적용되지 않는 곳에 사용하는 경우(정렬하는 곳에선 prepard Statement를 사용하지 못함)

 

등이 있을 수 있다.

'공부 > 해킹 과제' 카테고리의 다른 글

XSS 1  (0) 2023.05.05
SQL Injection 정리  (0) 2023.05.05
Blind SQL Injection  (0) 2023.04.28
Error Based SQL Injection  (0) 2023.04.21
Union SQL Injection  (0) 2023.04.21