그누보드 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개

채택된 답변
+20 포인트

SSL  설치를 하셨을까요? SSL을 설치하셔야 인증로그인이 원활히 되실겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

넵 ssl 적용 중입니다. 모바일 iframe 안쓰고 새창으로 띄우는 패치를 여기서 찾아서 적용하니 모바일에서는 일단 잘됩니다. 근데 데탑은 세션을 잃어 버리네요 ㅠㅠ
그렇다면 samesite 적용은 되어 있으실까요?
소스단에 samesite 적요이 안되면 세션이 제대로 적용이 안될수 있습니다.
https://sir.kr/g5_tip/13792 이걸 적용해봤는데 안되네요
이거 말고요 php로 된 부분으로 적용해 보셔야 합니다.
// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
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();
}
//==============================================================================

이패치 까지 되어있습니다. 모바일은 잘되는데 크롬만 안되네요 흐미

댓글을 작성하려면 로그인이 필요합니다.

원인을 찾았습니다.

 

우선 저는 관리자 아이디가 따로 있고 개인 계정이 따로 있습니다.

 

관리자 아이디로 로그인하고 로그아웃 후

 

개인계정으로 로그인 하고 인증을 받으려면 문제가 발생 합니다. 

 

인증 후 바로 세션이 끊기고 로그아웃 됩니다.

 

혹시나 하는 마음으로 쿠키를 지우고...

 

개인계정으로 로그인하고 인증을 받으면 문제가 발생하지 않습니다.

 

다시 한번 더블체크를 위해 또 관리자 계정으로 로그인 하고 로그아웃 후 개인 계정으로 시도하면 또 세션이 끊깁니다.

 

쿠키를 삭제하면 다시 멀쩡해지고요... 흠... 이거는 방법이 없을까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

버전이 낮으시네요.

크롬80,90 패치를 한번 진행보시고 ssl로 설치를 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

크롬 80, 90 패치는 되어있고 ssl 도 적용중입니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고