CI 묻고 답하기

제목 session_id 출력
카테고리 CI 2, 3
글쓴이 hul123 작성시각 2016/12/11 19:19:06
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 22487   RSS

현재 상황은 이렇습니다.

학교에서 xss에 대한 실습 과제를 내주셨는데, 제가 만든 페이지의 세션id가 데이터베이스에도 잘 저장되고,

크롬 쿠키 에디터 상에서도 잘 보입니다.

구현하고 하는 것은 사용자가 로그인을 하고, 특정 게시물을 열람했을 때 팝업창으로 세션id를 띄워야합니다.

게시물에는 echo '<script>alert(document.cookie);</script>'; 라는 스크립트가 작성되어있습니다.

하지만 스크립트의 결과로 아무 값도 출력이 안됩니다.

 

$config['sess_driver'] = 'database';

$config['sess_cookie_name'] = 'ci_session'

;$config['sess_expiration'] = 0

;$config['sess_save_path'] = 'ci_sessions';

$config['sess_match_ip'] = TRUE;

$config['sess_time_to_update'] = 300;

$config['sess_regenerate_destroy'] = TRUE;

 

데이터베이스 테이블: [id,ip_address,timestamp,data]

 

어떤 방법을 사용하면 사용자의 세션값을 출력할 수 있을까요?

 다음글 Ajax comment 입력시 코멘트 추가 (4)
 이전글 댓글 ajax code:500 error:Intern... (3)

댓글

변종원(웅파) / 2016/12/11 20:48:32 / 추천 0

세션 매뉴얼 참고하세요. http://www.ciboard.co.kr/user_guide/kr/libraries/sessions.html#retrieving-session-data

$this->session->userdata('item'); 이 명령어가 사용자가 세션으로 저장한 item의 값을 가져오는 함수입니다.
hul123 / 2016/12/12 08:26:43 / 추천 0

$this->session->userdata('item'); ​ 명령으로 var_dump를 찍어봤는데 NULL 값이 뜹니다.

$this->session->all_userdata(); 명령 역시 의도하지 않은 결과가 출력됩니다. 아래와 같은 값이 나오네요.

{ ["__ci_last_regenerate"]=> int(1481502519) ["is_login"]=> bool(true) ["nickname"]=> string(6) "tester" ["email"]=> string(14) "test@naver.com" }

여전히 session_id 는 출력하지 못하고 있습니다.

아래는 세션에 userdata를 설정하는 코드 부분입니다.

$newdata = array(
         'is_login' => TRUE,
         'nickname' => $user->nickname,
         'email' => $user->email
     );
     $this->session->set_userdata($newdata);

// 세션 uesrdata로서 is_login,nickname,email 대입.

 

알브레드 / 2016/12/12 09:45:14 / 추천 0
코드이그나이터에서 자동생성하는 session id를 말씀하신다면 쿠키헬퍼의 get_cookie('ci_session') 함수를 사용해서 값을 가져오면 될 것 같습니다.