제목 | CI 3버전으로 업그레이드 한 후 xss_clean 문제 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | lzao | 작성시각 | 2019/01/04 10:10:39 |
|
|||
안녕하세요. 기존 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
|
변종원(웅파)
/
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); 이것도 있네요. |
global_xss_filtering
글로벌 이라는 이야기입니다.
true 상태일때 설정 했을 경우에 input 값에 뒤에 인자값을 안넣으면 자동으로 true가 들어갑니다.
$this->input->post('id') => $this->input->post('id',true)
이렇게 취급 하겠다는 설정입니다.
글로벌이 false 이라도
$this->input->post('id',true);
강제로 넣으면 강제로 넣은 값이 우선 순위가 되어서 true 형태로 작동합니다.
일반적으론 글로벌은 false로 놔두고 단일로 필요한 부분에 true 를 넣는 편입니다.
물론 반대로 하셔도 상관없습니다.