본문 바로가기

web59

HttpOnly + Secure Cookies 생성 Https 로 설정까지 마쳤다면 HttpOnly 쿠키를 설정해보자 로그인 시 Refresh 토큰발급을 HttpOnly 쿠키로 발급하고자한다. httpOnly란 Set-Cookie HTTP reponse 헤더에 포함되는 flag이다. cookie를 생성할 때 HttpOnly를 사용하는 것은 브라우저가 HttpOnly를 지원할 경우 쿠키는 클라이언트 측 스크립트에 접근할 수 없다. 악성 스크립트(XSS 공격)에 의한 위험을 완화시켜준다. 즉, http only 쿠키 방식으로 저장된 정보는 Javscript의 Document.cookieAPI로 접근이 불가능하다. 따라서 XSS 취약점 공격으로 담긴 값을 불러올 수 없다. 또한 CSRF 공격도 막을 수 있다. 1. 쿠키생성 ResponseCookie.from(.. 2023. 9. 12.
HTTPS(SSL) 적용 http 가 아닌 https 통신을 하기위해 로컬에 SSL 적용하는 법을 정리했다. 일반적인 정보는 Http로 통신해도 상관이 없지만, 개인정보나 ID/PW 같은 민감한 정보는 암호화를 통해 통신을 해야하기에 SSL을 적용해보고자 한다. Java에는 릴리스에 keytool 유틸리티가 포함되어 있으므로 굳이 따로 설치할 필요는 없다. 아래 명령어를 이용하여 만들자 keytool -genkey -alias bmex-ssl -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore bmaxkeystore.p12 -validity 3650 -alias bmex-ssl : alias 를 bmex-ssl 로 지정 -keystore bmaxkeystore.p12 : 키스토어를 .. 2023. 9. 11.
Maven VS Gradle 회사에서 신규로 프로젝트 진행중인데 수행사에서 개발스펙을 아래와같이 들고왔다. Java 17(OpenJDK) API : Spring boot 3.1.0(Maven 기반) 프론트사이트 : vue.js 3.x + nuxt.js 관리자사이트 : vue.js (bootstrap style) Mysql Ver 8.X 순간 두눈을 의심했다. Maven...????? 메 이 븐? ( 참고로 우리는 Gradle 로 진행해달라고 사전에 미리 요청한 상태 ) 그리고 프론트사이트는 Nuxt로 하면서 관리자는 또 왜 아니야? 뭐 따로 가는겨? stateless 하게 가달랬더니 maven 을 들고 온 게 좀 불안하다. (아 설마 JSP 쓰는거아니겠지^^) 그래도 이유가 있을까?.....싶어 Maven 의 장단점을 찾아보았다. .. 2023. 9. 7.
ErrorContoller 오류처리 SpringBoot Application 구동 후 별다른 작업없이 페이지에 접속해보면 아래와 같은 화이트레벨 에러페이지를 볼 수있다. Spring Boot는 오류가 발생하면 server.error.path 에 설정된 경로에서 요청을 처리하게 한다. Spring Boot에서는 기본적으로 BasicErrorController가 등록이 되어 해당 요청을 처리하게 된다. (HTML로 응답을 주는 경우 errorHtml에서 응답을 처리, JSON은 ErrorAttributes에서 가져온 모델로 응답을 생성) 페이지 문구에 '/error' 에 매핑된게 없다고 하니 직접 만들어주자. ErrorController의 구현체를 개발자가 bean으로 등록한다면 Spring Boot는 해당 빈을 먼저 찾아 BasicError.. 2023. 9. 6.