TIP게시판

제목 euc-kr에서 xss_clean버그시 대처 방법(?)
글쓴이 徽人 작성시각 2009/11/04 12:49:04
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15941   RSS
class MY_Input extends CI_Input
{

	function MY_Input()
	{
		parent::CI_Input();
	}


	/**
	 * euc-kr에서는 버그가 있으므로 utf-8로 변경해서 검사.
	 */
	function xss_clean($str, $is_image = FALSE)
	{	
		$CFG =& load_class('Config');
		$charset = $CFG->item('charset');
		$CFG->set_item('charset', 'UTF-8');			// UTF-8로 변경.
		$str = iconv($charset, 'UTF-8', $str);		// 검사할 문자열을 UTF-8로 변경.
		$str = parent::xss_clean($str, $is_image);
		$CFG->set_item('charset', $charset);		// 인코딩을 원상복구~

		if(is_bool($str))
			return $str;

		return iconv('UTF-8', $charset, $str);
	}
}
전 이렇게 해서 해결했습니다.

검사하기전에 UTF-8로 인코딩 변경하고(전역 설정도 변경)
검사 후 다시 기본 인코딩으로 변경합니다.

피드백 적극 환영합니다 ㅎㅎ
 다음글 프로파일러 쉽게 사용하기 (1)
 이전글 php 세션(서버에저장되는)을 쓰기위해서 (1)

댓글

마냐 / 2009/11/04 14:15:24 / 추천 0

어떤 버그인가요?

徽人 / 2009/11/04 22:08:33 / 추천 0
www.codeigniter-kr.org/qna/view/1239/page/1/

html_entity_decode()

함수가 euc-kr을 지원하지 않아서 생기는 버그입니다.

"&" 가 포함 될경우 에러가 생깁니다.


마냐 / 2009/11/04 23:59:01 / 추천 0

아.. 제가 써논거군요. ㄷㄷㄷ;;