프런트엔드 개발을 위한 보안 입문
저자

히라노마사시

저자:히라노마사시
Node.jsCoreCollaborator이자Cybozu주식회사의프런트엔드엔지니어.OSS(오픈소스소프트웨어)활동과JSConfJP등다양한커뮤니티운영에참여하고있다.웹과자바스크립트를좋아하고,잡지에글을기고하거나강연을하기도한다.

역자:이춘혁
프로그래밍언어와자연어모두관심이많은개발자다.고려대학교에서한문학을전공하며자연스레중국어와일본어를익히게되었다.중국,스페인,일본등에서생활하며다양한문화와외국어를접했고,공부에매진해영어/중국어/일본어/스페인어를이해하고구사할수있는수준이되었다.일본에서웹과ADAS개발업무를담당하였으며,현재는한국비건인증원에서웹시스템개발자로일하고있다.신기술과최적화에관심이많으며,‘젊음을값진모험과바꾸자’라는마음으로다양한경험을하고,개발에서는한우물을깊이그리고효율적으로파기위해노력중이다.

목차

옮긴이머리말ix
베타리더후기xi
머리말xiii
감사의말xvi

1.1.CHAPTER1웹보안의개요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.CHAPTER2실습준비9
2.1준비전9
__2.1.1실습추천환경9
__2.1.2실습에서사용하는소프트웨어9
2.2Node.js설정하기11
__2.2.1Node.js설치하기11
__2.2.2Node.js설치확인하기12
__2.2.3npm설치확인하기12
2.3Node.js+Express를사용한HTTP서버구축하기13
__2.3.1실습준비와Express설치하기13
__2.3.2Node.js+Express로HTTP서버구축하기14
__2.3.3정적파일전달하기17
__2.3.4호스트명을임의로설정해로컬HTTP서버에접속하기18
COLUMNCommonJS와ECMAScriptModules19
마무리19

1.3.CHAPTER3HTTP21
3.1HTTP기초21
__3.1.1URL22
__3.1.2DNS23
__3.1.3TCP/IP24
__3.1.4HTTP메시지26
__3.1.5HTTP메서드28
__3.1.6상태코드29
__3.1.7HTTP헤더30
__3.1.8쿠키를사용한상태관리32
3.2HTTP실습하기33
__3.2.1GET과POST로데이터전송하기33
__3.2.2상태코드확인및변경하기38
__3.2.3임의로HTTP헤더추가하기42
3.3안전한통신을위한HTTPS45
__3.3.1HTTP의약점45
__3.3.2HTTP약점을해결하는TLS47
__3.3.3HTTPS도입권장49
__3.3.4안전한콘텍스트만이용가능한API50
__3.3.5MixedContent의위험성51
__3.3.6HSTS를사용해HTTPS통신강제하기53
마무리56

1.4.CHAPTER4Origin에의한애플리케이션간접근제한57
4.1애플리케이션간접근제한의필요성57
4.2동일출처정책에의한보호59
__4.2.1출처60
__4.2.2동일출처정책60
__4.2.3동일출처에의해접근제한되지않는사례65
4.3동일출처정책에따른제한실습66
__4.3.1교차출처에요청전송제한확인하기66
__4.3.2iframe내부교차출처페이지에접근제한확인하기67
4.4CORS71
__4.4.1CORS방식72
__4.4.2단순요청73
__4.4.3PreflightRequest74
__4.4.4쿠키를포함하는요청전송80
__4.4.5CORS요청모드81
__4.4.6crossorigin속성을사용하는CORS요청82
4.5CORS실습84
__4.5.1교차출처의요청을허가하는방법84
__4.5.2접근허가출처를제한하는방법87
4.6postMessage를사용해iframe으로데이터전송하기89
4.7프로세스분리에따른사이드채널공격대책91
__4.7.1사이드채널공격을방어하는SiteIsolation91
__4.7.2출처마다프로세스를분리하는구조93
__4.7.3Cross-OriginIsolation이유효한페이지에서SharedArrayBuffer사용하기95
마무리96

1.5.CHAPTER5XSS97
5.1능동적공격과수동적공격97
__5.1.1능동적공격97
__5.1.2수동적공격98
5.2XSS99
__5.2.1XSS구조100
__5.2.2XSS위협101
__5.2.3세가지XSS102
__5.2.4DOM기반XSS104
__5.2.5XSS대책109
5.3XSS방지실습121
__5.3.1적절한DOMAPI를사용하는방법121
__5.3.2URL스키마를http/https로한정하기125
__5.3.3XSS문제를줄이는DOMPurify라이브러리사용하기127
5.4ContentSecurityPolicy를사용한XSS대처하기129
__5.4.1CSP개요129
__5.4.2StrictCSP134
__5.4.3문자열을안전한타입으로사용하는TrustedTypes138
__5.4.4Report-Only모드를사용한policy테스트143
5.5CSP설정실습하기146
__5.5.1nonce-source를사용한CSP설정하기146
__5.5.2strict-dynamic을사용해동적으로