Spring boot에서 JWT 구현(2)
·
Backend/Spring
2022.02.19 - [Backend/Spring] - Spring boot에서 JWT 구현(1) 이전 글 전 글에서 JWT에 대한 개념을 대충 정리를 했다면 이번에는 구현에 대해서 말해보겠습니다😃 JWT 로직 클라이언트에서 로그인을 합니다. 로그인 성공 시 Access token과 Refresh token을 만듭니다. 여기서 Access token은 만료시간을 30분으로 지정하고 Refresh token은 만료시간을 2주로 설정합니다. Refresh token은 Redis에 저장을 하고 클라이언트에게는 Access token을 보내줍니다. 로그인한 유저는 헤더에 Access token을 가지고 다니며 API 통신을 할 때 서버에서 만료된 토큰인지 체크를 합니다. 만료된 토큰일 경우 Access tok..
Spring boot에서 JWT 구현(1)
·
Backend/Spring
사이드 프로젝트를 하며 로그인 부분을 JWT로 구현을 했습니다. 그런데요,, 백엔드 말고도 프론트엔드를 같이 구현하며 많은 고민을 하고 삽질을 하여 누군가에게는 이 글이 도움이 되기를 바라며,, 기록을 해보겠습니다🐥 JWT(Json Web Token)란? 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로, payload는 몇몇 클레임(claim) 표명(assert)을 처리하는 JSON을 보관한다. 예를 들어 서버는 '관리자로 로그인됨'이라는 클레임이 있는 토큰을 생성하여 이를 클라이언트에 제공할 수 있다. 그러면 클라이언트는 해당 토큰을 사용하여 관리자로 로그인됨을 증명한다. 토큰은 크기가 작고 URL 안전으로 설계되어 있으며 특히 웹 브라우저 통합 인증(SSO) 컨텍스트에 ..
Spring boot에서 첨부파일 업로드 (Apache Tika 파일 변조 체크)
·
Backend/Spring
어느 날 대충 프로젝트 마무리가 지어지고 딩가딩가 놀고 있던 중 고객사에서 메일이 하나 날아왔다. 불길한 기운이 스멀스멀... 메일함을 열고 확인을 해보자 jsp 파일을 이름 변경하여 txt 형식으로 바꾸고 업로드하면 그대로 업로드가 된다는 내용이었다. 당시 경력 1년이 조금 넘은 나는 이런 내용이 있었구나 하며 뚱땅뚱땅 수정 작업을 하였고 이를 한참이나 지난 지금에야... 블로그에 정리를 하여 업로드를 한다ㅎㅎ.. Spring boot를 사용하였고 템플릿 엔진은 thymeleaf을 사용하였다. 따로 DB Connect는 하지 않았으며 파일 변조 체크 로직만 작성해보았다. 1단계 - 자바스크립트 이용 fileUpload 이렇게 html을 작성한 후 실행을 하고 jpeg, jpg, png 등 이미지 확장자..
Spring boot에 lucy-xss-servlet-filter 적용하기
·
Backend/Spring
XSS란 ? Cross Site Scripting (XSS)은 악의적인 스크립트가 웹 사이트에 주입되는 공격이다. 공격자가 웹 응용 프로그램을 사용하여 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 보낼 때 발생한다. XSS 공격은 웹 애플리케이션이 유효성을 검사하거나 인코딩하지 않고 생성하는 출력 내에서 사용자의 입력을 사용할 때 발생한다. 이 악성 스크립트는 해당 사이트에서 사용되는 쿠키, 세션 토큰, 다른 민감한 정보에 접근 할 수 있기 때문에 예방해야 한다. 출처 : https://owasp.org/www-community/attacks/xss/ 예방 방법 NAVER에서 개발한 ‘lucy-xss-servlet-filter’라는 서블릿 필터 기반의 라이브러리가 존재한다. ..