제목 | 검색기능에서 ' <- 잘 처리 하는 방법 문의드려요 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | neo천 | 작성시각 | 2018/10/10 09:40:39 |
|
|||
경험치가 많지않아서 좋은 방법을 모르겠습니다 일단 상황을 얘기하자면, 서비스중인 프로젝트를 담당하게되었습니다 그런데 코드가 옛날코드에, 외주회사의 자체 프레임워크라서 그런지, 사소한 에러가 많이생깁니다. 제 질문상황은..아래부분이인데요,, ---------------------------------------------- 관리자페이지에서 검색기능이 있는데 '(홑따옴표) <-라는 문자가 들어가면 sql문에서 에러가 생깁니다. ex) I'am 왜 에러가 생기는지 알기 때문에 addslashes를 추가해서 그 부분을 처리하였습니다. 문제는 그런 검색 부분이 한 두군데가 아니고, 심지어 검색이 아닌, 데이터를 수정(update쿼리문)할때도 ' <-문자열에서 에러가 생깁니다. 어디서 생길지 모르니까 에러가 생기면 그때 그때 addslashes를 추가해주고 있습니다. ---------------------------------------------- 위 같은 상황에서 1번째 질문은, 지금 이대로 에러가 생길때마다 addslashes로 ' <-문자열에 대해 처리하는 방법이옳은방법일까요? 좋은방법일까요?
2번째 질문은, 지금 코드를, 코드이그나이터 프레임워크로 씌울려고 하는데코이로 ' <-문자열에 대해 쿼리문 처리하는 좋은 방법 추천해주세여 ㅎㅎ $this->db->query($sql, array($test)); 말고 다른 방법도있을까요?ㅎㅎ
경험적인 부분이나, 조언 부탁드립니다! 감사합니다 ㅎㅎ |
|||
다음글 | calendar 라이브러리에서 오늘 이 후 날짜만 cl... | ||
이전글 | URL 질문입니다. (2) | ||
kaido
/
2018/10/10 13:25:17 /
추천
1
|
neo천
/
2018/10/10 18:30:12 /
추천
0
답변감사합니다 말씀해주신 방법대로 처리해야겠습니다 ㅎㅎ
|
코드이그나이터를 사용하시면 ' 싱글 쿼터에 대한 SQL 관련 문제는 발생하지 않습니다.
싱글 쿼터로 발생 하는 문제는
이렇게만 사용하셔도 발생 하지 않으며, 액티브레코드로 사용 하시면 모든 쿼리문에 이스케이프문 형태로 들어가게 되어서 SQL 인잭션 문제에서 벗어나게 됩니다.
액티브레코드가 아니여도 바인딩 이나 익스케이프를 먹이는 방법이 있습니다.
http://www.ciboard.co.kr/user_guide/kr/database/queries.html#escaping-queries
더불어 인잭션 대책은 보안 강화.. 이라기 보단 필수 보안 항목 입니다.