전체 글 375

61.04_[인증/보안] 기초_웹 보안 공격_22.11.17

>SQL Injection >SQL Injection 시나리오 >SQL Injection 대응 방안 1. 입력(요청)값 검증 2. Prepared Statement 3. Error Message 노출 금지 >화이트 리스트 >XSS >CSRF : Cross Site Request Forgery : 다른 사이트(cross-site)에서 유저가 보내는 요청(request)을 조작(forgery)하는 것 : 해커는 요청만 조작할 뿐, 직접 데이터를 접근할 수 없다. 따라서, 해커는 사용자에게 조작된 요청을 제공한다. : ex) 이메일에 첨부된 링크를 누르면 내 은행계좌의 돈이 빠져나감 >CSRF 공격 조건 1. 로그인의 방식에 쿠키를 사용해야 한다. : 쿠키로 어떤 유저인지 확인 가능해야하기 때문 2. 예측할 ..

61.03_[인증/보안] 기초_쿠키, 세션_22.11.17

>Cookie : 어떤 웹사이트에 들어갔을 때, 서버가 일방적으로 클라이언트에 전달하는 작은 데이터 (보통은 사용자에게 의사를 묻지 않음) : 서버가 웹 브라우저에 정보를 저장하고 불러올 수 있는 수단. >Cookie 목적 : HTTP의 특징인 Stateless를 보완하기 위한 도구 >Cookie 특징 : 삭제하지 않으면 정보가 사라지지 않음. : 장기간 저장해야하는 옵션을 클라이언트에 저장하기 적합 : 장바구니 유지, 로그인 상태 유지 등 >Cookie 전달 방법 : 서버의 헤더에 `Set-Cookie`로 쿠키의 이름, 값, 경로 등을 전달함. >Cookie Options -Domain : 서버와 요청의 도메인이 일치하는 경우 쿠키 전송 -Path : 서버의 요청의 세부 경로가 일치하는 경우 쿠키 전송..

61.02_[인증/보안] 기초_해싱_22.11.17

>인증/보안 과정 1. No Authentication (인증) : 인증 과정이 없다면 누구나 모든 정보에 접근이 가능함. 2. Authentication (Plaintext) : 누구나 모든 정보에 접근이 가능한 것을 막는 것이 목표 : 패스워드의 개념이 생김 : 패스워드를 입력하고 패스워드를 확인하여 해당 패스워드를 가진 유저에게만 정보에 접근이 가능하도록 함. : 하지만 패스워드를 중간에 가로챈다면 그대로 악용될 수 있음. 3. Encrytion (암호화) : 때문에 패스워드를 암호화할 필요가 생김. : 패스워드를 암호화하는 알고리즘은 수 없이 많고, 그 중 하나로 Hashing이 있음. 4. Authentication (Hashing) : 패스워드를 처음 생성하면 Hashing 을 통해 다른 문자..

61.01_[인증/보안] 기초_HTTPS_22.11.17

>인증 : 암호화를 이용하여 사람의 디지털 정체성을 확인하는 과정 >보안 : 여러 위협으로부터 정보를 보호하는 것 : 소 잃기전에 미리 최대한 튼튼한 외양간을 만드는 것이 목적 >HTTPS : HTTP + Secure : HTTP 프로토콜 내용을 암호화 >HTTPS 특징 1. 기밀성 : 메세지를 암호화함 ( 읽을 수 없음 ) 2. 무결성 : 메세지를 조작(수정) 할 수 없음 >인증서 : 데이터 제공자의 신원을 보장하는 문서 : CA라고 표현하는 기관들에서 인증서를 발급함. : OS 또는 브라우저에는 CA의 리스트들이 내장되어 있고, 이를 근거로 서버에서 제공받는 인증서가 인증된 CA에서 발급 된 문서인지 검증함. >CA : 인증서를 발급해주는 기관 : 각 브라우저마다 신뢰하는 CA의 인증서를 가지고 있다..

60_[Section 3] 회고_22.11.16

>갑분일기 회고 한 섹션에 한 달정도. 그렇게 벌써 3개의 섹션이 끝났다. 정말 이거 배우고 저거 배우다보니 한 달이 훅 지나갔다. 물론 다 소화하려면 조금 더 시간이 필요하겠지만, 그래도 섹션 3은 정말 알찼다고 생각한다. 가장 크게 느낀것은 프로그래밍 언어가 중요한 게 아니라 기술이 중요하다는 것이다. 나는 비전공자로 개발자의 길을 걷기로 결심하면서 무슨 언어를 배워야할지 이런 저런 자료를 많이 찾아봤다. '자바를 공부해볼까, 아니야 자바스크립트? 아니면 C를 해볼까...' 등등 그저 어떤 언어를 공부해야하나 고민을 많이 했다. 나처럼 비전공자로 시작했고, 유튜브나 온라인에 공개된 기타 학습자료로 시작한 사람들을 아마 대부분 나와 비슷하게 생각할거라고 생각한다. 근데 크게 의미있는 고민은 아니라는 점..

59.04_[Spring MVC] Spring 애플리케이션_실습_22.11.15

>실습 내용 Spring Boot Application(JPA)와 MySQL 을 연동하여 사용하기. >구현 내용 1. build.gradle 에 MySQL Connector Java 의존성 라이브러리 추가. 2. -server.yml 파일 설정 - spring:datasource:driver-class-name/url/username/password - ddl-auto: create-drop 등등 //MySQL 의 user 는 root 로 사용함. >문제 상황 ddl-auto: create-drop 옵션이 적용이 안된다고 파악됨. >문제 구체 상황 1. create 옵션은 기존 database(schema)에 존재하는 테이블을 drop하고 새로 create하는 옵션이다. 2. create-drop 옵션은..