그누보드 KCP 본인인증시 데스트탑에서 세션에 문제가 있어 보입니다. 채택완료
데스크탑에서 본인인증시 세션이 증발하는 현상이 있어 보입니다.
사용중인 버전은
그누보드 5.3.3.3(패치 G5.5.7.2) 버전
입니다.
하두 본인인증이 안되어서 추적해보니
plugin/kcpcert/kcpcert_form.php 에 자바스크립트 alert 으로 $member['mb_id'] 를 찍어보면 정상으로 나옵니다.
그리고 인증이 끝나고나서
plugin/kcpcert/kcpcert_result.php 에 자바스크립트 alert 으로 $member['mb_id'] 를 찍어보면 빈값이고
정보수정을 누르면... 로그인이 풀려버립니다...
어딜 어떻게 더 봐야 할까요???
답변 3개
답변에 대한 댓글 5개
소스단에 samesite 적요이 안되면 세션이 제대로 적용이 안될수 있습니다.
if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
// Chrome 80 버전부터 아래 이슈 대응
// https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss
if(!function_exists('session_start_samesite')) {
function session_start_samesite($options = array())
{
global $g5;
$res = @session_start($options);
// IE 브라우저 또는 엣지브라우저 또는 IOS 모바일과 http환경에서는 secure; SameSite=None을 설정하지 않습니다.
if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){
return $res;
}
$headers = headers_list();
krsort($headers);
foreach ($headers as $header) {
if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
$header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
header($header, false);
$g5['session_cookie_samesite'] = 'none';
break;
}
return $res;
}
}
session_start_samesite();
} else {
@session_start();
}
//==============================================================================
이패치 까지 되어있습니다. 모바일은 잘되는데 크롬만 안되네요 흐미
댓글을 작성하려면 로그인이 필요합니다.
원인을 찾았습니다.
우선 저는 관리자 아이디가 따로 있고 개인 계정이 따로 있습니다.
관리자 아이디로 로그인하고 로그아웃 후
개인계정으로 로그인 하고 인증을 받으려면 문제가 발생 합니다.
인증 후 바로 세션이 끊기고 로그아웃 됩니다.
혹시나 하는 마음으로 쿠키를 지우고...
개인계정으로 로그인하고 인증을 받으면 문제가 발생하지 않습니다.
다시 한번 더블체크를 위해 또 관리자 계정으로 로그인 하고 로그아웃 후 개인 계정으로 시도하면 또 세션이 끊깁니다.
쿠키를 삭제하면 다시 멀쩡해지고요... 흠... 이거는 방법이 없을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인