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’라는 서블릿 필터 기반의 라이브러리가 존재한다. ..
[Spring boot] Swagger
·
Backend/Spring
Swagger란? 자바 API 문서 자동화 중 하나입니다. 개발자가 REST API 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 돕는 오픈 소스 소프트웨어 프레임워크입니다. Swagger에는 자동화된 문서와 코드 생성, 테스트 케이스 생성 지원이 포함됩니다. Swagger 사용 이유 개발이 끝나면 추후 유지보수를 위해 API Spec에 대한 문서화 작업이 필요합니다. 이미 개발이 끝난 프로젝트를 유지보수할 경우 API에 대해 더욱 쉽게 이해할 수 있기 때문입니다. 또한, 개발 후 개발자가 API 문서를 작성하기 번거롭기 때문에 나온 프레임워크입니다. Spring boot에서 Swagger 설정 1) dependency 추가 (maven을 사용하였습니다.) io.springfox springfox-s..
[Spring boot] 다중 데이터베이스 연결
·
Backend/Spring
회사에서 문서 작업을 하며 mybatis에서 다중 데이터베이스 연결을 시도했다. 전 프로젝트를 진행하면서 JPA를 이용해서도 연결을 했었는데 그건 나중에 포스팅 하도록 하겠다. 1. 프로젝트 구조 config 폴더는 모든 설정을 관리하는 폴더입니다. 'OneDataSourcrConfig'는 첫번째 데이터베이스 연결에 관한 설정이고, 'TwoDataSourceConfig'는 두번째 데이터베이스입니다. 각각 데이터베이스에 대한 Controller, Service, DAO, Domain은 폴더를 만들어 관리합니다. 간단하게 'test1', 'test2'로 설정했습니다. 가장 중요한 점은 Config 폴더의 위치입니다. Config에는 Domain, Mapper.xml 폴더 경로를 입력하는 코드가 있기 때문에 ..