diff --git a/keyword/chapter05/keyword.md b/keyword/chapter05/keyword.md
new file mode 100644
index 0000000..64f2e5e
--- /dev/null
+++ b/keyword/chapter05/keyword.md
@@ -0,0 +1,576 @@
+# 리프레시 토큰 기반의 안전한 접근 제어 전략과 소셜 로그인
+
+## 📚 블로그 읽고 Content Security Policy(CSP) 정리해보기 🍠
+
+### 서버에서 HTML 문서를 응답할 때 CSP를 적용하려면 어떤 HTTP 응답 헤더를 설정해야 하나요? 블로그에 나온 Express.js 코드 예시를 기반으로 설명해보세요
+
+1. 설정해야 하는 헤더
+ ```jsx
+ Content-Security-Policy: 정책 내용
+ ```
+2. Express.js 예시
+
+ ```jsx
+ app.get("/", (req, res) => {
+ // CSP 헤더 설정
+ res.setHeader(
+ "Content-Security-Policy",
+ "default-src 'self'; script-src 'self' cdn.jquery.com; img-src 'self' img.myshop.com",
+ );
+
+ res.send(`
+
+
+ Hello!
+
+
+
+ `);
+ });
+ ```
+
+ ```jsx
+ // 논스와 같이 쓸 경우
+ app.get("/", (req, res) => {
+ const nonce = crypto.randomUUID(); // 요청마다 논스 생성
+
+ res.setHeader(
+ "Content-Security-Policy",
+ `script-src 'nonce-${nonce}'; object-src 'none'; base-uri 'none'`,
+ );
+
+ res.send(`
+
+
+ Hello!
+
+
+
+ `);
+ });
+ ```
+
+---
+
+### `default-src 'self'` 설정은 브라우저에게 어떤 보안 정책을 의미하나요? 또한 `'self'` 값은 어떤 출처를 포함하거나 제외하나요?
+
+1. 브라우저에게 어떤 의미일까?
+ 별도로 지정된 지시어가 없는 모든 리소스는 **현재 사이트와 같은 출처에서만 불러올 수 있다**는 규칙이다.
+ ```jsx
+ Content-Security-Policy: default-src 'self'
+ ```
+ ```jsx
+ ✅ 허용 — 같은 출처
+ https://kasa.com/script.js
+ https://kasa.com/style.css
+ https://kasa.com/logo.png
+
+ ❌ 차단 — 다른 출처
+ https://cdn.jquery.com/jquery.js
+ https://evil.com/hack.js
+ ```
+2. `'self'`가 포함하는 것
+ 같은 **프로토콜 + 도메인 + 포트** 조합
+ 현재 사이트가 `https://kasa.com` 이라면,
+ ```jsx
+ ✅ 포함
+ https://kasa.com/script.js → 같은 출처
+ https://kasa.com/img/cat.png → 같은 출처
+ ```
+3. `'self'`가 제외하는 것
+ ```jsx
+ ❌ 제외
+ http://kasa.com/script.js → 프로토콜이 다름
+ https://sub.kasa.com/script.js → 서브도메인은 다른 출처
+ https://kasa.com:8080/script.js → 포트가 다름
+ https://other.com/script.js → 도메인이 다름
+ ```
+
+---
+
+### 블로그에 나온 악성 스크립트(``)를 주입했을 때 CSP가 어떻게 동작하는지 네트워크 탭과 콘솔 메시지 측면에서 설명해보세요.
+
+1. 상황
+ 설정한 CSP
+ ```jsx
+ res.setHeader("Content-Security-Policy", "default-src 'self'");
+ ```
+ input에 아래를 입력
+ ```jsx
+
+ ```
+2. 네트워크 탭
+ `hacker.com`으로 네트워크 요청이 발생하지 않는다.
+ 인라인 스크립트 자체가 실행되지 않기에 `fetch` 요청도 발생하지 않는 것!
+3. 콘솔 메시지
+ 브라우저 콘솔에는 Content Security Policy 경고가 표시된다. “다음 지시자를 위반했기 때문에 인라인 스크립트가 실행되지 않도록 차단했다” 메시지를 볼 수 있다.
+
+---
+
+### 기본 CSP 설정에서 인라인 스타일이 차단된다고 했습니다. 블로그 예시 중 `width:600px`이 적용되지 않는 이유를 설명하세요.
+
+`default-src 'self'`를 설정하면 스크립트뿐만 아니라 인라인 스타일도 기본적으로 차단된다. (`style-src`의 fallback으로도 동작하기 때문)
+
+---
+
+### 구글 애널리틱스, 카카오맵, 외부 API 등이 CSP 때문에 차단될 수 있다고 했습니다. 이러한 현상을 "건물 보안을 강화한다"는 비유와 연결해 설명해보세요.
+
+> “건물 보안을 강화한다고 **모든 출입문을 잠가버리면,** 정작 직원들도 출입하지 못하는 상황이 생긴다.”
+
+CSP도 마찬가지이다.
+
+```jsx
+보안을 위해 default-src 'self' 설정
+→ 외부 출처 전부 차단
+→ 구글 애널리틱스 🚫 차단됨
+→ 카카오맵 🚫 차단됨
+→ 웹폰트 🚫 차단됨
+```
+
+이처럼 악성 스크립트뿐만 아니라 **정상적인 외부 리소스까지 전부 막혀버린다**.
+
+👉 필요한 출처만 허용 목록에 추가해야 한다.
+
+> 모든 문을 잠그되 **직원증(허용 목록)을 가진 사람만 출입 가능**하도록 설정
+
+---
+
+### Report-Only 모드에서는 실제 리소스 실행이 차단되지 않습니다. 그 대신 브라우저와 서버에서 각각 어떤 동작을 수행하나요?
+
+1. 브라우저 동작
+ 정책을 위반해도 **차단하지 않고 그냥 실행**한다.
+ ```jsx
+ 악성 스크립트 주입
+ → 차단 안 함
+ → 그냥 실행
+ → hacker.com으로 fetch 요청 발생
+ → 쿠키 실제로 유출됨
+ ```
+ 대신 콘솔에 경고 메시지를 띄운다.
+2. 서버 동작
+ 브라우저가 정책 위반을 감지하면 **서버의 `/report` 경로로 JSON 보고서를 전송**한다.
+ ```jsx
+ {
+ "effective-directive": "style-src-elem",
+ "blocked-uri": "inline",
+ "document-uri": "https://example.com"
+ }
+ ```
+ 서버는 이 보고서를 받아서 콘솔에 출력하거나 저장한다.
+3. 일반 CSP와 비교하기
+ | | 일반 CSP | Report-Only |
+ | ----------- | -------------- | ----------- |
+ | 리소스 실행 | 차단 | 허용 |
+ | 위반 보고 | 선택적 | 항상 보고 |
+ | 용도 | 실제 보안 적용 | 정책 테스트 |
+
+---
+
+### CSP만으로는 CSRF를 막을 수 없다고 했습니다. 블로그에 정리된 다른 보안 조치들(SameSite 쿠키, X-Frame-Options 등) 중 2가지를 설명하세요.
+
+1. SameSite 쿠키
+
+ 쿠기가 **어떤 요청에서 전송될지**를 제어하는 속성이다.
+
+ CSRF 공격은 공격자 사이트에서 피해자 사이트로 요청을 보낼 때 쿠키가 자동으로 따라가는 걸 악용한다.
+
+ ```jsx
+ 공격자 사이트 → 피해자 은행 사이트로 요청
+ → 브라우저가 은행 쿠키 자동 전송
+ → 사용자인 척 송금 요청 성공 🚫
+ ```
+
+ `Samesite`속성을 설정하면,
+
+ ```jsx
+ Set-Cookie: sessionId=abc123; SameSite=Strict
+ ```
+
+ 다른 사이트에서 온 요청에는 쿠키를 아예 안 보낸다.
+
+ ```jsx
+ 공격자 사이트 → 피해자 은행 사이트로 요청
+ → SameSite 설정으로 쿠키 전송 안 됨
+ → 인증 실패 → 공격 차단 ✅
+ ```
+
+2. Sanitize
+
+ 사용자 입력값에서 **악성 코드를 제거하는 과정**이다.
+
+ 공격자가 댓글에 이걸 입력하면,
+
+ ```jsx
+
+ ```
+
+ Sanitizing을 하면 이렇게 변환된다.
+
+ ```jsx
+ <script>fetch(...)</script>
+ ```
+
+ 브라우저는 `
+