사진은 학교 도서관에서 공부하다 보인 너무 예쁜 무지개 사진! - 학교 들어간지 2일차인가 3일차 정도밖에 안됐었는데 공부하겠다고 도서관가서 코테 문제 푼게 지금봐도 신기함.. 물론 작심삼일이었지만 예쁜 무지개를 얻었으니^0^
새로운 섹션에 들어왔다 드디어! 섹션3과는 독립적으로 공부할 수 있어 새로운 마음으로 다시 열심히 하게되었다. 평소에 많이 쓰는 보안 용어들에 대한 정확한 개념을 공부하니 더 재미있었던것 같기도 하다 ㅎㅎ
HTTP + Secure
HTTP 통신 과정에서 데이터 암호화해서 전송
+) HTTP 는 stateless
대칭키 방식 + 비대칭 키 방식
-> 대칭 키 방식: Client와 Server가 데이터 주고받을 때
-> 비대칭 키 방식: 대칭키를 주고받을 때
서버로부터 응답받을 때 인증서도 같이 받음! (서버의 신원 보증 역할)
인증서 제공은 CA(Certificate Authority)가
인증서는 CA의 비밀키로 암호화되어있고, 클라이언트는 CA의 공개키로 복호화해서 서버 믿을만한지 확인
=> 이렇게 CA를 통해 서버 인증하고 데이터 암호화하는 과정 = TLS(=SSL)
자바가 지원하는 인증서 형식
1.PKCS12
: 업계에서 널리 쓰임, 여러 인증서와 키 포함 가능, 암호로 보호된 형식
2.JKS
: Java환경으로 제한, 독점 형식
해시 함수
-항상 같은 길이의 문자열 리턴
-같은 문자열 IN -> 항상 같은 결과값 OUT
-다른 문자열 IN -> 항상 다른 결과값 OUT
쿠키 전달 방법
- Server가 Client에 Set-Cookie 라는 쿠키 보냄
-> Client가 Server에 Cookie 로 다시 보냄
-> Server는 이 쿠키 장기 저장
Domain
: 도메인 같아야 쿠키 전송Path
: 세부 경로 같아야 쿠키 전송MaxAge/Expires
: 유효 기간 지정해서 일정 시간 후 자동 소멸(e.g. PC방 로그아웃 안했을 때)HttpOnly
: 쿠키는
Secure
SameSite
: CORS 요청에 의해 메서드에 따라 쿠키를 보낼지 안보낼지 결정Cookie vs Session
- 쿠키
-> 쿠키는 그냥 http의 stateless함을 보완해주는 거
-> 클라이언트가 접속상태 저장
-> 유저가 삭제하지 않고, 유효기간 지나지 않는 이상 계속 저장됨
-> 쿠키 그 자체는 인증이 x- 세션
-> 접속상태 서버가 가짐(stateful)
-> 세션아이디를 쿠키로 전송
-> 서버가 접속 상태 저장
-> 하나의 서버에만 접속 상태를 가져서 분산에는 불리
입력(요청) 값 검증
- 화이트리스트 방식(모든 경우 차단 후 예외적으로 접근가능한 키워드 받아들임)Prepared Statement 구문 사용
- 사용자 입력을 SQL문으로부터 분리시키고 단순 텍스트로 적용Error MEssage 노출 금지
- 에러메시지로 DB정보 얻을 수 있으므로 에러내용 노출❌ 에러핸들링 필요