Bezpieczeństwo aplikacji tworzonych w technologii Ajax
Billy Hoffman, Bryan Sullivan
Cena detaliczna: 79,00 zł
Twoja cena: 71,10 zł
Wydawnictwo: Helion
Oprawa: miękka
Numer katalogowy: 324847
Dostępność: 2 - 4 dni
Poleć znajomym:










Bezpieczeństwo aplikacji tworzonych w technologii Ajax - opis
Bezpieczeństwo aplikacji WWW w Twoich rękach!
- Jakie ataki Ci grożą?
- Jak zapewnić bezpieczeństwo Twojej aplikacji WWW?
- Jak testować aplikację 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
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)
- 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)
-
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)
- 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)
-
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)
-
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)
-
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)
-
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)
- 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)
-
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)
-
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)
- 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)
-
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)
- 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)
-
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)



