옮긴이 머리말 ix
베타리더 후기 xi
머리말 xiii
감사의 말 xvi
1.1. CHAPTER 1 웹 보안의 개요 1
1.1 보안 대책이 필요한 이유 1
__1.1.1 취약성은 왜 발생할까? 1
__1.1.2 비기능 요건의 중요성 2
1.2 웹 취약성의 종류와 동향 3
__1.2.1 보안 지침에서 확인하는 취약성의 종류와 동향 4
__1.2.2 보안 관련 정보 수집 6
COLUMN 기업이 취약성에 대처하는 방법 6
마무리 7
1.2. CHAPTER 2 실습 준비 9
2.1 준비 전 9
__2.1.1 실습 추천 환경 9
__2.1.2 실습에서 사용하는 소프트웨어 9
2.2 Node.js 설정하기 11
__2.2.1 Node.js 설치하기 11
__2.2.2 Node.js 설치 확인하기 12
__2.2.3 npm 설치 확인하기 12
2.3 Node.js + Express를 사용한 HTTP 서버 구축하기 13
__2.3.1 실습 준비와 Express 설치하기 13
__2.3.2 Node.js + Express로 HTTP 서버 구축하기 14
__2.3.3 정적 파일 전달하기 17
__2.3.4 호스트명을 임의로 설정해 로컬 HTTP 서버에 접속하기 18
COLUMN CommonJS와 ECMAScript Modules 19
마무리 19
1.3. CHAPTER 3 HTTP 21
3.1 HTTP 기초 21
__3.1.1 URL 22
__3.1.2 DNS 23
__3.1.3 TCP/IP 24
__3.1.4 HTTP 메시지 26
__3.1.5 HTTP 메서드 28
__3.1.6 상태 코드 29
__3.1.7 HTTP 헤더 30
__3.1.8 쿠키를 사용한 상태 관리 32
3.2 HTTP 실습하기 33
__3.2.1 GET과 POST로 데이터 전송하기 33
__3.2.2 상태 코드 확인 및 변경하기 38
__3.2.3 임의로 HTTP 헤더 추가하기 42
3.3 안전한 통신을 위한 HTTPS
빈틈없는 프런트엔드 개발자로 만들어주는 실용적인 보안 책
프런트엔드를 노리는 사이버 공격이 늘어나면서, 파이낸셜IT에서는 2019년 전체 사이버 공격의 40%가 XSS 공격이라고 밝혔다. 해커원에 따르면 XSS 취약점은 버그 현상금 프로그램에서 가장 일반적인 취약점 유형이다. 프런트엔드를 제대로 구현한다면 이러한 XSS 공격뿐만 아니라 여러 사이버 공격을 막을 수 있다. 이 책을 통해 취약성을 조사하고, 근본 원인을 이해하고, 자신의 애플리케이션을 사이버 공격으로부터 보호해보자. 책의 1장에서는 보안의 필요성과 최근 트렌드를 설명하고, 2장에서는 실습을 위한 개발 환경과 HTTP 서버를 구축한다. 3장에서는 HTTP 기본 지식과 HTTPS의 구조, 필요성 등을 살펴보고, 4장에서는 웹 보안의 기본 개념인 동일 출처 정책과 교차 출처 리소스 공유를 알아본다. 5장에서는 XSS, 6장에서는 CSRF, 클릭재킹, 오픈 리다이렉트를 설명한다.
7장에서는 로그인 기능을 중심으로 인증, 인가에 대해 알아본다. 8장에서는 자바스크립트 라이브러리를 사용할 때 발생하는 리스크와 이를 감소시키는 방법을 설명한다. 책을 읽고 난 뒤의 학습 방법과 웹 애플리케이션을 HTTPS로 사용할 수 있는 구조를 알아본다. 또한 한국어판 부록으로 웹 애플리케이션을 만들 때 참고할 수 있는 보안 체크리스트를 제공한다. 저자는 통신 기술이나 암호 기술 등 기초 원리나 기술 스펙 등의 설명은 과감히 생략하고 실무에서 사용하는 지식과 실습 위주로 설명한다. 프런트엔드 개발 실무에서 자신이 안전하게 개발하고 있는지 점검할 수 있는 보안 입문서로, 취약성 대책을 알아보고 최신 보안 정보도 얻을 수 있어 웹 보안을 알아보고 싶은 프런트엔드 개발자에게 좋은 지침서가 될 것이다.
주요 내용
- 보안의 필요성과 최신 보안 트렌드
- HTTP 기본 지식과 HTTPS의 구조 및 필요성
- 동일 출처 정책과 교차 출처 리소스 공유
- XSS, CSRF, 클릭재킹, 오픈 리다이렉트
- 로그