Bezpieczeństwo aplikacji tworzonych w technologii Ajax - Helion
Tytuł oryginału: Ajax Security
Tłumaczenie: Robert Górczyński
ISBN: 978-83-246-1693-0
stron: 496, Format: 168x237, okładka: miękka
Data wydania: 2009-02-11
Księgarnia: Helion
Cena książki: 79,00 zł
Bezpieczeństwo aplikacji WWW w Twoich rękach!
- Jakie ataki Ci grożą?
- Jak zapewnić bezpieczeństwo Twojej aplikacji WWW?
- Jak testować aplikację AJAX?
Technologia AJAX zdobyła rynek aplikacji internetowych - to fakt. Siła i szybkość, z jaką tego dokonała, robią wrażenie. Niestety, wysoka wydajność w zdobywaniu rynku odbiła się negatywnie na jakości kodu i jego odporności na ataki. Oczywiście wiele rozwiązań spełnia najwyższe standardy jakości i bezpieczeństwa, ale istnieje jeszcze wiele serwisów, które powinny o to zadbać.
Jeżeli zastanawiasz się, czy Twój serwis korzystający z AJAX jest odpowiednio zabezpieczony, ta książka odpowie na to pytanie! Mało tego, dzięki "Bezpieczeństwo aplikacji tworzonych w technologii Ajax" dowiesz się, jak optymalnie zabezpieczyć Twoją aplikację, a także poznasz rodzaje ataków, na które ta aplikacja może być narażona. Poznasz także charakterystykę zagrożeń oraz nauczysz się efektywnie wykorzystywać mechanizm SSL (skrót od ang. Secure Sockets Layer). Po lekturze tego podręcznika będziesz w stanie poznać typowe błędy popełniane przez programistów. Zrozumiesz, w jaki sposób ktoś może wykonać atak na warstwę prezentacji oraz dane zgromadzone w przeglądarce. Ponadto nauczysz się testować aplikacje AJAX. Autorzy książki przedstawią również wady i zalety popularnych szkieletów aplikacji AJAX.
- Podstawy technologii AJAX
- Asynchroniczność
- Rodzaje ataków
- Wykorzystanie SSL
- Walidacja przyjmowanych danych
- Skomplikowanie kodu a bezpieczeństwo
- Typowe błędy programistów
- Przechwytywanie danych po stronie klienta
- Bezpieczeństwo w Google Gears oraz Dojo.Offline
- Zagrożenia związane z warstwą prezentacji
- Testowanie aplikacji AJAX
- Zalety i wady dostępnych szkieletów aplikacji AJAX
Zapewnij bezpieczeństwo Twojej aplikacji!
Osoby które kupowały "Bezpieczeństwo aplikacji tworzonych w technologii Ajax", wybierały także:
- ASP.NET MVC. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio 86,77 zł, (26,90 zł -69%)
- Ajax. Od podstaw 77,00 zł, (38,50 zł -50%)
- Ajax. Implementacje 49,00 zł, (24,50 zł -50%)
- Ajax. Bezpieczne aplikacje internetowe 37,00 zł, (18,50 zł -50%)
- 80 sposobów na Ajax 54,90 zł, (27,45 zł -50%)
Spis treści
Bezpieczeństwo aplikacji tworzonych w technologii Ajax -- spis treści
Przedmowa (15)
Przedmowa (ta rzeczywista) (17)
Podziękowania (21)
O autorach (23)
Rozdział 1. Wprowadzenie do bezpieczeństwa technologii Ajax (25)
- Elementarz technologii Ajax (26)
- Czym jest Ajax? (26)
- Asynchroniczny (28)
- JavaScript (30)
- XML (34)
- Dynamiczny HTML (DHTML) (35)
- Przechodzenie na architekturÄ™ Ajax (35)
- Architektura grubego klienta (36)
- Architektura cienkiego klienta (37)
- Ajax: złotowłosa architektura (39)
- Architektura grubego klienta z punktu widzenia bezpieczeństwa (40)
- Architektura cienkiego klienta z punktu widzenia bezpieczeństwa (41)
- Aplikacje Ajax z punktu widzenia bezpieczeństwa (42)
- Burza luk bezpieczeństwa (43)
- Zwiększony poziom złożoności, przejrzystości i wielkości (43)
- Kwestie socjologiczne (46)
- Aplikacja Ajax: cel atrakcyjny i strategiczny (47)
- Podsumowanie (48)
Rozdział 2. Włamanie (49)
- Ewa (49)
- Atak na witrynÄ™ HighTechVacations.net (50)
- ZÅ‚amanie systemu kuponowego (50)
- Atak na dołączanie danych po stronie klienta (56)
- Atak na API Ajax (61)
- Kradzież w jedną noc (66)
Rozdział 3. Ataki sieciowe (69)
- Podstawowe kategorie ataków (69)
- Wyliczanie zasobów (70)
- Manipulacje parametrami (74)
- Inne rodzaje ataków (98)
- Cross-Site Request Forgery (CSRF) (98)
- Phishing (99)
- Denial of Service (DoS) (100)
- Ochrona aplikacji sieciowej przed atakiem wyliczania zasobów lub manipulacji parametrami (101)
- Secure Sockets Layer (102)
- Podsumowanie (102)
Rozdział 4. Sposoby ataków na Ajax (105)
- Zrozumienie sposobów ataków na aplikacje Ajaksa (105)
- Sposoby ataków na tradycyjne aplikacje sieciowe (107)
- Pola danych wejściowych formularzy sieciowych (107)
- Mechanizm cookies (109)
- Nagłówki (110)
- Ukryte pola formularza sieciowego (110)
- Parametry ciÄ…gu tekstowego zapytania (111)
- Pliki przekazywane na serwer (114)
- Ataki na tradycyjne aplikacje sieciowe: ogólna ocena (115)
- Rodzaje ataków sieciowych (116)
- Metody usługi sieciowej (117)
- Definicje usługi sieciowej (118)
- Ataki na aplikacje Ajaksa (119)
- Źródła ataków na aplikacje Ajaksa (120)
- Najlepsze z połączenia obu światów - z punktu widzenia hakera (122)
- Prawidłowa weryfikacja danych wejściowych (123)
- Problem z czarną listą oraz innymi określonymi poprawkami (124)
- Leczenie objawów zamiast choroby (126)
- Weryfikacja danych wejściowych na podstawie białej listy (129)
- Wyrażenia regularne (133)
- Dodatkowe przemyślenia dotyczące weryfikacji danych wejściowych (133)
- Weryfikacja rozbudowanych danych wejściowych użytkownika (135)
- Weryfikacja kodu znaczników (136)
- Weryfikacja plików binarnych (138)
- Weryfikacja kodu źródłowego JavaScript (138)
- Weryfikacja serializowanych danych (144)
- Mit dotyczący treści dostarczanej przez użytkownika (146)
- Podsumowanie (147)
Rozdział 5. Złożoność kodu Ajaksa (149)
- Wiele języków i architektur (149)
- Indeksowanie tablicy (150)
- Operacje na ciÄ…gach tekstowych (152)
- Komentarze w kodzie (153)
- Problem innej osoby (154)
- Dziwactwa JavaScript (156)
- Interpretowany, a nie kompilowany (156)
- Słaba kontrola typów (157)
- Asynchroniczność (159)
- Problem tak zwanych wyścigów (159)
- Zakleszczenia i problem jedzących filozofów (163)
- Synchronizacja po stronie klienta (167)
- Zachowaj ostrożność podczas przyjmowania rad (168)
- Podsumowanie (169)
Rozdział 6. Przejrzystość aplikacji Ajaksa (171)
- Czarne pudełka kontra białe pudełka (172)
- Przykład: witryna MyLocalWeatherForecast.com (174)
- Przykład: witryna MyLocalWeatherForecast.com wykonana z użyciem technologii Ajax (176)
- Podsumowanie porównania (179)
- Aplikacja sieciowa jako API (180)
- Rodzaje danych i sygnatury metod (181)
- Szczególne błędy dotyczące bezpieczeństwa (182)
- Nieprawidłowe uwierzytelnienie (182)
- Nadmierne rozdrobnienie API serwera (184)
- Przechowywanie stanu sesji w języku JavaScript (187)
- Ujawnianie użytkownikom poufnych danych (188)
- Komentarze i dokumentacja w kodzie działającym po stronie klienta (190)
- Transformacja danych wykonywana po stronie klienta (191)
- Bezpieczeństwo poprzez zaciemnianie (195)
- Techniki zaciemniania kodu (196)
- Podsumowanie (198)
Rozdział 7. Przechwytywanie aplikacji Ajaksa (199)
- Przechwycenie struktury Ajaksa (200)
- Przypadkowe nadpisanie funkcji (200)
- Nadpisywanie funkcji dla rozrywki lub w celu osiągnięcia korzyści (202)
- Przechwytywanie technologii Ajax na żądanie (208)
- Przechwytywanie API JSON (213)
- Przechwycenie obiektu (218)
- Geneza przechwycenia danych JSON (218)
- Obrona przed atakiem przechwycenia API (219)
- Podsumowanie (222)
Rozdział 8. Ataki na magazyny danych po stronie klienta (223)
- Ogólny opis systemów magazynowania danych po stronie klienta (223)
- Ogólne informacje dotyczące bezpieczeństwa magazynu danych po stronie klienta (225)
- Mechanizm HTTP cookies (226)
- Reguły kontroli dostępu do cookie (229)
- Pojemność cookie HTTP (234)
- Czas życia cookie (237)
- Dodatkowe informacje w zakresie bezpieczeństwa cookie (238)
- Podsumowanie rozważań dotyczących używania cookie jako magazynu danych (239)
- Obiekty Flash Local Shared Objects (240)
- Podsumowanie informacji o obiektach Local Shared Object (248)
- Magazyn danych DOM (249)
- Magazyn danych sesji (250)
- Globalny magazyn danych (252)
- Diabelskie szczegóły dotyczące magazynu danych DOM (254)
- Bezpieczeństwo magazynu danych DOM (256)
- Podsumowanie informacji dotyczÄ…cych magazynu danych DOM (257)
- Magazyn userData w przeglÄ…darce Internet Explorer (258)
- Podsumowanie dotyczące bezpieczeństwa (263)
- Ogólne informacje o atakach i obronie magazynów danych po stronie klienta (264)
- Ataki typu cross-domain (264)
- Ataki cross-directory (265)
- Ataki cross-port (266)
- Podsumowanie (267)
Rozdział 9. Ajaksowe aplikacje offline (269)
- Ajaksowe aplikacje offline (269)
- Google Gears (271)
- Rodzime funkcje bezpieczeństwa i niedociągnięcia Google Gears (272)
- Luki bezpieczeństwa w komponencie WorkerPool (276)
- Ujawnienie danych LocalServer i skażenie danych (277)
- Bezpośredni dostęp do bazy danych Google Gears (281)
- Ataki typu SQL Injection i struktura Google Gears (282)
- Jak niebezpieczny jest atak SQL Injection po stronie klienta? (287)
- Dojo.Offline (289)
- Bezpieczne przechowywanie klucza (290)
- Zapewnienie bezpieczeństwa danych (291)
- Dobre hasła dla dobrych kluczy (292)
- Weryfikacja danych wejściowych po stronie klienta stała się istotna (293)
- Inne podejścia do aplikacji offline (294)
- Podsumowanie (295)
Rozdział 10. Kwestie związane z pochodzeniem żądań (297)
- Roboty, pajÄ…ki, przeglÄ…darki internetowe oraz inne koszmary (297)
- "Cześć! Nazywam się Firefox. Lubię programowanie, pliki PDF oraz długie spacery po plaży" (299)
- Niepewność dotycząca źródła pochodzenia żądania oraz JavaScript (300)
- Żądania Ajaksa z perspektywy serwera (300)
- Użytkownik lub ktoś podszywający się pod niego (304)
- Wysyłanie żądań HTTP za pomocą JavaScriptu (306)
- Ataki JavaScript z użyciem żądań HTTP w aplikacjach niestosujących technologii Ajax (308)
- Kradzież treści za pomocą obiektu XMLHttpRequest (310)
- Połączenie ataków XSS i XHR w praktyce (315)
- Sposoby obrony (317)
- Podsumowanie (319)
Rozdział 11. Aplikacje mashup oraz agregatory (321)
- Dane z Internetu nadające się do użycia (322)
- Wczesne lata 90. ubiegłego wieku - początek współczesnego Internetu (322)
- Połowa lat 90. XX wieku - narodziny machiny sieciowej (323)
- XXI wiek - machina sieciowa stała się dojrzała (324)
- Publicznie dostępne usługi sieciowe (325)
- Aplikacja mashup: frankenstein Internetu (327)
- ChicagoCrime.org (328)
- HousingMaps.com (329)
- Inne aplikacje typu mashup (330)
- Budowanie aplikacji mashup (331)
- Aplikacje mashup i Ajax (332)
- Pomost, proxy, brama - och nie! (334)
- Alternatywy dla proxy Ajax (335)
- Ataki na proxy Ajax (336)
- Halo, HousingMaps.com? (338)
- Weryfikacja danych wejściowych w aplikacji mashup (341)
- Witryny agregujÄ…ce (343)
- Zdegradowane bezpieczeństwo i zaufanie (351)
- Podsumowanie (354)
Rozdział 12. Ataki na warstwę prezentacji (357)
- Szczypta prezentacji może zabić treść (357)
- Ataki na warstwÄ™ prezentacyjnÄ… (361)
- Analiza danych w kaskadowych arkuszach stylów (362)
- Sztuczki dotyczące wyglądu i działania (365)
- Zaawansowane sztuczki dotyczące wyglądu i działania (369)
- Osadzona logika programu (372)
- Ataki na kaskadowe arkusze stylów (374)
- Modyfikacja bufora przeglÄ…darki internetowej (376)
- Uniemożliwianie ataków na warstwę prezentacyjną (379)
- Podsumowanie (381)
Rozdział 13. Robaki JavaScript (383)
- Opis robaków JavaScript (383)
- Tradycyjne wirusy komputerowe (384)
- Robaki JavaScript (387)
- Konstrukcja robaka JavaScript (389)
- Ograniczenia języka JavaScript (391)
- Rozprzestrzenianie się robaków JavaScript (392)
- Operacje wykonywane przez robaki JavaScript (392)
- Podsumowanie części teoretycznej (401)
- Studium przypadku: robak Samy (401)
- Jak działał robak Samy? (402)
- Działalność robaka Samy (405)
- Podsumowanie analizy robaka Samy (407)
- Studium przypadku: robak Yamanner (JS/Yamanner-A) (408)
- W jaki sposób działał robak Yamanner? (409)
- Działalność robaka Yamanner (412)
- Podsumowanie analizy robaka Yamanner (413)
- Lekcje wyciągnięte po analizie rzeczywistych przykładów robaków JavaScript (416)
- Podsumowanie (417)
Rozdział 14. Testowanie aplikacji Ajaksa (419)
- Czarna magia (420)
- Nie każdy do przeglądania Internetu używa przeglądarki internetowej (424)
- Paragraf 22 (427)
- Narzędzia służące do sprawdzania bezpieczeństwa, czyli dlaczego prawdziwe życie nie przypomina Hollywood? (428)
- Katalogowanie witryny (429)
- Wykrywanie luk bezpieczeństwa (431)
- Narzędzie analizy: Sprajax (433)
- Narzędzie analizy: Paros Proxy (435)
- Narzędzie analizy: LAPSE (Lightweight Analysis for Program Security in Eclipse) (437)
- Narzędzie analizy: WebInspect(tm) (439)
- Dodatkowe przemyślenia dotyczące testów pod kątem bezpieczeństwa (440)
Rozdział 15. Analiza struktur Ajaksa (443)
- ASP.NET (443)
- ASP.NET AJAX (dawniej Atlas) (444)
- ScriptService (448)
- Ostateczna rozgrywka bezpieczeństwa: UpdatePanel kontra ScriptService (449)
- ASP.NET AJAX i WSDL (450)
- ValidateRequest (454)
- ViewStateUserKey (455)
- Konfiguracja i usuwanie błędów w ASP.NET (456)
- PHP (457)
- Sajax (458)
- Struktura Sajax i ataki Cross-Site Request Forgery (459)
- Java EE (461)
- Direct Web Remoting (DWR) (461)
- Struktury JavaScript (464)
- Ostrzeżenie dotyczące kodu działającego po stronie klienta (464)
- Prototype (465)
- Podsumowanie (467)
Dodatek A: Kod źródłowy robaka Samy (469)
Dodatek B: Kod źródłowy robaka Yamanner (477)
Skorowidz (483)