반응형
❤ 김춘장이의 위키백과 - 나만의 공부 기록 Tistory ❤
수업 전 이야기
내일부터는 프로젝트 진행을 한다
1월 17일까지 기한 ppt필요
중요한 포인트
- 주제와 분야를 잘 정해야 하며 프로그램 벤치마킹하는 것도 좋다, 작명은 진지하게 해야 한다
- 구현 가능한 기술 스택을 설정해야 한다 , 최대한 짧게 가기
- 실제 실습, 연구한 결과물을 참고로 설정한다
- 디자인에 자신이 없다면 최대한 깔끔하게 가자
세션과 쿠키
쿠키
- 클라이언트 측(사용자 브라우저)에 저자오디는 작은 데이터 조각이다
- 웹 서버가 사용자의 브라우저에게 보내는 정보이며 브라우저는 이 정보를 로컬에 파일 형태로 저장한다
- 쿠키는 사용자가 다시 해당 웹 서버에 접속할 때 이 쿠키 정보를 함께 서버에 전송하여 사용자를 식별하거나 상태 정보를 유지하는데 사용한다
세션
- 서버 측에서 사용자 정보를 저장하는 방법이다
- 사용자가 웹 서버에 접속해 있는 동안 서버는 사용자의 상태를 유지하기 위해 세션 ID를 할당한다
- 이 세션 ID는 쿠키를 사용하여 클라이언트 측에 전달되거나 URL로 전달될 수 있다
- 보통 로그인과 같이 보안이 필요한 정보를 저장할 때 사용된다
- 서버가 직접 관리하기 때문에 쿠키보단 보안성이 높다
간단 정리
물리적으로 종료된 상태에서 논리적 연결이 유지되도록 구현할 수 있게 활용한다
서버에 쿠키와 세션을 생성하고 클라이언트에게 쿠키값을 전달한다
공통점으론 정보를 저장한다는 점이다.
중요 정보는 세션에 저장하고 공통된 정보(퍼블릭 정보)는 쿠키에 저장해야 한다
쿠키값 여부는 컨트롤러에서 해도 되지만 인터셉트 영역에서 구현하는 것이 컨트롤러에 부하를 막을 수 있다
중요한 것은 세션의 영역은 애플리케이션 전체이다
방법
1. HttpSession 선언
2. Method 사용
3. 주요 메서드
1. .setAttribute // 세션 추가
2. invalidate // 세션 날림
3. removeAttribute // 세션초기화
4. getAttribute // 세션 가져오기
주의
세션을 사용할 때 주로 발생되는 취약점SQL Injection
을 주의해야 한다
만약 select * from where id=? and pass=?
로 쿼리를 했을 때
입력한 pass에 or 1=1이 있는 경우 전체 사용자의 데이터가 반환된다
이러한 해킹 공격인 SQL Injection
이라고 하는데 이 부분을 막기 위해 보통
비밀번호에 백틱이나 ', ‘’ 같은 특수문자를 사용하지 않게 정책을 정해놓는다.
처리로직
- 입력된 ID, PASS를 가져온다
- DB에 ID로만 검색 한 뒤 일치된 ID를 모두 가져온다
- 컨트롤러 단에서 pass일치 여부를 확인한다
- 일치된 정보일 경우 세션을 부여하고 아닐 경우 처리하지 않는다
- 클라이언트에게 쿠키를 전달한다
세션에 응용
- 로그인 처리 로직
- 권한을 부여
- 세션 시간 정의 // 추후 구글에 검색해야 한다
인터셉터
인터셉터의 통과는 지나가는 것이다.
들어올 때 나갈 때 모두 다 검사한다
클라이언트 요청(URL)은 필터 -> 디스펙처 -> 인터셉터 -> 컨트롤러로 진행되는데
인터셉터에서 특정한 규칙을 기준으로 컨트롤러에게 전달을 할 것인지 안 할 것 인지 관리하는 것이다
주요점 : 필터와 같이 해야 한다
반응형
'🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 > ⠀⠀⠀⠀ Sᴘʀɪɴɢ' 카테고리의 다른 글
20231229🌱 눈이 오는 새해의 스프링 (0) | 2024.01.01 |
---|---|
20231228🌱 게시판 만들기 (0) | 2024.01.01 |
20231227🌱 즐겨봐요 봄날의 스프링 (0) | 2023.12.28 |
20231226🌱 다시 한번 시작해요 스프링 (0) | 2023.12.27 |
20231222🌱 Bean, Container, DI, Mapper, Mybatis (1) | 2023.12.27 |