현재 상황은 이렇습니다.
학교에서 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]
어떤 방법을 사용하면 사용자의 세션값을 출력할 수 있을까요?
$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 대입. |
세션 매뉴얼 참고하세요. http://www.ciboard.co.kr/user_guide/kr/libraries/sessions.html#retrieving-session-data