CI 묻고 답하기

제목 sql 인젝션 질문 드립니다.
카테고리 CI 2, 3
글쓴이 김제연 작성시각 2017/06/12 21:27:48
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 14210   RSS

엑티브 레코드를 쓰면 sql injection 이 자동으로 처리 된다는 글들이 많이보여 ... 

active record만 사용했는데도 제 생각처럼 동작하지 않아 .. 질문 드립니다.

codeigniter 3.1.4 를 사용하고 있으며 

로그인시 

$this->input->post('login_data',TRUE)

이렇게 post 값을 가져와서 ..

 

->where('user_id', $login_data['user_id'])
->where("user_password = password('{$login_data['password']}')",NULL,FALSE)
->limit(1)
->get('users');

 

이런식으로 처리 중입니다.

 

너무도 쉽게 sql injection 으로 뚫려 버리는데 ... 인젝션을 막는 방법이 있을까요?

해외 사이트 ci포럼 등에 나온 데로 했는데 다른 분들도 이런식으로 사용하시는걸로 

보이는데 .. 제가 뭔가 빼먹은게 있을까요?

 

 다음글 csrf_protection 옵션 질문입니다 (1)
 이전글 쿼리바인딩 문제 (5)

댓글

변종원(웅파) / 2017/06/12 22:53:57 / 추천 0

where함수의 세번째 파라미터가 escape 해주는 값인데 false로 주니 escape처리를 하지 않습니다.

위와 같은 경우는 미리 escape함수로 처리하거나 바인딩으로 처리해야 합니다.