CI 묻고 답하기

제목 global_xss_filtering과 위지윅 에디터
카테고리 CI 2, 3
글쓴이 뫄뫄잉뿌 작성시각 2018/11/20 16:20:08
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 18995   RSS

현재 global_xss_filtering = TRUE 로 설정하고 xss를 방어하고 있는데,

위지윅 에디터인 tinymce를 쓰는 와중에 글씨나 테이블같은 걸 넣어보니 xss로 인식되어 에디터에서 적용된 style들이 먹히지 않습니다.

style을 제외하자니 xss가 걸리고 xss를 풀어버리자니 보안이 걸리는데 좋은 해결법 없을까요..?

예를들어 style이 xss 내에서 걸리면 내부에 xss를 검사해서 통과되면 그냥 style이 그냥 나오는 방법이라던가요..ㅜㅜ

 

http://www.ciboard.co.kr/user_guide/kr/libraries/input.html#xss-filtering

여기 보니까 xss은 input이 아니라 output에서 적용하라고 되어있는데, 

global_xss_filtering = TRUE로 놓고 에디터에서 글씨색만 바꾸고 저장해보니

input도 적용되는데 번역이 잘못된걸까요..? 로직이 잘못된걸까요..?

DB에서 값 확인해보니까 스타일 부분이 xss=[removed] 로 변경되서 저장되네요..

 다음글 CI 에서 웹폰트 적용하기 (4)
 이전글 컨트롤러안의 메소드(함수)명을 출력하고 싶은데요 (1)

댓글

변종원(웅파) / 2018/11/22 10:57:47 / 추천 0
위지윅 에디터 때문에 그 옵션을 끄고 input함수에서 xss 옵션을 줘서 처리합니다.
kaido / 2018/11/22 11:11:00 / 추천 0

글로벌 옵션은 끄셔야 하고

$this->input->post("name", true);
2 번째 인자가 글로벌 옵션 값이 들어가는 것입니다.

false 로 주시면 xss 스캔 안함
true 로 주시면 xss 스캔함


기본은 글로벌을  false로 주고 특정 값을 true를 주는 방법이 있으며,

위지윅에 xss 공격 대책을 위해서는 좀더 섬세한 필터가 가능한 라이브러리를 사용합니다.

http://htmlpurifier.org/download

참고하시면 좋습니다.


더불어 이미 CI 용으로 htmlpurifier 헬퍼들이 많이 나와있습니다.

https://github.com/refringe/codeigniter-htmlpurifier



 

뫄뫄잉뿌 / 2018/11/22 11:25:07 / 추천 0

@변종원(웅파)님, @kaido 님

답변 감사합니다!

htmlpurifier 먼저 살펴봐야겠네요..

문제가 있을 때 마다 늘 도움받고 있는데 정말정말 감사합니다.