Spring Boot 요청 매개변수 검증 구현하기
스프링 부트 애플리케이션에서 interceptor와 filter를 활용하여 요청 매개변수의 유효성을 검증하는 방법을 알아본다.
1. HttpServletRequestWrapper 재정의하여 본문 읽기
요청 본문(request body)을 읽기 위해 HttpServletRequestWrapper를 상속하는 클래스를 만든다. 파일 업로드 케이스도 함께 처리한다.
import org.springframework.web.multipart.support.Standar ...
7월 26일 18:19에 게시됨
웹 애플리케이션 상태 관리를 위한 Cookie와 Session 활용 전략
사용자 추적의 필요성과 HTTP의 한계
웹 서비스가 사용자의 이전 활동이나 신원을 기억하지 못한다면, 매번 로그인을 다시 하거나 장바구니가 초기화되는 등 심각한 불편을 초래하게 됩니다. 이러한 기능을 전문 용어로 사용자 추적(User Tracking)이라고 합니다.
서버 관점에서 사용자를 식별하는 가장 직관적인 방법은 사용자별 정보를 담은 객체를 생성하는 것이며, 이 ...
7월 21일 08:16에 게시됨
SQL 인젝션 취약점 완벽 가이드: 원리, 공격 유형, 방어 전략
서론
SQL 인젝션은 웹 애플리케이션 보안에서 가장 흔하고 위험한 취약점 중 하나다. 본 문서는 SQL 인젝션의 원리와 다양한 공격 기법, 그리고 효과적인 방어 방법을 체계적으로 정리한다.
SQL 인젝션의 원리와危险性
SQL 인젝션은 공격자가 악의적인 SQL 코드를 입력값으로 전달하여 데이터베이스가 의도하지 않은 명령을 실행하도록 만드는 공격手法다. 사용자의 입력 ...
7월 20일 21:14에 게시됨
파일 업로드 우회 기법
파일 업로드 시 보안 제한을 우회하는 다양한 방법들을 소개합니다. 여기서는 PHP 웹셸을 예시로 사용하겠습니다.
1. 프론트엔드 JS 파일 확장자 제한
웹 페이지에서 JavaScript를 통해 특정 확장자만 업로드할 수 있도록 제한하는 경우:
JS 코드의 파일 확장자 검사를 비활성화합니다.
허용된 형식으로 파일을 업로드한 후, 패킷을 잡아 filename을 스크립트 형식으 ...
7월 4일 21:29에 게시됨
Spring Security 설정 가이드
@EnableWebSecurity 어노테이션
@EnableWebSecurity 어노테이션은 WebSecurity 모드를 활성화하는 역할을 담당합니다. 이는 Spring Security에서 웹 보안을 설정하기 위해 반드시 필요한 어노테이션입니다.
Spring Boot를 사용하지 않는 일반 Spring Web MVC 프로젝트에서는 해당 어노테이션을 명시적으로 추가해야 합니다. 반면, Spring Boot 기반의 Spring Web MVC 애플 ...
6월 24일 00:55에 게시됨
브라우저의 동일 출처 정책 문제 해결 방법
현대 웹 애플리케이션에서 프론트엔드와 백엔드가 별도의 도메인으로 운영되는 경우, 클라이언트가 다른 도메인으로 요청을 보낼 때 브라우저는 기본적으로 보안상의 이유로 요청을 차단합니다. 이 현상을 '크로스 오리진 문제'라고 하며, 이를 해결하기 위해 CORS (Cross-Origin Resource Sharing) 표준이 도입되었습니다.
CORS는 브라우저와 서버 모두가 지원 ...
6월 19일 17:01에 게시됨