본문으로 건너뛰기

네이버 아이디 로그인 보안 강화

PHP 8 · GODO25
변경 파일 수: 6개
변경 파일 목록
6
변경 파일 코드
추가삭제
Controller/Front/Intro/AdultController.php+8-1
변경 전AdultController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
$this->setData('naverUrl', $naver->getLoginURL($returnUrl));
 
 
 
 
 
 
 
}
$this->setData('useNaverLogin', $useNaver);
 
 
변경 후AdultController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
// redirect_uri는 등록 콜백URL과 동일한 고정 경로 (strict match), 동적값은 state로 이관
$naverRedirectUri = $request->getDomainUrl() . '/member/naver/naver_login.php';
$naverState = $naver->createState([
'referer' => $request->getDomainUrl() . parse_url($request->getRequestUri(), PHP_URL_PATH),
'returnUrl' => $returnUrl,
'naverType' => '',
]);
$this->setData('naverUrl', $naver->getLoginURL($naverRedirectUri, $naverState));
}
$this->setData('useNaverLogin', $useNaver);
 
 
Controller/Front/Intro/MemberController.php+8-1
변경 전MemberController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
$this->setData('naverUrl', $naver->getLoginURL($returnUrl));
 
 
 
 
 
 
 
}
$this->setData('useNaverLogin', $useNaver);
$siteLink = new SiteLink();
 
변경 후MemberController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
// redirect_uri는 등록 콜백URL과 동일한 고정 경로 (strict match), 동적값은 state로 이관
$naverRedirectUri = $request->getDomainUrl() . '/member/naver/naver_login.php';
$naverState = $naver->createState([
'referer' => $request->getDomainUrl() . parse_url($request->getRequestUri(), PHP_URL_PATH),
'returnUrl' => $returnUrl,
'naverType' => '',
]);
$this->setData('naverUrl', $naver->getLoginURL($naverRedirectUri, $naverState));
}
$this->setData('useNaverLogin', $useNaver);
$siteLink = new SiteLink();
 
Controller/Front/Member/LoginController.php+8-1
변경 전LoginController.php
if ($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
$this->setData('naverUrl', $naver->getLoginURL($returnUrl));
 
 
 
 
 
 
 
}
 
$kakaoPolicy = \App::getInstance(KakaoLoginPolicy::class);
 
변경 후LoginController.php
if ($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
// redirect_uri는 등록 콜백URL과 동일한 고정 경로 (strict match), 동적값은 state로 이관
$naverRedirectUri = $request->getDomainUrl() . '/member/naver/naver_login.php';
$naverState = $naver->createState([
'referer' => $request->getDomainUrl() . parse_url($request->getRequestUri(), PHP_URL_PATH),
'returnUrl' => $returnUrl,
'naverType' => '',
]);
$this->setData('naverUrl', $naver->getLoginURL($naverRedirectUri, $naverState));
}
 
$kakaoPolicy = \App::getInstance(KakaoLoginPolicy::class);
 
Controller/Front/Member/Naver/NaverLoginController.php+6-3
변경 전NaverLoginController.php
$loginReturnURL = MemberUtil::getLoginReturnURL();
}
 
 
 
 
$js = "
if (typeof(window.top.layerSearchArea) == 'object') {
parent.location.href='" . $loginReturnURL . "';
} else if (window.opener === null) {
location.href='" . $loginReturnURL . "';
} else {
opener.location.href='" . $loginReturnURL . "';
self.close();
}
";
 
변경 후NaverLoginController.php
$loginReturnURL = MemberUtil::getLoginReturnURL();
}
 
// location.href JS 문자열 컨텍스트 인젝션 방지: URL을 JSON 리터럴로 인코딩
$loginReturnUrlJs = json_encode((string) $loginReturnURL, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
 
$js = "
if (typeof(window.top.layerSearchArea) == 'object') {
parent.location.href=" . $loginReturnUrlJs . ";
} else if (window.opener === null) {
location.href=" . $loginReturnUrlJs . ";
} else {
opener.location.href=" . $loginReturnUrlJs . ";
self.close();
}
";
 
Controller/Mobile/Intro/AdultController.php+8-1
변경 전AdultController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
$this->setData('naverUrl', $naver->getLoginURL($returnUrl));
 
 
 
 
 
 
 
}
$this->setData('useNaverLogin', $useNaver);
 
 
변경 후AdultController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
// redirect_uri는 등록 콜백URL과 동일한 고정 경로 (strict match), 동적값은 state로 이관
$naverRedirectUri = $request->getDomainUrl() . '/member/naver/naver_login.php';
$naverState = $naver->createState([
'referer' => $request->getDomainUrl() . parse_url($request->getRequestUri(), PHP_URL_PATH),
'returnUrl' => $returnUrl,
'naverType' => '',
]);
$this->setData('naverUrl', $naver->getLoginURL($naverRedirectUri, $naverState));
}
$this->setData('useNaverLogin', $useNaver);
 
 
Controller/Mobile/Intro/MemberController.php+8-1
변경 전MemberController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
$this->setData('naverUrl', $naver->getLoginURL($returnUrl));
 
 
 
 
 
 
 
}
$this->setData('useNaverLogin', $useNaver);
 
 
변경 후MemberController.php
if($useNaver) {
$naver = new GodoNaverServerApi();
$scripts[] = 'gd_naver.js';
// redirect_uri는 등록 콜백URL과 동일한 고정 경로 (strict match), 동적값은 state로 이관
$naverRedirectUri = $request->getDomainUrl() . '/member/naver/naver_login.php';
$naverState = $naver->createState([
'referer' => $request->getDomainUrl() . parse_url($request->getRequestUri(), PHP_URL_PATH),
'returnUrl' => $returnUrl,
'naverType' => '',
]);
$this->setData('naverUrl', $naver->getLoginURL($naverRedirectUri, $naverState));
}
$this->setData('useNaverLogin', $useNaver);