자유게시판

제목 특수문자 처리의 고찰
글쓴이 kaido 작성시각 2012/08/20 09:56:36
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14084   RSS
 최근 특수문자의 대란(?) 이라고 불릴 만한 사건이 있었습니다.

특수문자를 기본적으로 스크립트 단에서 막자는 취지였다가

기획팀의 요구에 의해서 그냥 특수문자 허용으로 넘겼다가 생긴 문제였지요.

특수문자가 가능하다 = 태그와 스크립트 문이 가능하다

즉 XSS 가 가능 하다.

가 되어버려서 허겁지겁 막았는데...

이게 또 꼬이기 시작 한것입니다.


입력할때 htmlspecialchars 로 넣자! 그럼 불러오는건 놔두면 되는것 아니냐? 로 해서

htmlspecialchars 로 입력을 받아 보니 특수문자 검색이 문제가 생겨버린것이죠.

그리고 문자 글자수 제한 셀때 htmlspecialchars 가 들어가 있으면 글자 바이트 세는것도 틀려집니다.

<  한문자가 < 4문자가 되니깐요.
그래서 글자수 셀때는   htmlspecialchars_decode   를 넣었더니만
다시 특수문자가 풀려서 들어가더군요;


제가 수습할때 쯤엔 이게 서로 엉켜있었습니다;

문제는 이게 수정할때도 아무생각없이   htmlspecialchars  로 그냥 감싼것도 있고 아닌것도 있고...

단순히 게시판 한개가 아니라 여기저기 신경쓸곳이 많기 때문에 정신 없이 복잡해 졌습니다.



그래서 특수문자에 대해서 한번 생각해볼 필요가 생기더군요.

과연 어떤 처리가 베스트 일까?

특수문자 검색도 되면서 글자숫자 제한도 잘 되고...

입력 수정 보기 를 왓다갓다 해도 별 탈이 없고...


일단은 입력은 그대로 받고 보여줄때만  htmlspecialchars  로 감싸서 보여주자.... 갈려 합니다만..

이럴경우 json 으로 ajax 처리 할때 문제가 생길수도 있겠단 생각이 들더군요.
[json 의 특문 처리 문제 혹은 ajax로 html로 받고 싶을때]

이전에도 어퍼스트로피  '  <- 요놈 때매 문제가 생겼었거든요.


여러분들은 어떤 정책으로 처리 중이신가요?


태그 특수문자
 다음글 오빤 MB 스퇄~~~ (1)
 이전글 리버스엔지니어링 교육듣고있습니다. (5)

댓글

한대승(불의회상) / 2012/08/20 10:40:30 / 추천 0
코드이그나이터 쓰면서.. 
$this->input->post('content', TRUE);
로 사용하고 신경 안쓰고 있습니다. ^^
kaido / 2012/08/20 12:25:53 / 추천 0
마... 만능 해결키 인건가요?!

이럴때마다 어린왕자가 떠오릅니다 ㅜㅜ

소중한 것은 언제나 가장 가까운곳에 있다. 
- 어린왕자-

찾는 것은 언제나 가까운곳에 있다.
-메뉴얼-

한대승(불의회상) / 2012/08/20 12:28:32 / 추천 0
^^...

잘 만들어진 바퀴를 다시 만들 필요는 없다..

라던가???
니삼 / 2012/08/20 16:17:27 / 추천 0
 ci를 쓰면서 보안에 신경을 덜 쓸수있게 되어 매우 감사하죠 ㅋ
인스카 / 2012/08/20 16:23:35 / 추천 0
CI 쓰다가 Wordpress에서 구현되어 있는 것 수정하려고 하면 골 아픕니다..ㅜㅜ