1부. 기초
1장. API 보안의 정의
1.1 비유: 운전면허 시험 응시
1.2 API 정의
1.2.1 API 방식
1.3 상황상의 API 보안
1.3.1 일반적인 API 배포
1.4 API 보안 요소
1.4.1 자산
1.4.2 보안 목표
1.4.3 환경 및 위협 모델
1.5 보안 메커니즘
1.5.1 암호화
1.5.2 식별 및 인증
1.5.3 접근 통제 및 권한
1.5.4 감사 로깅
1.5.5 속도 제한
연습 문제 정답
요약
2장. 보안 API 개발
2.1 Natter API
2.1.1 Natter API 개요
2.1.2 구현 개요
2.1.3 프로젝트 준비
2.1.4 데이터베이스 초기화
2.2 REST API 개발
2.2.1 신규 공간 생성
2.3 REST 엔드포인트 연결
2.3.1 사용
2.4 주입 공격
2.4.1 주입 공격 방지
2.4.2 권한을 통한 SQL 주입 완화
2.5 입력 유효성 검증
2.6 안전한 출력 생성
2.6.1 크로스 사이트 스크립팅 공격 악용
2.6.2 크로스 사이트 스크립팅 방지
2.6.3 보안 기능 구현
연습 문제 정답
요약
3장. Natter API 보안
3.1 보안 통제를 통한 위협 해결
3.2 가용성을 위한 속도 제한
3.2.1 구아바로 속도 제한
3.3 위조 방지를 위한 인증
3.3.1 HTTP Basic 인증
3.3.2 스크립트로 안전한 비밀번호 저장
3.3.3
3.3.4 Natter API에 사용자 등록
3.3.5 사용자 인증
3.4 암호화를 통한 데이터 비공개 유지
3.4.1 HTTPS 활성화
3.4.2 엄격한 전송 보안
3.5 책임 추적성을 위한 감사 로깅
3.6 접근 통제
3.6.1 인증 적용
3.6.2 접근 통제 목록
3.6.3 Natter에서 접근 통제 적용
3.6.4 Natter 공간에 신규 멤버 추가
3.6.5 권한 상승 공격 방지
연습 문제 정답
요약
2부
# 이 책의 대상 독자 #
다양한 환경에서 API를 보호하는 데 필요한 기술을 안내하기 위해 쓴 책이다. 기본 보안 코딩 기술을 다루는 것을 시작으로 인증 및 권한에 대한 기술을 심도 있게 살펴본다. 그 과정에서 속도 제한 및 암호화와 같은 기술을 사용해 공격으로부터 API를 강화할 수 있는 방법을 알게 될 것이다.
웹 API 구축 경험이 있고 API 보안 기술 및 모범 사례에 대한 지식을 향상시키려는 개발자를 위해 이 책을 썼다. 독자는 RESTful이나 다른 원격 API를 구축하는 데 익숙해야 하며, 편집기나 통합 개발 환경(IDE, Integrated Development Environment과 같은 프로그래밍 언어와 도구를 사용할 수 있어야 한다. 하지만 보안 코딩이나 암호화에 대한 사전 경험은 없다고 가정할 것이다. 이 책은 최신 API 보안의 적용 방식을 빠르게 알고 싶어하는 기술 설계자(technical architect에게도 유용하게 사용될 것이다.
# 이 책의 구성 #
이 책은 총 5부, 13장으로 구성돼 있다.
1부에서는 API 보안의 기본 사항을 설명하고, 책의 나머지 부분을 위한 보안의 기초적인 내용으로 구성한다.
1장에서는 API 보안에 대한 주제와 API 보안의 구성 요소를 정의하는 방법에 대해 소개하고, API 보안과 관련된 기본 메커니즘과 API의 위협 및 취약성을 어떻게 고려할 것인지에 대해 알아본다.
2장에서는 보안 개발과 관련된 기본 원칙과 이러한 원칙이 API 보안에 적용되는 방법에 대해 설명하고, 표준 코딩 방식을 사용해 일반적인 소프트웨어 보안 결함을 방지하는 방법에 대해 알아본다. 또한 API를 위해 책 전체에 걸쳐 코드 샘플의 기초가 되는 Natter라는 예제 애플리케이션을 소개한다.
3장에서는 이 책의 나머지 부분의 모든 기본 보안 메커니즘 개발에 대해 살펴보며, 기본 인증(authentication, 속도 제한(rate-limiting, 감사 로깅(audit logging, 접근 통제(a