TIP게시판

제목 PHP 5.5.X 이상 버젼 사용시 보안클래스 버그 있습니다.
글쓴이 한대승(불의회상) 작성시각 2014/10/10 15:57:09
댓글 : 6 추천 : 1 스크랩 : 0 조회수 : 13166   RSS
한대승(불의회상)
5.4 이하 버젼은 발생하지 않습니다.
5.5.X 이상 버젼 사용시 발생하는 버그 입니다.



에러가 나는 이유는 5.5.X 부터 지원하지 않는 기능을 사용해서 이죠. ^^


일반적인 경우에는 에러 발생하지 않습니다.
XSS 필터를 작동 시키면 에러 발생 합니다.
 
$this->security->xss_clean($this->input->post('test'));
$this->input->post('test', TRUE);
버그 패치 방법은 첨부한 my_security.zip 다운 받으신후 압축 풀고 application/core 폴더에 복사 하시면 됩니다.


 
첨부파일 my_security.zip (767 Bytes)
 다음글 코드이그나이터 다국어를 JS에서도 쓰기! (1)
 이전글 모듈 설정파일 구성하고 써먹기 (2)

댓글

양승현 / 2014/10/10 16:17:57 / 추천 0
호곡.. preg_replace()가 디플리케이트 되었군요. 음.. 어쩔수 없는건강..
코드이그 / 2014/10/13 09:35:24 / 추천 0
헐... 생각보다 지원에서 빠진 함수들이 많네요 ㅠㅠ
들국화 / 2014/10/13 10:06:32 / 추천 0
/e 변경자가 뭔가 했더니 메뉴얼을 봐도 뭔지 잘 모르겠네요.ㅋㅋㅋㅋ

e (PCRE_REPLACE_EVAL)
이 변경자를 지정하면, preg_replace()는 변경할 문자열을 PHP 코드로 처리하고, 그 결과를 검색된 문자열의 이용하여 일반적인 치환을 합니다. 작은 따옴표, 큰 따옴표, 백슬래시와 NULL 문자는 백슬래시로 이스케이프됩니다.

preg_replace()만 이 변경자를 사용합니다; 다른 PCRE 함수는 무시합니다.

한대승(불의회상) / 2014/10/13 12:28:06 / 추천 0
eval() 함수로 치환하여 실행후 결과를 돌려주는것 같습니다.
들국화 / 2014/10/13 12:54:54 / 추천 0
한대승// 그렇네요. ^^; 설명을 듣고 메뉴얼 문구를 보니 이해가 되네요.. 변경할 문자열을 PHP 코드로 처리...
아무래도 코드를 실행하니 보안성 때문에 빠졌나 보네요.
phper / 2014/10/16 11:19:33 / 추천 0
안그래도 저도 오늘 구글링해서 수정했네요 ㅎㅎ;;

https://github.com/bcit-ci/CodeIgniter/issues/2727