본문 바로가기

Backend18

Spring boot에서 첨부파일 업로드 (Apache Tika 파일 변조 체크) 어느 날 대충 프로젝트 마무리가 지어지고 딩가딩가 놀고 있던 중 고객사에서 메일이 하나 날아왔다. 불길한 기운이 스멀스멀... 메일함을 열고 확인을 해보자 jsp 파일을 이름 변경하여 txt 형식으로 바꾸고 업로드하면 그대로 업로드가 된다는 내용이었다. 당시 경력 1년이 조금 넘은 나는 이런 내용이 있었구나 하며 뚱땅뚱땅 수정 작업을 하였고 이를 한참이나 지난 지금에야... 블로그에 정리를 하여 업로드를 한다ㅎㅎ.. Spring boot를 사용하였고 템플릿 엔진은 thymeleaf을 사용하였다. 따로 DB Connect는 하지 않았으며 파일 변조 체크 로직만 작성해보았다. 1단계 - 자바스크립트 이용 fileUpload 이렇게 html을 작성한 후 실행을 하고 jpeg, jpg, png 등 이미지 확장자.. 2021. 11. 14.
Spring boot에 lucy-xss-servlet-filter 적용하기 XSS란 ? Cross Site Scripting (XSS)은 악의적인 스크립트가 웹 사이트에 주입되는 공격이다. 공격자가 웹 응용 프로그램을 사용하여 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 보낼 때 발생한다. XSS 공격은 웹 애플리케이션이 유효성을 검사하거나 인코딩하지 않고 생성하는 출력 내에서 사용자의 입력을 사용할 때 발생한다. 이 악성 스크립트는 해당 사이트에서 사용되는 쿠키, 세션 토큰, 다른 민감한 정보에 접근 할 수 있기 때문에 예방해야 한다. 출처 : https://owasp.org/www-community/attacks/xss/ 예방 방법 NAVER에서 개발한 ‘lucy-xss-servlet-filter’라는 서블릿 필터 기반의 라이브러리가 존재한다. .. 2021. 7. 11.
[Spring boot] Swagger Swagger란? 자바 API 문서 자동화 중 하나입니다. 개발자가 REST API 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 돕는 오픈 소스 소프트웨어 프레임워크입니다. Swagger에는 자동화된 문서와 코드 생성, 테스트 케이스 생성 지원이 포함됩니다. Swagger 사용 이유 개발이 끝나면 추후 유지보수를 위해 API Spec에 대한 문서화 작업이 필요합니다. 이미 개발이 끝난 프로젝트를 유지보수할 경우 API에 대해 더욱 쉽게 이해할 수 있기 때문입니다. 또한, 개발 후 개발자가 API 문서를 작성하기 번거롭기 때문에 나온 프레임워크입니다. Spring boot에서 Swagger 설정 1) dependency 추가 (maven을 사용하였습니다.) io.springfox springfox-s.. 2020. 5. 20.
[JAVA] JVM 구조, Memory Leak 회사에서 class 파일 반영 후 서버를 내렸다가 다시 올리는 순간 Memory Leak이라는 메시지가 나오면서 서버가 올라가지 않는 현상이 일어났었다. 당시 상황상 뭔가 이상해서 백업 파일을 다시 원복 시켰는데도 Memory Leak.. 내 코드의 문제도 아니었고 다른 코드의 문제로 결국 다른 서버를 다 내려버리고 다시 올렸더니 그때서야 되었다. 신입이라면 모든지 다 찾아보고 공부를 해봐야지 하며 근 일주일간 틈틈이 JVM과 Memory Leak에 대해서 조사를 해보았다. 우선 자바의 메모리 관리는 가비지컬렉터가 하므로 JVM도 알아야 했으므로 JVM 설명으로 시작을 해보겠당. 1. JVM (Java Virtual Machine) - 자바 가상 머신. - 자바 바이트 코드(. class)를 실행하는 주.. 2020. 4. 11.