제목 | ajax를 사용하거나 form으로 url정보를 넘길경우 & 파싱 오류 | ||
---|---|---|---|
글쓴이 | 조현 | 작성시각 | 2010/03/10 16:14:20 |
|
|||
Ex) http%3A%2F%2Fwww.enclean.com%2Fbbs%2Fboard%2Fpublicucc.view.form.do%3FmsgId%3D71815%26messageNumber%3D0%26boardId%3D123%26boardName%3D%26messageCategoryId%3D0%26startId%3D%26startPage%3D%26searchTitleFlag%3D%26searchRegisterNicknameFlag%3D%26lastPageFlag%3D%26lastPageFlag%3D339%26publicUcc%3DpublicUcc%26publicCateId%3D1052%26leftPublicCateId%3D1052%26leftPublicCateName%3D%26leftChildPublicCateId%3D%26leftChildPublicCateName%3D%26publicCateName%3D%EB%BB%94Fun%ED%95%9C+%EB%8F%99%EC%98%81%EC%83%81%26leftpage%3D%26currentRead%3D1%26listUrl%3Dhttp%3A%2F%2Fwww.enclean.com%2Fbbs%2Fboard%2Fpublicucc.list.form.do%26searchType%3D1%26searchTe 결과물이 http://www.enclean.com/bbs/board/publicucc.view.form.do?msgId=71815&messageNumber;=0&boardId;=123&boardName;=&messageCategoryId;=0&startId;=&startPage;=&searchTitleFlag;=&searchRegisterNicknameFlag;=&lastPageFlag;=&lastPageFlag;=339&publicUcc;=publicUcc&publicCateId;=1052&leftPublicCateId;=1052&leftPublicCateName;=&leftChildPublicCateId;=&leftChildPublicCateName;=&publicCateName;=뻔Fun한 동영상&leftpage;=¤tRead;=1&listUrl;=http://www.enclean.com/bbs/board/publicucc.list.form.do&searchType;=1&searchText;= $this->input->post('url'); 사용 시 위의 결과물이 나옵니다. Input Class 중 xss_clean Method 에서 line 566 $str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str); & amp;key=value => &key;=value 이렇게 파싱을 합니다. &key=value => &key;=value 이렇게도 파싱을 하네요. 여기서 문제가발생하는데요 $str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1\\2", $str); & amp;key=value => &key=value 이렇게 파싱을 합니다. ====== 하지만 이게 url query 를 파싱하니늑 아니라 post로 넘어오 결과를 파싱하는 경우라 &0123456789abcdefghijklmnopqrstuvwxyz; => & 위의 경우처럼 사용자 임의로 입력된 내용도 위 처럼 변경될 문제가 있을 수 있겠죠... url 이니 결과물에서 str_replace(';=', '=', $str); 로 변경해도 되지만... 마음에 쏘옥 드는 해결방법이 없을까요? ㅡ.ㅡ |
|||
태그 | &,&,post,preg_replace,;= | ||
다음글 | 참조연산자 다시 질문드려봅니다. ^^; (2) | ||
이전글 | euc-kr을 사용할 경우 (3) | ||
헛발이
/
2010/03/10 16:28:14 /
추천
0
|
변종원(웅파)
/
2010/03/10 23:12:04 /
추천
0
푸름바람님 하이~ 변팀장입니다. ㅋ
|
봉남이
/
2010/03/14 17:47:50 /
추천
0
아 저도 동일한 문제를 겪은적 있습니다.
echo $this ->input->post( 'testurl' );
|
저는 이렇게 나오던데요..
http://www.enclean.com/bbs/board/publicucc.view.form.do?msgId=71815& messageNumber=0&boardId=123&boardName=&messageCategoryId=0& amp;startId=&startPage=&searchTitleFlag=& searchRegisterNicknameFlag=&lastPageFlag=&lastPageFlag=339& publicUcc=publicUcc&publicCateId=1052&leftPublicCateId=1052& leftPublicCateName=&leftChildPublicCateId=& leftChildPublicCateName=&publicCateName=뻔Fun한+동영상&leftpage=& currentRead=1&listUrl=http://www.enclean.com/bbs/board/publicucc.list.form.do&searchType=1&searchTe />
;가 없이 나오던데요...
혹시 버젼에 문제있는건 아니겠죠? 저는 1.7.2 사용중이구요..
post로 넘겨 받을때
이렇게 했거든요...
이렇게 해도 별 문제 없어 보이는데요....