Programming/Spring
[Spring/Chrome 80이상 이슈/결제] sameSite=None 적용
생각하는로뎅
2020. 9. 25. 21:11
반응형
0. 쿠키값 아래와 같이 세팅
관리하는 세션 키 값으로 세팅해야 한다.
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { response.setHeader("Set-Cookie", "JSESSIONID=" + request.getRequestedSessionId() + "; path=/; Secure; SameSite=None"); }
** 아래 내용은 분석하면서 정리한 내용 **
1. 현상
- 크롬 브라우저에서 결제 후, 메인 화면으로 튕기는 현상
2. 원인
1) 크롬 80 이상 보안 이슈.
2) 결제 게이트웨이 페이지를 통해서 hyfresh 사이트로 접속 시, JSESSIONID이 사라지는 현상 발생.
3. 해결 방법
- 쿠키 값에 있는 JSESSION을 sameSite none으로으로 수정.
4. 해결 과정
1) 결제되는 로그와 결제가 안 되는 로그를 분석했습니다.
결제 게이트웨이 페이지를 통해서 hyfresh 사이트로 접속 시,JSESSIONID이 사라져 있는 현상을 발견했습니다.
(https://m.hyfresh.co.kr/biz/pay/payAuthReturn.pay)
2) 많은 외국 개발자들이 이 현상을 접하고 있고, 이슈화 되었습니다.
https://support.google.com/chrome/thread/62111771?hl=en (구글 크롬 help 사이트)
3) 위 글 중, php 관련 내용이었지만, 세션 값을 SameSite=none으로 설정해주고 있는 것을 볼 수 있었습니다. 그래서, 저희 JSESSION을 sameSite=none으로 바꿔보았더니 문제없이 결제가 이루어졌습니다.
5. 참고사항
- sameSite=none; Secure로 설정되어 있기 때문에, 로컬에 https 설정이 안 되어 있으면 Secure를 빼야합니다.
반응형