인증/보안 - 기초 2: CSRF, Token
2021. 11. 25. 16:53
SE Bootcamp 내용 정리
CSRF(Cross Site Request Forgery) CSRF는 여러가지 보안 취약점 공격 중 하나이다 다른 사이트(cross-site)에서 유저가 보내는 요청(request)을 조작(forgery)하는 것 ex) 이메일에 첨부된 링크를 누르면 내 은행 계좌의 돈이 빠져나감 해커가 직접 데이터를 접근할 수는 없다 → 다른 사이트이기에 response에 직접 접근할 수는 없음 (해커가) CSRF 공격을 하기 위한 조건 * 쿠키를 사용한 로그인 - 유저가 로그인했을 때, 쿠키로 어떤 유저인지 알 수 있어야 함 * 예측할 수 있는 요청/ 파라미터를 가지고 있어야 함 - request에 해커가 모를 수 있는 정보가 담겨 있으면 안됨 (해커로 빙의해) Get 요청으로 CSRF 공격한다면? ex) 고객 A가 ..
인증/보안 - session 기반 인증 구현하기 실습
2021. 11. 25. 16:22
SE Bootcamp 내용 정리
session 기반 인증(session-based authentication) 구현 실습 학습 목표 * 세션의 개념을 이해 -> 접속 상태를 서버가 가지는(stateful) 인증 방식 * 쿠키와 세션은 서로 어떤 관계이며, 각각이 인증에 있어서 어떤 목적으로 존재하는지 이해하기 -> 쿠키는 단순히 무상태성을 보완해주는 도구일 뿐, 인증이 아니다 -> 세션은 인증 과정에 쿠키를 이용해서 인증 작업을 하고 세션을 열어준다고 보면 된다 -> 접속 상태와 권한 부여를 위해 세션 아이디를 쿠키로 전송하므로... * 세션의 한계를 이해 -> 서버에서 인증 정보를 가지므로 서버가 부담을 가짐(성능 저하 이슈) -> 분산에 불리 -> 여전히 쿠키를 사용하는 방식이므로 XSS공격에 취약점 존재 getting starte..
인증/보안 - 기초 1: HTTPS, Hashing, Cookie, Session
2021. 11. 24. 20:50
SE Bootcamp 내용 정리
인증/보안 – 기초 1 HTTPS HTTP + Secure → HTTP 프로토콜 내용을 암호화(보안성) HTTP 요청을 SSL 혹은 TLS 알고리즘을 이용해서 내용을 암호화 TLS는 SSL의 진화버전?이라고 보면 되는데, 통상 같이 부른다 // HTTPS의 특징 * 인증서 * CA * 비대칭키 암호화 인증서(Certificate) 데이터 제공한 서버가 정말로 데이터를 보낸 서버가 맞는지 확인하는 용도 데이터 제공자 신원 보장 도메인 종속 - 도메인 정보가 들어가 있음 기본 로직은 다음과 같다 1. Client가 인증서(domain 정보 포함)와 함께 서버에 요청 2. 서버는 인증서와 함께 응답을 전송 3. Client는 인증서에 작성된 domain과 응답(res) 객체에 작성된 domain을 비교 → d..
데이터베이스 - MVC 패턴 연습
2021. 11. 19. 21:05
SE Bootcamp 내용 정리
데이터베이스 MVC 디자인 연습: cmarket database MVC - 3티어 아키텍쳐에서 주로 사용 일종의 디자인 패턴이며, 디자인 패턴은 아주 많고 유용한 코드 집합이라 보면 된다. * Controller: `비즈니스 로직` 의 관점으로 보면 → 프로그램을 통해서 어떤 문제를 해결할 것인가? → 어떻게 문제를 풀 수 있을지 글로 나열 할 때, 글 하나하나가 `기능`이 되고, 기능이 `비즈니스 로직`이 되고, 로직은 `컨트롤러`로 들어감 * Model: 데이터베이스와 통신하는 역할 * View: 보통 Client의 역할 사전 작업 mySql에 사용할 database 명으로 데이터베이스를 미리 생성하자 > CREATE DATABASE 사용할데이터베이스명; 스키마와 더미 데이터들도 미리 작업 env 파..