TIP게시판

제목 세션이 풀리는 문제
글쓴이 egoing 작성시각 2013/07/27 09:52:15
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15490   RSS
ajax 통신을 할 때마디 로그인이 풀리는 문제가 있었습니다. 
이 문제의 원인은 이렇습니다. 
 
1. CI는 5분에 한번씩 session id를 교체합니다. 세션 하이제킹을 방지하기 위해서 입니다. 
2. ajax 콜이 1초에 한번씩 일어납니다.
 
1번과 2번의 조건이 동시에 만족되는 상황에서 먼저 먼저 호출된 ajax 통신이 끝나기 전에 후행 ajax 호출이 시작되면 후행 ajax는 존재하지 않는 세션 아이디 값을 데이터베이스 등에서 조회하게 됩니다. 
 
이 문제를 해결하기 위해서 ajax 호출의 경우 세션 업데이트가 일어나지 않도록 처리했습니다. 
어차피 세션 업데이트는 페이지 전환 시에 일어나는 빈도로도 충분히 커버가 가능하다고 생각됩니다. 
 
찾아보니 아래와 같은 논의가 이미 있었네요. 여기의 코드를 사용했습니다. 
 
 
 다음글 SQLServer에서 database session 사... (2)
 이전글 curl로 로그인 후에 데이터 가져오기 (4)

댓글

박순철 / 2013/07/27 13:22:53 / 추천 0
 정보 감사합니다. ^^


한대승(불의회상) / 2013/07/30 12:42:43 / 추천 0
좋은 정보 감사 합니다. ^^
동도리군 / 2013/08/07 09:59:32 / 추천 0
아아 그렇군요
좋은정보 감사합니다.

요즘 한번씩 세션이 사라져서 언제 뜯어봐야하나 하고 있었거든요

kirrie / 2013/08/16 22:08:00 / 추천 0
 항상 이런건 아니겠고 session이 update되는 시점에서 운나쁘게 ajax call이 엉키면
그런 문제가 발생하겠군요. 좋은 팁 감사합니다. 이런건 원인 찾기가 되게 힘든데 정말 좋은 정보입니다.