웹 개발자가 꼭 알아야 할 AJAX 보안
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
이 책은 안전하고 견고한 Ajax 애플리케이션을 제작해야 하는 웹 개발자라면 꼭 알아야 할 Ajax 관련 보안 취약점을 이해하기 쉽게 설명한 실용적 안내서다. 제대로 코딩하지 않으면 전통적인 데스크탑 소프트웨어 등보다 보안에 취약한 Ajax의 문제를 제시하면서, 그것을 해결할 방안을 공개하고 있다. 해커의 공격을 방지하는 비결도 배우게 된다.
또한 Ajax 프레임워크를 분석하고 있다. Ajax 프레임워크가 지닌 보안의 취약점을 파악한 다음, 그것에 맞는 안전하고 견고한 코드를 작성하기 위한 지침도 소개하고 있다. 부록으로는 새미 웜 소스코드와 야매너 웜 소스코드 등을 제공한다.
작가정보
HP 보안 연구소의 수석 보안 연구원으로, 웹 애플리케이션의 취약점을 자동으로 발견해주는 기술에 일가견이 있다. 블랙 햇, RSA, 툴콘(Toorcon), 쉬무콘(Shmooncon), 인포섹(Infosec)과 AJAXWorld 같은 컨퍼런스의 단골 발표자이며, FBI에서 초청 강연도 했다.
저자(글) 브라이언 설리반
HP 소프트웨어의 애플리케이션 보안 센터 부서의 소프트웨어 개발 매니저로서 일하고 있다. HP에 오기 전, SPI 다이내믹에서 책임연구원으로서 DevInspect를 만들었다. 이 프로그램은 웹 애플리케이션의 보안 취약점을 체계적으로 점검을 하는 데 탁월한 성능을 보이고 있다. 브라이언은 산업 현장의 현안을 AJAXWorld, 블랙 햇, RSA에서 발표하고 있다.
번역 고현영
PKI(Public Key Infrastructure) 시스템 구축, 개발, 유지보수를 했다. NMS(Network Management System) 개발에도 참여했다. 광운대학교 전자통신공학과와 동대학원을 졸업했으며, 주요 관심분야는 보안과 네트워크 프로그래밍이다.
번역 윤평호
보안제품의 초기 기획과 설계를 시작으로 제품 상용화 및 유지보수를 포함한 소프트웨어 개발의 전체 프로세스를 진행했다. 현재 드림시큐리티에서 PKI 시스템 개발과 컨설팅을 하고 있다. 보안과 표준 기술에 관심이 많고 늘 새로운 것에 도전하기를 좋아하는 개발자로, 광운대 수학과를 졸업했다.
목차
- 1장 Ajax 보안 소개 29
Ajax 첫걸음 30
Ajax란 무엇인가? 30
비동기 방식 32
자바스크립트 34
XML 40
DHTML(다이내믹 HTML) 40
Ajax 아키텍처로의 패러다임 전환 40
무거운 클라이언트 아키텍처 41
가벼운 클라이언트 아키텍처 42
Ajax: 아키텍처계의 금발 미녀 44
보안 관점에서 본 무거운 클라이언트 애플리케이션 45
보안 관점에서 본 가벼운 클라이언트 애플리케이션 46
보안 관점에서 본 Ajax 애플리케이션 47
보안 취약점의 재앙 48
복잡도, 투명성 그리고 규모의 확장 48
사회학적인 이슈 51
Ajax 애플리케이션: 매력적인 전략 목표 52
결론 53
2장 보이지 않는 도둑 55
이브 55
HighTechVacations.net 해킹 56
쿠폰 시스템 해킹 57
클라이언트단 데이터 바인딩 공격 62
Ajax API 공격 67
보이지 않는 도둑 72
3장 웹 공격 75
공격의 종류 75
리소스 열거 76
파라미터 조작 80
그 밖의 공격 방법 104
크로스 사이트 요청 변조 105
피싱 106
서비스 거부 공격 107
리소스 열거와 파라미터 조작으로부터 보호하라 107
보안 소켓 계층 108
결론 108
4장 Ajax 공격 영역 109
공격 영역의 이해 109
전통적인 웹 애플리케이션 공격 영역 111
폼 입력 111
쿠키 112
헤더 113
숨겨진 폼 입력 114
쿼리 파라미터 114
업로드 파일 117
전통적인 웹 애플리케이션 공격: 성적표 118
웹 서비스 공격 영역 120
웹 서비스 메소드 120
웹 서비스 정의 122
Ajax 애플리케이션 공격 영역 122
Ajax 애플리케이션 공격 영역의 근원 124
해커에게 최고의 먹잇감 125
적절한 입력 확인 126
블랙리스트와 특별 조치의 문제 127
병 대신 병의 징후 다루기 130
화이트리스트 입력 검증 133
정규 표현 137
입력 검증에 대한 숙고 137
리치 사용자 입력 검증 139
마크업 언어 검증 139
이진 파일 검증 141
자바스크립트 소스코드 검증 142
시리얼라이즈 데이터 검증 148
사용자 지원 콘텐츠의 신화 151
결론 152
5장 Ajax 코드 복잡도 153
다양한 언어와 구조 153
배열 인덱싱 154
스트링 연산 156
코드 주석 157
다른 사람의 문제 158
자바스크립트와 관련해 160
인터프리트, 컴파일이 아니야 160
약한 타입 체크 161
비동기 163
경쟁 상태 163
데드락과 철학자의 식사 문제 167
클라이언트단 동기화 172
누구의 조언을 듣느냐가 중요하다 172
결론 173
6장 Ajax 애플리케이션의 투명성 175
블랙박스와 화이트박스 175
예: MyLocalWeatherForecast.com을 ‘Ajax’로 180
비교 184
API로서의 웹 애플리케이션 184
데이터 타입과 메소드 시그너처 186
보안과 관련한 특정 오판 186
부당한 인증 186
기능이 나뉜 서버 API 188
자바스크립트에서의 세션 상태 저장 191
민감한 정보가 사용자에게 노출될 때 192
클라이언트단 코드에 있는 주석과 문서화 194
클라이언트단에서 수행하는 데이터 변환 194
모호함을 통한 보안 199
난독화 199
결론 201
7장 Ajax 애플리케이션 하이재킹 203
Ajax 프레임워크의 하이재킹 204
실수로 인한 함수 덮어쓰기 204
함수 덮어쓰기의 예 206
주문형 Ajax의 하이재킹 212
JSON API의 하이재킹 217
객체 리터럴의 하이재킹 222
JSON 하이재킹이 가능한 이유 223
JSON 하이재킹을 막자 224
결론 227
8장 클라이언트단 스토리지 공격 229
클라이언트단 스토리지 시스템 개관 229
일반적인 클라이언트단 스토리지 보안 231
HTTP 쿠키 232
쿠키 접근 제어 규칙 234
쿠키의 생존시간 243
쿠키 스토리지에 대한 추가 기억사항 243
쿠키 스토리지 요약 244
플래시 로컬 공유 객체9 245
플래시 로컬 공유 객체 요약 253
DOM 스토리지 254
세션 스토리지 255
글로벌 스토리지 257
DOM 스토리지의 구멍 259
DOM 스토리지 보안 261
DOM 스토리지 요약 262
인터넷 익스플로러 userData 263
보안 요약 268
일반적인 클라이언트단 스토리지 공격법과 대처법 268
크로스 도메인 공격 269
크로스 디렉토리 공격 270
크로스 포트 공격 271
결론 271
9장 오프라인 Ajax 애플리케이션 273
오프라인 Ajax 애플리케이션 273
구글 기어 275
자체 보안 기능과 구글 기어의 단점 276
작업풀의 이용 279
LocalServer 데이터의 노출과 감염 281
구글 기어 데이터베이스로의 직접 접근 285
SQL 인젝션과 구글 기어 286
클라이언트단 SQL 인젝션도 위험한가? 290
DOJO.OFFLINE 292
키를 안전하게 293
데이터를 안전하게 294
패스워드의 선택이 멋진 키를 좌우한다 296
클라이언트단 입력을 검증하자 296
오프라인 애플리케이션에 대한 그 밖의 접근법 298
결론 299
10장 요청 출처 이슈 301
로봇, 스파이더, 브라우저, 크롤러 301
안녕, 내 이름은 파이어폭스야. 청크화된 인코딩, PDF도 좋아하고 해변에서 오랫동안 산책하는 것도 좋아해 303
요청 출처 불확정성과 자바스크립트 304
웹 서버 관점에서 본 Ajax 요청 304
당신일까, 당신을 가장한 누구일까 307
자바스크립트로 HTTP 요청 보내기 309
pre-Ajax 세계에서의 자바스크립트 HTTP 공격 312
XMLHttpRequest로 콘텐츠 사냥하기 314
XSS/XHR 조합 공격 318
방어 320
결론 322
11장 웹 매시업과 애그리게이터 323
머신에서 활용하는 인터넷 데이터 324
90년대 초기: 웹의 시대가 오다 324
90대년 중반: 머신 웹의 탄생 325
2000년대: 머신 웹의 성숙기 326
공개적으로 사용 가능한 웹 서비스 327
매시업: 웹의 프랑켄슈타인 329
ChicagoCrime.org 330
HousingMaps.com 331
그 밖의 매시업 332
매시업 생성 333
매시업과 Ajax 334
브리지, 프록시, 게이트웨이 - 이런! 336
Ajax 프록시 대안 337
Ajax 프록시 공격 338
HousingMaps.com? 340
매시업의 입력 검증 342
애그리게이트 사이트 345
보안과 신뢰가 떨어지는 상황 352
결론 356
12장 프리젠테이션 계층에 대한 공격 357
프리젠테이션의 콘텐츠 괴롭히기 357
프리젠테이션 계층에 대한 공격 361
캐스케이딩 스타일시트에서 정보 가져오기 362
해킹을 보고 느껴라 365
발전된 형태의 해킹을 보고 느껴라 369
삽입된 프로그램 로직 373
캐스케이딩 스타일시트 요소 375
브라우저 캐시 수정 376
프리젠테이션 계층 공격 방지 380
결론 381
13장 자바스크립트 웜 383
자바스크립트 웜 개요 383
기존의 컴퓨터 바이러스 384
자바스크립트 웜 387
자바스크립트 웜의 구성 389
자바스크립트의 한계 391
자바스크립트 웜의 복제 392
자바스크립트 웜 실행부 392
중간 정리 401
사례 연구: 새미 웜 401
어떻게 동작하는가 402
바이러스 실행부 405
새미 웜에 대한 결론 407
사례 연구: 야매너 웜(JS/Yamanner-A) 408
어떻게 동작하는가 408
바이러스 실행부 411
야매너 웜에 대한 결론 412
실제 자바스크립트 웜에서 배우는 교훈 415
결론 416
14장 Ajax 애플리케이션 테스트 419
블랙 매직 420
모든 사람이 웹 브라우저를 이용해 웹 서핑을하는 것은 아니다. 424
Catch-22 426
보안 테스트 도구 - 혹은 왜 실제 삶이 할리우드 같지 않은가? 427
사이트 목록 생성 428
취약점 탐지 430
분석 도구: Sprajax 431
분석 도구: Paros Proxy 434
분석 도구: LAPSE 436
분석 도구: WebInspect™ 437
보안 테스트에 대한 숙고 439
15장 Ajax 프레임워크 분석 441
ASP.NET 441
ASP.NET AJAX(이전에 ATLAS) 442
ScriptService 446
보안성 비교: UpdatePanel과 ScriptService 447
ASP.NET AJAX와 WSDL 448
ValidateRequest 452
ViewStateUserKey 453
ASP.NET 환경설정과 디버깅 454
PHP 456
Sajax 456
Sajax와 크로스 사이트 요청 변조 458
Java EE 460
DWR 460
자바스크립트 프레임워크 462
클라이언트단 코드에서 주의할 사항 463
Prototype 464
결론 466
부록 A 새미 웜 소스코드 467
부록 B 야매너 웜 소스코드 475
출판사 서평
〈 요약 〉
안전하고 견고한 Ajax 웹 애플리케이션을 제작해야 하는 웹 개발자라면 누구나 꼭 알아야 할 Ajax 관련 보안 취약점을 알기 쉽게 설명한 실용 가이드. Ajax 애플리케이션의 잠재적 보안 문제를 제시하고 해결하며, 좀 더 견고하고 안전한 코드를 작성하기 위한 지침을 알려준다. 또 프로토타입, DWR, ASP.NET AJAX 등 잘 알려진 Ajax 프레임워크에서 지원하는 보안 프레임워크와 개발자가 추가로 개발해야 하는 사항도 다룬다.
〈 소개 〉
수많은 웹사이트가 Ajax 애플리케이션으로 재탄생하고 있다. 전통적인 데스크탑 소프트웨어도 Ajax를 이용한 웹으로 바뀌고 있다. 하지만 보안과 관련된 문제가 종종 간과되고 있는 것이 현실이다. 제대로 설계하지 않고 코딩하지 않으면 전통적인 웹이나 데스크탑 소프트웨어보다 훨씬 더 보안에 취약할 수밖에 없다. Ajax 개발자는 애플리케이션 보안과 관련된 가이드가 필요하다. 지금까지 발견되지 않은 문제에 대해서도 가이드가 필요하다.
『Ajax 보안』은 Ajax에 대해 갖고 있는 환상의 잘못된 점을 체계적으로 설명하며 지적하고 있다. 마이스페이스(MySpace)의 새미 웜(Samy worm) 같은 실례를 들며 보안 관련 핵심 개념을 소개하고, Ajax 취약점이 어떻게 악용되는지 자세히 설명하고 있다. 더 나아가 .NET, 자바, PHP처럼 널리 쓰이는 웹 프로그래밍 언어와 환경에서 Ajax 애플리케이션을 작성하기 위한 특별하면서도 최신의 권고사항을 알려주고 있다.
★ 추천의 글 ★
『Ajax 보안』은 아직 밝혀지지 않은 주제에 대해 세심하게 다루고 있는 책이다. Ajax 개발자라면 반드시 알아야 할 내용이 가득하다. 이 책이 필요 없다고 주장하는 사람이 있다면 그 이유를 설명하라고 하고 싶다.
- 제시 제임스 가렛
마침내 Ajax 보안을 다양한 관점에서 이해하기 쉽게 다룬 책이 나왔다! 보안 관련 문제를 간과한 채 시대에 편승해 Ajax를 사용하려는 사람들에게 꼭 필요한 책다. 저자가 적은 다양한 보안 이슈사항이 자신의 애플리케이션과 상관없는지 확인해봐야 할 것이다.
- 제프 포리스탈
Ajax 코드를 작성하거나 리뷰할 때 꼭 필요한 책. 빌리와 브라이언은 초기 단계에 있는 Ajax에 빛을 주었고 그들이 행한 공로는 칭찬받을 만하다. 이 책을 당장 사러 가기 바란다. 얼른 읽고 싶어 참을 수가 없을 것이다.
- 앤드류 반 데르 스탁 / OWASP 전무이사
Ajax 같은 웹 기술은 새롭게 물결치는 경제 속에서 나타나는 마찰을 없애는 새로운 네트워크 비즈니스 모델을 만들고 있다. 유감스럽게도 해커는 이 기술의 약점이나 개발에서 생기는 문제를 악용해 진보의 물결을 가로막고 있다. 지금까지 Ajax 보안에 대해 언급한 책은 별로 없었다. Ajax 보안을 교육하거나 Ajax를 이용하고자 한다면 이 책이 그 안내서가 될 것이다.
- 트렐럼 테크놀러지 관리 담당
★ 이 책에서 다루는 내용 ★
■ 관련 기능을 세분화해 제공하는 웹 서비스에서 발생하는 문제, 애플리케이션 제어 절차 조작, 프로그램 로직 조작 등의 피해를 최소화하는 방법
■ 자바스크립트 하이재킹, 영속적인 스토리지 강탈, 매시업 악용 등 Ajax 공격 방지 방법
■ 단 두 번의 요청으로 백엔드 DB 전체 내용을 추출할 수 있는 Ajax 기반 SQL 인젝션 변종 형태의 공격 등 XSS와 SQL 인젝션 기반 공격을 피하는 방법
■ 구글 기어와 도조(Dojo)를 이용한 보안 오프라인 Ajax 애플리케이션 개발 방법
■ 프로토타입(Prototype), DWR, ASP.NET AJAX 같은 Ajax 프레임워크에 보안 개념을 적용하고 프레임워크의 보안상 취약한 부분을 파악하고 보안 코드를 작성하는 방법
■ 새로 작성하는 Ajax 코드를 좀 더 안전하게 작성하는 방법
■ 기존 코드에 있는 보안 문제를 감지, 수정하는 방법
★ 이 책의 대상 독자 ★
『Ajax 보안』은 Ajax 애플리케이션을 개발하고 유지보수할 사람이나, 새로운 Ajax 소프트웨어를 기획하고 설계할 사람, QA 전문가에서 문제를 점검하는 테스터에 이르기까지 모든 보안 전문가는 물론, 웹 개발자들도 꼭 읽어야 할 필독서다.
기본정보
ISBN | 9788960770645 | ||
---|---|---|---|
발행(출시)일자 | 2008년 11월 10일 | ||
쪽수 | 489쪽 | ||
크기 |
183 * 233
mm
|
||
총권수 | 1권 | ||
시리즈명 |
에이콘 해킹 보안 시리즈
|
||
원서명/저자명 | Ajax security/Hoffman, Billy |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립