khris'log

Programmer, IRCitizen.

email: khris@khrislog.net
twitter: @KHRISMIZER

Posts tagged XHR

Oct 18

갑자기 보안보안한척하는 IE 9를 대처하는 방법

현재 새로 들어갈 게임 플랫폼에서 Internet Explorer 9에서만 게임이 아니 된다고 한다. 아놔.

확인해보니 XHRIE 9가 다 씹어버리고 있었고 실컷 구글링 해 보니 딴거 다 안먹고 JSONP를 쓰라고 한다. JSONP에 대한 정의는 궁금한분이 알아서 찾으세요. IE 9은 너무 보안보안해서 이전 버전들과는 다르게 되게 깐깐하게 논다고 한다. 어쨌든 요청을 죄다 그냥 JSON꼴로 넘기던 난 죽은거다.

그렇다고 검색 결과에 나오는 몇몇 사람들처럼 IE 8 에뮬레이션 모드로 지정하는 짓은 절대 하지 마라. 그냥 IE 9 지원을 하지 말던가.

뭐 하여튼 그래서 JSON 데이터를 JSONP 요청에 맞도록 지정해 준 콜백 함수 이름을 먹여서 반환하는 가장 간단한 구문은 다음과 같다.

echo $_GET['callback'] . '(' . $jsonData . ');';

근데 이거 쓰지 마라. 인젝션(Injection) 당할 위험이 있으며 HTTP 응답 헤더에 컨텐트 타입도 제대로 안넣어주는 나쁜 코드다.

라고 Using JSONP Safely라는 글에 적혀있더라. 링크는 jQuerygetJSON 메서드 페이지의 리플란에서 찾았다 jQuery 최고! 는 됐고, 링크를 타고 들어가면 안전하게 JSONP 요청에 맞도록 반환해주는 함수가 있으니 그걸 사용하도록 하자. 앞의 잘못된 코드는 크롤링 해서 실컷 복붙만 하는 사람들 낚이라고 써놨다. 여러분은 그러지 말자.

나처럼 개뿔도 모르고 웹 입문해서 삽질하는 사람들이 이런 허접한거라도 보고 나 같이 삽질하지 않았으면 한다.


이런 허접한 글이라도 써야겠다고 쓴게 1년이 좀 넘었을거다. 근데 개뿔도 안썼다. 운- 지-!


나는 스스로 병x이란걸 인정하고 싶지 않아서 시야가 좁고 지식이 적음을 게임 프로그래밍계 탓으로 돌리고 있는데, 아니 뭐 사실 어느정도 맞지않나, 지금처럼 실눈만 뜬 상태에서도 별게 다 보인다. 도대체 언제 무엇을 어떻게 해야하나. 는 내가정하는거죠. 근데 못정하겠음.