본문 바로가기
반응형

Backend8

[Spring] Spring Boot XSS Filter 생성하기 XSS란? XSS(Cross Site Scripting)란 사이트 간 스크립팅이라는 웹 보안 취약점입니다. 악의적인 사용자가 취약한 웹 애플리케이션에 스크립트를 삽입해 공격하는 것입니다. XSS 공격 유형 Reflected XSS : URL을 통해 Script 실행 Stored XSS : Script를 서버에 저장하여 요청/응답 과정을 통해 실행 DOM Based XSS : 피해자의 브라우저가 DOM생성할 때 악성 script 실행 위험성 쿠키 및 세션정보 탈취 악성 프로그램 다운 유도 의도하지 않은 페이지 노출 이 글에서는 제가 XSS 보안 취약점을 해결하기 위한 과정을 공유하려 합니다. 조사 결과, XSS 방지할 수 있는 다양한 후보가 있었습니다. (결론부터 말하자면, 일반적인 케이스에서는 4.번이 .. 2023. 12. 31.
[Spring] 세션 ID 값이 계속 바뀌는 현상 정말 오랜만에 블로그에 글을 포스팅하게 되었네요. 맨날 올려야지 올려야지 하면서 시간 없다는 핑계로 안 올렸던 것 같습니다. 문제점 업무를 하던 도중, 현재 근무하고 있는 회사에서 세션 관련 에러를 해결해달라는 문의가 들어왔습니다. 현재 근무 중인 회사는 이커머스 A 회사이고, B사인 PG사와 연동하여 결제 수단을 등록하는 상황에서 발생하는 문제였습니다. A 회사의 결제 수단 관리 탭 클릭 B 회사의 인증 창으로 리다이릭팅 되며 B 회사 결제 수단 등록 창 로드 카드 정보 입력 후 A 회사의 결제수단 관리 창으로 복귀 세션 만료, 에러 발생 세션 만료 에러는 세션의 정보가 바뀌거나, 실제로 세션이 만료되어 발생하는 에러로 파악하여, 크롬 개발자 도구를 통해 확인해보니 A 회사에서 발급하는 쿠키의 세션 I.. 2022. 10. 26.
[Spring] 생성자 주입을 사용해야 하는 이유 인턴을 시작한 초기 단계에, Spring 프로젝트 코드 분석을 하다가 신기한 점을 발견해서 질문을 한 기억이 있습니다. Spring프로젝트에서 Controller를 작성할 때, 저는 항상 @Autowired 어노테이션을 사용해 Service의 의존성을 주입하고, 하나의 객체에서 주입 한 객체를 사용하곤 했습니다. 코드 분석을 하는 도중, @Autowired 어노테이션 없이 Service 객체를 주입받아서 사용하는 Controller를 발견해서, 질문을 하게 되었습니다. 이 Controller는 어떻게 @Autowired 어노테이션 없이 서비스 객체를 주입받아 사용하나요? 돌아온 답변은 다음과 같았습니다. @RequiredArgsConstructor 어노테이션과, 생성자 주입 방식에 대해 공부해보세요 질문.. 2021. 12. 5.
[개발 공부] Spring "Command line is too long" 에러 해결 방법 프로젝트 배포를 위해 테스트를 진행하면서 Spring Boot로 개발한 백엔드 애플리케이션을 실행하려고 Run 버튼을 클릭했는데, 다음과 같은 에러가 발생했습니다. 처음 보는 에러라 당황했지만, 같이 개발업무를 해주시는 선배 개발자분께서 해결책을 알려주셨습니다. 해결 방법 프로젝트의 .idea폴더 > workspace.xml 파일에 다음처럼 추가해줍니다. 그리고 다시 어플리케이션을 Run 해주면 정상적으로 잘 실행됩니다. 2021. 9. 27.
[Spring] AOP 사용 방법 (예제 코드) 흔히 스프링의 특징으로 DI, IoC, POJO, AOP 등을 대부분 언급합니다. AOP는 Aspect Oriented Programming의 약자입니다. 한글로 하면 관점 지향 프로그래밍이죠. 하지만 이름만 들어서는 AOP에 대해 제대로 알 수가 없고 예측 조차 힘들었습니다. AOP에 대한 개념적인 내용은 다음 포스팅에 작성하였으니 참고하여주세요. https://programforlife.tistory.com/103 [Spring] Spring 기초 이번 포스팅에서는 인턴을 하게 된 회사에서 진행해준 신입사원 교육 중, Spring의 기초에 대해 정리해보려 합니다. Spring Boot로 프로젝트를 진행했던 경험이 있어서 Spring의 특징에 대해 어느 정도 programforlife.tistory.c.. 2021. 9. 9.
[Spring] DI/IoC 이번 포스팅에서는 스프링의 특징 중 하나인 DI/IoC에 대해서 글을 작성해보려고 합니다. DI와 IoC에 대한 개념적인 얘기는 이 포스팅을 참고해주시면 됩니다. https://programforlife.tistory.com/103 [Spring] Spring 기초 이번 포스팅에서는 인턴을 하게 된 회사에서 진행해준 신입사원 교육 중, Spring의 기초에 대해 정리해보려 합니다. Spring Boot로 프로젝트를 진행했던 경험이 있어서 Spring의 특징에 대해 어느 정도 programforlife.tistory.com 해당 포스팅에서는 DI가 뭔지, 예제 코드를 가지고 설명을 했지만, 실제로 사용하는 코드와 다른, 개념을 설명하기 위한 코드로 설명했습니다. 이번 포스팅에서는 실무와 유사한 정도의 코드.. 2021. 9. 8.
[Spring] Spring 기초 이번 포스팅에서는 인턴을 하게 된 회사에서 진행해준 신입사원 교육 중, Spring의 기초에 대해 정리해보려 합니다. Spring Boot로 프로젝트를 진행했던 경험이 있어서 Spring의 특징에 대해 어느 정도 알고 있다고 생각하고 있었는데, 이 교육을 듣고 Spring에 대해 한층 더 자세히 알게 되었습니다. Spring의 등장 Spring이 등장하기 전, 자바 개발자들은 EJB(Enterprise Java Beans)를 주 프레임워크로 사용했습니다. 2002년도에 로드 존슨이 출판한 도서 "Expert One-on-One J2EE Design and Development"에 선보인 코드가 Spring의 근간이 되었습니다. 이 도서를 읽은 개발자들이 코드가 책으로만 존재하기에는 너무 아깝다며 로드 존.. 2021. 7. 21.
[Spring] Spring VS Spring Boot 차이점 Spring Framework Spring은 Java 기반의 오픈소스 Back-end 프레임워크입니다. 다음은 Spring 공식 문서의 일부분으로 Spring이 왜 Spring으로 불리는지 설명한 부분입니다. Whatever happened next, the framework needed a name. In the book it was referred to as the “Interface21 framework” (at that point it used com.interface21 package names), but that was not a name to inspire a community. Fortunately Yann stepped up with a suggestion: “Spring”. His re.. 2021. 5. 21.
반응형