CI 묻고 답하기

제목 CI 3버전으로 업그레이드 한 후 xss_clean 문제
카테고리 CI 2, 3
글쓴이 lzao 작성시각 2019/01/04 10:10:39
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 13498   RSS

안녕하세요.

기존 CI 2를 사용하고 있는 프로젝트를 이번엔 3.1.9 버전으로 업그레이드를 하게 되었습니다.

CI 2에서 사용하고 있던 form_validation->sel_rules('id','xss_clean') 이 문제가 되서

구글링을 해보니 CI 3버전에서는 없어졌다고 하더라구요

대신 $this->input->post('id',true)로 하면 된다고 하던데 

이런식으로 사용하려면 config['global_xss_filtering']을 true로 바꿔야지만 작동하는 건가요?

문서를 봐도 이해가 가지 않아서 질문 드립니다.

 

감사합니다.

 다음글 (왕초보) 세션 질문좀 드려요. (10)
 이전글 네이버 검색 api (4)

댓글

kaido / 2019/01/04 10:15:13 / 추천 0

global_xss_filtering  

글로벌 이라는 이야기입니다.

true 상태일때 설정 했을 경우에  input 값에 뒤에 인자값을 안넣으면 자동으로 true가 들어갑니다.

 $this->input->post('id')  =>   $this->input->post('id',true)

이렇게 취급 하겠다는 설정입니다.

글로벌이 false 이라도

 $this->input->post('id',true); 

강제로 넣으면 강제로 넣은 값이 우선 순위가 되어서 true 형태로 작동합니다.

 

일반적으론 글로벌은 false로 놔두고 단일로 필요한 부분에 true 를 넣는 편입니다.

물론 반대로 하셔도 상관없습니다.

변종원(웅파) / 2019/01/04 10:25:00 / 추천 0

위지윅 에디터를 사용할 경우 글로벌 xss_filtering을 사용하면 입력내용이 제대로 db에 들어가지 않습니다.

그래서 보통은 global은 false로 하고 컨트롤러에서 아래처럼 1번 선언하여 사용합니다. $post는 $_POST와 내용이 같은데

다른 점은 xss_clean이 적용된 것입니다.

$post = $this->input->post(null, true); 

lzao / 2019/01/04 10:45:05 / 추천 0

@kaido @웅파

답변 감사합니다.

이미 소스에서는 form_validation->sel_rules('id','xss_clean') 이것도 있고

그 아래에 $post = $this->input->post(null, true); 이것도 있네요.