질문 Q #10805
CSRF / AJAX / IE
에볼스라엣 2013-09-12 00:47:59
 안녕하세요.
ci를 만나 잘먹고 사는 개발자인데요.

기본적으로 크롬으로 퍼블리싱+개발하고 크로스브라우징 위해서 간간히 ie7~10까지 돌려보는정도인데요.
얼마전  ie에서 csrf ajax post가 다 500을 뿜는 현상을 발견했네요. ㅠㅠ

기본적으로 

 
$.ajax({ 
 type : "POST",
 url : url,
 data : { "<?=$this->security->get_csrf_token_name()?>" : "<?=$this->security->get_csrf_hash()?>", data : $('#data').val() },
 dataType : "json",
와 같은 방식으로 사용했는데요.

찾아보니 쿠키 값으로 해결본 분들이 계셔서 쿠키를 적용하려고 보니
익스플로러에선 csrf_cookie 값 자체가 없네요. ㅠㅠ
당연히 아래와 같이 폼오픈을 사용한 인풋값으로도 해봤지만 결과는 같습니다.

$("#csrf_token_name").val();

id,닉네임 체크는 물론 여러곳에서 ajax 통신으로 해결했고, 그걸 일종의 프레임으로 개발한 사이트가 한두개가 아니라
시정이 시급합니다.

참고로 2.1.3 버전이고 html boilerplate + ci 합본 버전을 사용했습니다.
고수님들의 도움 부탁드립니다. ㅠㅠ
답변 2
#1 에볼스라엣 2013-09-12 01:03:10
 확인해보니 특정PC 에서 그런것같은데 어찌확인해야할지요 ^^;;
#2 criuce 2013-09-12 08:58:52
ie에서 cookie_name 설정에 제약이 있지 않나요?
cookie name에 언더바를 제거해보세요.