목차 일부
지은이 머리말 ... 3
옮긴이 머리말 ... 4
CHAPTER 1 웹 어플리케이션 취약성이란?
1.1 취약성이란, '악용할 수 있는 버그' ... 14
1.2 취약성이 있으면 안 되는 이유 ... 16
1.3 취약성 발생의 원인 ... 20
1.4 보안 버그와 보안 기능 ... 21
1.5 책의 구성 ... 22
CHAPTER ...
더보기
목차 전체
지은이 머리말 ... 3
옮긴이 머리말 ... 4
CHAPTER 1 웹 어플리케이션 취약성이란?
1.1 취약성이란, '악용할 수 있는 버그' ... 14
1.2 취약성이 있으면 안 되는 이유 ... 16
1.3 취약성 발생의 원인 ... 20
1.4 보안 버그와 보안 기능 ... 21
1.5 책의 구성 ... 22
CHAPTER 2 실습 환경 구축
2.1 실습 환경의 개요 ... 24
2.2 VMware Player 설치 ... 26
2.3 가상 머신 설치 및 동작 확인 ... 29
2.4 Fiddler 인스톨 ... 38
CHAPTER 3 웹 보안의 기초: HTTP, 세션 관리, SOP
3.1 HTTP와 세션 관리 ... 46
COLUMN : 쿠키 몬스터 문제
3.2 수동적 공격과 Same Origin Policy ... 78
COLUMN : 제삼자의 JavaScript를 허가하는 경우
COLUMN : X-FRAME-OPTIONS
CHAPTER 4 안전성을 위협하는 웹 어플리케이션 버그
4.1 웹 어플리케이션 기능과 취약성의 관계 ... 94
4.2 입력 처리와 보안 ... 98
COLUMN : 문자 인코딩의 자동 변환과 보안
COLUMN : 입력값과 프레임워크
4.3 표시 처리에 관한 취약성 문제 ... 116
4.3.1 크로스 사이트 스크립팅(기본편) ... 116
4.3.2 크로스 사이트 스크립팅(발전편) ... 137
4.3.3 에러 메시지에서 정보 유출 ... 151
4.4 SQL 호출에 따른 취약성 ... 152
4.4.1 SQL 인젝션 ... 152
COLUMN : DB 안의 테이블명, 컬럼명의 조사 방법
COLUMN : MDB2를 채용한 이유
4.5 중요한 처리를 할 때에 생기는 취약성 ... 177
4.5.1 Cross-Site Request Forgeries. CSRF ... 177
COLUMN : 내부 네트워크에 대한 CSRF 공격
COLUMN : 토큰과 원타임 토큰
COLUMN : 업로드한 파일로 서버측 스크립트의 실행
COLUMN : 파일명에 의한 XSS 주의
COLUMN : 확장자를 체크할 때의 주의사항
4.6 세션 관리의 취약성 ... 196
4.6.1 세션 하이재킹의 원인과 영향 ... 196
4.6.2 추측 가능한 세션 ID ... 199
4.6.3 URL 포함 세션 ID ... 204
4.6.4 세션 ID의 고정화 ... 212
4.7 리다이렉트 처리 관련 취약성 ... 226
4.7.1 오픈 리다이렉터 취약성 ... 227
COLUMN : 쿠션 페이지
4.7.2 HTTP 헤더 인젝션 ... 235
COLUMN : HTTP Response 분할 공격
COLUMN : HTTP 헤더와 개행
COLUMN : PHP header 함수는 개행을 어디까지 체크하는가
4.7.3 리다이렉트 처리에 관한 취약성 정리 ... 250
4.8 쿠키 출력에 관한 취약성 ... 251
4.8.1 쿠키의 부적절한 이용 ... 252
COLUMN : 패딩 오라클 공격과 MS10-070
4.8.2 쿠키의 Secure 속성에 관한 취약성 ... 255
4.9 메일 송신 문제 ... 267
4.9.1 메일 송신 문제의 개요 ... 267
4.9.2 메일 헤더 인젝션 취약성 ... 269
4.10 파일 접근에 발생하는 문제 ... 281
4.10.1 디렉토리 트레버셜 취약성 ... 282
COLUMN : 스크립트의 소스로부터 줄줄이 정보가 누설된다
COLUMN : basename 함수와 널 바이트
4.10.2 의도하지 않은 파일 공개 ... 290
4.11 OS 커맨드를 호출할 때 발행하는 취약성 ... 294
4.11.1 OS 커맨드 인젝션 ... 294
4.12 파일 업로드에서 발생하는 문제 ... 312
4.12.1 파일 업로드 문제의 개요 ... 312
COLUMN : 메모리 사용량이나 CPU 사용 시간 등 다른 리소스에도 주의
4.12.3 파일 다운로드에 의한 크로스 사이트 스크립팅 ... 325
COLUMN : BMP 형식에 대한 주의와 MS07-057
COLUMN : 이미지를 별도의 도메인에서 제공하는 경우
4.13 인클루드에서 발생하는 문제 ... 343
4.13.1 파일 인클루드 공격 ... 343
COLUMN : RFI 공격의 다양성
4.14 eval에서 발생하는 문제 ... 353
4.14.1 eval 인젝션 ... 353
4.15 공유 자원에 관한 문제 ... 362
4.15.1 경합 상태 취약성 ... 362
CHAPTER 5 대표적인 보안 기능
5.1 인증 ... 370
5.1.1 로그인 기능 ... 370
5.1.2 무작위 공격에 대한 대책 ... 379
5.1.3 패스워드 저장 방법 ... 383
COLUMN : 데이터베이스 암호화와 패스워드 보호
COLUMN : 암호학적 해시 함수가 만족되는 요건
COLUMN : 패스워드 누출 경로
5.1.4 자동 로그인 ... 395
5.1.5 로그인 폼 ... 404
COLUMN : 패스워드는 꼭 마스크 표시 해야 하는가
5.1.6 에러 메시지의 요건 ... 406
5.1.7 로그아웃 기능 ... 407
5.1.8 인증 기능 정리 ... 409
5.2 계정 관리 ... 413
5.2.1 유저 등록 ... 413
5.2.2 패스워드 변경 ... 419
5.2.3 메일주소의 변경 ... 420
5.2.4 패스워드 리마인더 ... 422
5.2.5 계정의 정지 ... 426
5.2.6 계정의 삭제 ... 427
5.2.7 계정 관리 정리 ... 427
5.3 인가 ... 428
5.3.1 인가란? ... 428
5.3.2 인가가 불충분한 전형적인 예 ... 429
COLUMN : 비밀정보를 포함한 URL에 의한 인가 처리
5.3.3 인가 제어의 요건 정의 ... 433
COLUMN : 롤이란?
5.3.4 인가 제어의 올바른 구현 ... 434
5.3.5 정리 ... 435
5.4 로그 출력 ... 436
5.4.1 로그 출력의 목적 ... 436
5.4.2 로그의 종류 ... 437
5.4.3 로그 출력의 요건 ... 438
5.4.4 로그 출력의 구현 ... 441
5.4.5 정리 ... 442
CHAPTER 6 웹사이트의 안전성을 높이기 위해
6.1 서버에 대한 공격 경로와 대책 ... 445
6.1.1 기반 소프트웨어의 취약성을 이용한 공격 ... 445
6.1.2 부적절한 로그인 ... 445
6.1.3 대책 ... 446
COLUMN : 취약성에 대한 책임 ... 455
6.2 속임수 대책 ... 455
6.2.1 네트워크적인 속임수 ... 455
COLUMN : VISA 도메인 문제
6.2.2 피싱 ... 457
6.2.3 웹사이트 속임수 대책 ... 457
COLUMN : 무료 서버 증명서
6.3 감청, 변조 대책 ... 462
6.3.1 감청, 변조의 경로 ... 462
6.3.2 중간자 공격 ... 463
COLUMN : 루트 증명서를 도입하지 않고 시키지도 않는 일
COLUMN : SSL의 확인 아이콘
6.3.3 대책 ... 467
6.4 맬웨어 대책 ... 470
6.4.1 웹사이트의 맬웨어 대책이란 ... 470
6.4.2 맬웨어 감염 경로 ... 471
6.4.3 웹 서버 맬웨어 대책의 개요 ... 472
6.4.4 웹 서버에 맬웨어가 감염되지 않게 하는 대책 ... 472
COLUMN : 웹사이트의 바이러스 대책과 검블러의 관계
6.5 정리 ... 476
CHAPTER 7 안전한 웹 어플리케이션을 위한 개발 관리
7.1 개발 관리에서 보안 정책의 전체 이미지 ... 478
7.2 개발 체제 ... 480
7.3 개발 프로세스 ... 483
7.3.1 기획 단계의 유의점 ... 483
7.3.2 발주시 유의점 ... 483
COLUMN : 취약성에 대한 책임
7.3.3 요건 정의시의 주의점 ... 484
7.3.4 기본 설계의 진행 방법 ... 486
7.3.5 상세 설계, 프로그그래밍시의 유의점 ... 486
7.3.6 보안 테스트의 중용성과 방법 ... 486
7.3.8 수주자 측 테스트 ... 487
7.3.9 발주자 측 테스트(검수) ... 488
7.3.10 운용 단계의 유의점 ... 488
7.4 정리 ... 490
더보기 닫기