CI 묻고 답하기

제목 html입력시 자꾸 xss 필터가 적용되네요;;
글쓴이 다니엘SEO 작성시각 2012/05/08 19:24:52
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 18496   RSS
 $config['global_xss_filtering'] = FALSE;
이렇게 설정을 하고

$this->form_validation->set_rules('board_content', 'board_content', 'required|trim');
이렇게 입력을 받았는데도....

ㅁㄴㅇㄻㄴㅇㄻㄴㅇㄹ<table style="border-width: 1px 1px 0px 0px; border-style: sol

이런식으로 입력이 되네요;;;

왜 이럴까요 ㅠ.ㅠ
 다음글 DB 자동로드 관련해서 질문이요.. (1)
 이전글 aa.com/클래스/index/파라미터 에서 index... (4)

댓글

변종원(웅파) / 2012/05/08 22:02:53 / 추천 0
필터가 적용되면 style 부분이 없어집니다.
필터링과는 상관 없어 보이구요. 해당 파일의 캐릭터셋을 살펴보세요.
euc-kr이 아닌지, utf-8 bom이 아닌지 uft-8이어야 합니다.
배강민 / 2012/05/09 09:39:36 / 추천 0
저 한글 부분이 깨진다는 말씀인건가요?

실제 입력하신 string이 어떤건지..
다니엘SEO / 2012/05/09 10:48:11 / 추천 0
아...이제 보니 여기 게시판이.....
strip했던 테그를 다시 정상적으로 나오게 하는군요 ^^;;

쉽게 말해서, html테그들을 모두 strip해버립니다 ㅠ.ㅠ
xss필터링을 꺼도...그렇네요...
변종원(웅파) / 2012/05/09 13:06:11 / 추천 0
음.. 이해가 안되는 것이 strip 이라는 것은 변형을 시키는 것이 아니라 아예 없애는 겁니다.
없앤 태그가 포럼에 글을 썼다고 다시 나타나지는 않습니다.
strip이 아니라 htmlspecialchars 이런 종류의 함수를 사용해서 제대로 보이도록 하셔야 할 것 같습니다.
http://blog.daum.net/mecho72/5809096 참고

다시 말씀 드리지만 xss 필터랑은 상관없습니다. 필터가 적용되면 <table> 만 남습니다.
배강민 / 2012/05/09 13:31:50 / 추천 0
저도 웅파님과 같은 의문점이..

그 문제라면

$this->form_validation->set_rules('board_content', 'board_content', 'required|trim|htmlspecialchars|xss_clean');

정도로 될것 같습니다.

여기서 xss_clean까지 사용한다면 htmlspecialchars 가 xss_clean 앞에 있어야 원하시는 데로 될겁니다.

저 파이프(|) 나열된 부분이 순서상의 문제도 있어서 xss_clean 이 먼저 실행되면 문제로 판단되는 string을 다 제거/치환 해버린 후에 htmlspecialchars 하게되므로 원하는 결과를 얻지 못할 수 있습니다.
다니엘SEO / 2012/05/10 09:15:06 / 추천 0
 그렇군요! 제가 질문을 잘 못했네요 ㅠ.ㅠ
웅파님과 KangMin님 방법대로 해봐야겠습니다.
매번 많이 배우네요! 감사합니다 ^^