Bezpieczenstwo aplikacji tworzonych w technologii Ajax.pdf

(1027 KB) Pobierz
Bezpieczeństwo aplikacji tworzonych w technologii Ajax
Bezpieczeñstwo
aplikacji tworzonych
w technologii Ajax
Autor: Billy Hoffman, Bryan Sullivan
T³umaczenie: Robert Górczyñski
ISBN: 978-83-246-1693-0
Tytu³ orygina³u: Ajax Security
Format: 168x237, stron: 496
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!
319877759.001.png 319877759.002.png
Spis treci
Przedmowa ............................................................................................ 15
Przedmowa (ta rzeczywista) .................................................................. 17
Podzikowania ...................................................................................... 21
O autorach ............................................................................................. 23
Rozdzia 1.
Wprowadzenie do bezpieczestwa 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: zotowosa architektura ...........................................................................39
Architektura grubego klienta z punktu widzenia bezpieczestwa ................40
Architektura cienkiego klienta z punktu widzenia bezpieczestwa ..............41
Aplikacje Ajax z punktu widzenia bezpieczestwa .........................................42
Burza luk bezpieczestwa ......................................................................................43
Zwikszony poziom zoonoci, przejrzystoci i wielkoci ...........................43
Kwestie socjologiczne ......................................................................................46
Aplikacja Ajax: cel atrakcyjny i strategiczny ....................................................47
Podsumowanie .......................................................................................................48
319877759.003.png
8is tre i
Rozdzia 2.
Wamanie .............................................................................................. 49
Ewa ..........................................................................................................................49
Atak na witryn HighTechVacations.net ..............................................................50
Zamanie systemu kuponowego .....................................................................50
Atak na doczanie 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 wejciowych formularzy sieciowych .......................................107
Mechanizm cookies .......................................................................................109
Nagówki ........................................................................................................110
Ukryte pola formularza sieciowego ..............................................................110
Parametry cigu tekstowego zapytania ..........................................................111
Pliki przekazywane na serwer ........................................................................114
Ataki na tradycyjne aplikacje sieciowe: ogólna ocena .........................................115
Rodzaje ataków sieciowych ..................................................................................116
Metody usugi sieciowej ................................................................................117
Definicje usugi sieciowej ..............................................................................118
Ataki na aplikacje Ajaksa ......................................................................................119
róda ataków na aplikacje Ajaksa .................................................................120
Najlepsze z poczenia obu wiatów — z punktu widzenia hakera ............122
Prawidowa weryfikacja danych wejciowych ....................................................123
Problem z czarn list oraz innymi okrelonymi poprawkami ...................124
Leczenie objawów zamiast choroby ..............................................................126
Weryfikacja danych wejciowych na podstawie biaej listy ..........................129
Wyraenia regularne .......................................................................................133
Dodatkowe przemylenia dotyczce weryfikacji danych wejciowych .......133
Spis treci 9
Weryfikacja rozbudowanych danych wejciowych uytkownika ......................135
Weryfikacja kodu znaczników .......................................................................136
Weryfikacja plików binarnych .......................................................................138
Weryfikacja kodu ródowego JavaScript ......................................................138
Weryfikacja serializowanych danych .............................................................144
Mit dotyczcy treci dostarczanej przez uytkownika .......................................146
Podsumowanie .....................................................................................................147
Rozdzia 5.
Zoono kodu Ajaksa ......................................................................... 149
Wiele jzyków i architektur .................................................................................149
Indeksowanie tablicy ......................................................................................150
Operacje na cigach tekstowych ....................................................................152
Komentarze w kodzie ....................................................................................153
Problem innej osoby ......................................................................................154
Dziwactwa JavaScript ...........................................................................................156
Interpretowany, a nie kompilowany .............................................................156
Saba kontrola typów ......................................................................................157
Asynchroniczno ................................................................................................159
Problem tak zwanych wycigów ...................................................................159
Zakleszczenia i problem jedzcych filozofów ..............................................163
Synchronizacja po stronie klienta ..................................................................167
Zachowaj ostrono podczas przyjmowania rad ..................................................168
Podsumowanie .....................................................................................................169
Rozdzia 6.
Przejrzysto aplikacji Ajaksa ............................................................... 171
Czarne pudeka kontra biae pudeka ..................................................................172
Przykad: witryna MyLocalWeatherForecast.com .......................................174
Przykad: witryna MyLocalWeatherForecast.com wykonana
z uyciem technologii Ajax .........................................................................176
Podsumowanie porównania ..........................................................................179
Aplikacja sieciowa jako API .................................................................................180
Rodzaje danych i sygnatury metod ...............................................................181
Szczególne bdy dotyczce bezpieczestwa ......................................................182
Nieprawidowe uwierzytelnienie ..................................................................182
Nadmierne rozdrobnienie API serwera ........................................................184
Przechowywanie stanu sesji w jzyku JavaScript .........................................187
Ujawnianie uytkownikom poufnych danych .............................................188
Komentarze i dokumentacja w kodzie dziaajcym po stronie klienta .......190
Transformacja danych wykonywana po stronie klienta ...............................191
Bezpieczestwo poprzez zaciemnianie ...............................................................195
Techniki zaciemniania kodu .........................................................................196
Podsumowanie .....................................................................................................198
10 Spis treci
Rozdzia 7.
Przechwytywanie aplikacji Ajaksa ....................................................... 199
Przechwycenie struktury Ajaksa ..........................................................................200
Przypadkowe nadpisanie funkcji ...................................................................200
Nadpisywanie funkcji dla rozrywki lub w celu osignicia korzyci ..........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 dotyczce bezpieczestwa magazynu danych
po stronie klienta .........................................................................................225
Mechanizm HTTP cookies .................................................................................226
Reguy kontroli dostpu do cookie ...............................................................229
Pojemno cookie HTTP ..............................................................................234
Czas ycia cookie ............................................................................................237
Dodatkowe informacje w zakresie bezpieczestwa cookie ..........................238
Podsumowanie rozwaa dotyczcych uywania 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 dotyczce magazynu danych DOM ..............................254
Bezpieczestwo magazynu danych DOM ...................................................256
Podsumowanie informacji dotyczcych magazynu danych DOM .............257
Magazyn userData w przegldarce Internet Explorer ........................................258
Podsumowanie dotyczce bezpieczestwa ...................................................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 bezpieczestwa i niedocignicia Google Gears .............272
Luki bezpieczestwa w komponencie WorkerPool .....................................276
Ujawnienie danych LocalServer i skaenie danych .....................................277
Bezporedni dostp 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
Zgłoś jeśli naruszono regulamin