CI 묻고 답하기

제목 addslashes 로 디비 사용하기
글쓴이 lzwdct 작성시각 2016/02/22 12:30:52
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 14851   RSS

안녕하세요

 

코드이그나이터 초보입니다.

전 개발자가 짜 놓은 코드를 보고 있는데 현재

//mysqli 사용

$test = htmlspecialchars(addslashes($this->input->post('test')));

$sql = "SELECT * from table WHERE file_id = '$test'";       

$query = $this->db->query($sql);

이렇게 코드가 쓰이고 있는데 여러 sql injection 코드들을 테스팅 중인데 다 안전히 텍스트로 들어가네요

ex)

Robert'); DROP TABLE User;

INSERT INTO User (name) VALUES (?)  

이대로 쓰여도 괜찮을까요?

 

감사합니다!

 다음글 php codeigniter 에서 redirect와 j... (8)
 이전글 CI에서 db 가 close 되는 시점 (3)

댓글

한대승(불의회상) / 2016/02/22 12:35:49 / 추천 0

이전 개발자분이 인젝션방어를 위해 잘 처리해 두신것 같습니다.

CI에서는 sql문을 직접 쓰는 것 보다 아래 처럼 쿼리를 바이딩 하여 사용 하시는것을 권장 합니다.

$sql = 'SELECT * from table WHERE file_id = ?';
$this->db->query($sql, array($test));

http://cikorea.net/user_guide_2.1.0/database/queries.html