본문 바로가기
728x90

BackEnd/Spring31

csrf 토큰 CSRF(Cross-Site Request Forgery) 토큰은 CSRF 공격을 방지하기 위한 보안 메커니즘입니다. CSRF 공격은 사용자의 인증 정보를 악용하여 의도하지 않은 요청을 수행하게 만드는 웹 보안 취약점입니다.1. CSRF 공격의 작동 원리CSRF 공격은 사용자가 신뢰하는 웹 애플리케이션에 대해 공격자가 의도한 요청을 강제로 수행하게 만듭니다. 예를 들어:사용자가 은행 웹사이트에 로그인한 상태입니다.공격자가 CSRF 취약점을 이용하여 악성 스크립트나 링크를 사용자의 브라우저에서 실행합니다.사용자의 브라우저는 이미 저장된 쿠키를 자동으로 포함하여 요청을 보냅니다.요청이 합법적으로 보이기 때문에 서버는 이를 처리합니다.결과적으로, 사용자는 자신도 모르게 공격자의 의도에 따라 행동하게 됩니다.2.. 2024. 12. 23.
bean 프링(Spring) 프레임워크에서 Bean은 스프링 IoC(Inversion of Control) 컨테이너에 의해 관리되는 객체를 의미합니다. Bean은 애플리케이션의 핵심 구성 요소로, 스프링 컨테이너가 생성, 관리, 소멸을 책임집니다.Bean의 주요 특징객체 관리: Bean은 스프링 컨테이너가 객체의 생명 주기를 관리합니다.객체 생성의존성 주입초기화 및 소멸 처리의존성 주입(DI): Bean 간의 의존 관계를 설정하고 주입합니다.싱글톤(Singleton) 기본 설정: 스프링 Bean은 기본적으로 싱글톤으로 관리됩니다. 하나의 컨테이너 내에서는 동일한 Bean 인스턴스가 재사용됩니다.필요에 따라 @Scope 어노테이션을 사용해 프로토타입 등 다른 스코프를 지정할 수 있습니다.구성 메타데이터: Bean은.. 2024. 12. 23.
Spring Security 스프링 시큐리티 설치하기스프링 시큐리티를 사용하기 위해 다음과 같이 build.gradle 파일을 수정해 보자.[파일명:build.gradle](... 생략 ...)dependencies { (... 생략 ...) implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'}(... 생략 ...)스프링 시큐리티와 이와 관련된 타임리프(Thymeleaf) 라이브러리를 사용하도록 설정했다. build.gradle 파일을 선택한 후 마우스 오른쪽 버튼을 눌러 [Gradle → Refresh Gradle .. 2024. 12. 23.
Spring Boot Validation 항목설명@Size문자 길이를 제한한다.@NotNullNull을 허용하지 않는다.@NotEmptyNull 또는 빈 문자열("")을 허용하지 않는다.@Past과거 날짜만 입력할 수 있다.@Future미래 날짜만 입력할 수 있다.@FutureOrPresent미래 또는 오늘 날짜만 입력할 수 있다.@Max최댓값 이하의 값만 입력할 수 있도록 제한한다.@Min최솟값 이상의 값만 입력할 수 있도록 제한한다.@Pattern입력값을 정규식 패턴으로 검증한다. 2024. 12. 18.
질문 등록 이번에는 질문을 등록하는 기능을 만들어 보자. 질문 목록에 질문 등록을 위한 버튼을 추가하고 질문을 등록할 수 있는 화면을 만들어 질문 등록 기능을 완성해 보자. 질문 등록 버튼과 화면 만들기 질문 등록을 할 수 있도록 먼저 질문 목록 페이지에 [질문 등록하기] 버튼을 만들어야 한다. question_list.html 파일을 열고 다음과 같이 한 줄의 코드를 추가하여 질문 목록 아래에 버튼을 생성하자.[파일이름:/templates/question_list.html] (... 생략 ...) 질문 등록하기 ...  요소를 추가하여 부트스트랩의 btn btn-primary 클래스를 적용하면 다음과 같이 화면에 버튼 형태로 보인다.[질문 등록하기] 버튼을 한번 클릭해 보자. 아마.. 2024. 12. 18.
layout layout:decorate 표준 HTML 구조 살펴보기다음 예로 표준 HTML 문서의 구조를 살펴보자.[표준 HTML 구조의 예](... 생략 ...)곧이어 작성할 템플릿의 일부이다. 여기서는 눈으로만 살펴보자.표준 HTML 문서의 구조는 앞의 예처럼 html, head, body 요소가 있어야 하며, CSS 파일은 layout.html은 모든 템플릿이 상속해야 하는 템플릿으로, 표준 HTML 문서 구조로 정리된 기본 틀이 된다. body 요소 안의 은 layout.html을 상속한 템플릿에서 개별적으로 구현해야 하는 영역이 된다. 즉, layout.html 템플릿을 상속하면  영역만 수정해도 표준 HTML 문서로 작성된다.question_list.html에 템플릿 상속하기question_list.ht.. 2024. 12. 17.
728x90