본문 바로가기

728x90

TIL

[인증/보안][Session] 세션 기반 인증(Session-based Authentication) 로그인을 통해 인증 정보가 저장되고, 인증된 사용자가 어떤 식으로 웹사이트를 이용하는지 알아보자 사용자가 웹사이트에서 아이디 및 비밀번호를 이용해서 로그인 시도를 했을 때 정확한 아이디/비번 일 경우 서버는 인증에 성공했다고 판단하게 되고 다음에 인증을 필요로 하는 작업(장바구니에 물품 추가 등)을 요청할 경우 서버가 해당 유저는 인증에 성공했음을 알고 있다면 매번 로그인할 필요가 없다 이때 서버와 클라이언트에 각각 필요한 것으론 서버 : 사용자가 인증에 성공했음을 알고있어야 함 클라이언트는 인증 성공을 증명할 수단을 갖고 있어야함 사용자가 인증에 성공한 상태를 세션이라고 부른다 서버는 일종의 저장소에 세션을 저장한다 주로 in-mem.. 더보기
[인증/보안][Cookie] 쿠키란 어떤 웹사이트에 들어갔을 때, 서버가 일방적으로 클라이언트에 전달하는 작은 데이터를 말한다 쿠키는 서버에서 클라이언트(웹브라우저)에 데이터를 저장하는 방법의 하나이다 그러므로 서버가 원하면 서버는 클라이언트에서 쿠키를 이용하여 데이터를 가져올 수 있다. 즉 쿠키를 이용하는 것은 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만 의미하지 않고 클라이언트에서 서버로 쿠키를 전송하는 것도 포함된다. 특징으로는 서버가 클라이언트에 데이터를 저장할 수 있다. 서버는 쿠키를 이용하여 데이터를 저장하고 원할 때이 데이터를 다시 불러와 사용할 수 있다. 하지만 데이터를 저장한 이후 아무 때나 데이터를 가져올 수는 없다 데이터를 저장한 이후 특정 조건들을 만족하는 경우에만 다시 가져올 수 있다. 이런 조건들을 쿠.. 더보기
[Spring Security][기본구조] 핵심 포인트 Spring Security에서 지원하는 InMemory User는 말 그대로 메모리에 등록되어 사용되는 User이므로 애플리케이션 실행이 종료되면 InMember User 역시 메모리에서 사라진다. InMemory User를 사용하는 방식은 테스트 환경이나 데모 환경에서 사용할 수 있는 방법이다. Spring Security는 사용자의 크리덴셜(Credential, 자격증명을 위한 구체적인 수단)을 암호화 하기 위한 PasswordEncoder를 제공하며, PasswordEncoder는 다양한 암호화 방식을 제공하며, Spring Security에서 지원하는 PasswordEncoder의 디폴트 암호화 알고리즘은 bcrypt이다. 패스워드 같은 민감한(sensitive) 정보는 반드시 암호.. 더보기
[Spring Security][개요] 스프링 시큐리티란? Spring Security는 Spring MVC 기반 애플리케이션의 인증과 인가 기능을 지원하는 보안 프레임 워크로써, Spring MVC 기반 애플리케이션에 보안을 적용하기 위한 표준이다 Spring Security로 할 수 있는 보안 강화 기능 다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth2 기반 인증 ,LDAP 인증)의 사용자 인증 기능 적용 애플리케이션 사용자의 역할 에 따른 권한 레벨 적용 애플리케이션에서 제공하는 리소스에 대한 접근 제어 민감한 정보에 대한 데이터 암호화 SSL 적용 일반적으로 알려진 웹 보안 공격 차단 이외에도 SSO,클라이언트 인증서 기반 인증, 메서드 보안, 접근 제어 목록 같은 보안을 위한 대부분의 기능을 지원한다. Spring Secu.. 더보기
[인증/보안][기초] 학습목표 HTTP프로토콜 내용을 암호화 HTTPS는 중요한 정보가 유출이 되더라도 정확한 키 값이 없다면 어떤 내용인지 알 수 없다. 인증서 (Certificate) 데이터 제공자 신원 보장 , 도메인 종속 CA(Certificate Authority) 공인 인증서 발급 기관 비대칭 키 암호화 : 키a로 암호화 > 키b로만 복호화 가능 / 하나는 비밀로 숨겨두고 하나는 클라이언트에 제공 암호화와 hashing, salting 등의 개념을 이해할 수 있다. Hashing 어떠한 문자열에 "임의의 연산"을 적용하여 다른 문자열로 변환하는 것 1.모든 값에 대해 해시 값을 계산하는데 오래걸리지 않아야한다 2.최대한 해시값을 피해야하며, 모든 값은 고유한 해시값을 가진다 3.아주 작은 단위의 변경이라도 완전히 .. 더보기
맥북 m1 brew install 오류 -Rosetta 2 에러내용 : 실습중 mkcert를 설치를 하기 위해 Homebrew를 통해 설치하려고 brew install mkcert를 터미널에 입력했지만 Error메세지가 떳다 내용은 Rosetta 2 에러. Error를 보자마자 복붙으로 구글에 썻지만 죄다 영어에 무슨말인지 모르겠고 다시 Error메세지를 천천히 읽어본결과 arch -arm64 brew install mkcert 더보기
[Spring MVC] [애플리케이션 빌드/실행/배포] 학습 목표 Gradle 기반의 애플리케이션 실행 파일을 빌드할 수 있다. 인텔리제이 IDE를 이용한 빌드 Spring Boot은 Gradle 빌드 툴을 이용해 애플리케이션을 빌드할 수 있는 플러그인을 지원하기 때문에 Gradle task 명령을 통해 애플리케이션을 손쉽게 빌드할 수 있다. 우측 상단의 [Gradle] 윈도우 탭을 클릭 프로젝트 이름 > Tasks > build에서 :bootJar 또는 :build task를 더블 클릭 빌드가 정상적으로 종료되면 build/libs 디렉토리에 Jar 파일 하나 생성된다. :build 태스크를 실행하면 :assemble, :check 같이 Gradle에서 빌드와 관련된 모든 task들을 실행시킨다. 그리고 실행 가능한 Jar 파일 이외에 plain Jar 파.. 더보기
[Spring MVC] [Asciidoc] Asciidoc이란 Asciidoc은 Spring Rest Docs를 통해 생성되는 텍스트 기반 문서 포맷이다 Asciidoc 포맷을 사용해서 메모, 문서, 기사, 서적,E-Book,웹 페이지, 메뉴얼 페이지, 블로그 게시물 등을 작성할 수 있으며 Asciidoc 포맷으로 작성된 문서는 HTML, PDF, EPUB,메뉴얼 페이지를 포함한 다양한 형식으로 변환될 수 있다. 또한 Asciidoc은 주로 기술 문서 작성을 위해 설계된 가벼운 마크업 언어 이기도하다 Spring Rest Docs를 통해 만들어지는 문서 스니핏과 이 문서 스니핏을 사용하는 템플릿 문서는 Asciidoc포맷의 문서로 이루어져 있기 때문에 우리가 제공하는 API문서를 사용하는 이들이 직관적으로 API문서를 이해할 수 있는 수준 정도의.. 더보기

728x90