full-version-ajax-bezpieczne-aplikacje-internetowe_ajabez.pdf

(15777 KB) Pobierz
664278105 UNPDF
aplikacje internetowe
Autor: hristopher Wells
TĀumaczenie: Piotr Rajca
ISBN: 978-83-246-1373-1
Ensuring the Safety of the Dynamic Web
Format: B5, stron: 248
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Otwarte łrdĀa danych a bezpieczeĺstwo aplikacji
¤ Jak zabezpieczyě przepĀyw danych klient-serwer?
¤ Jak strzec serwera aplikacji przed atakami?
¤ Jak przewidzieě i przeciwdziaĀaě potencjalnym zagroŃeniom
w dynamicznych aplikacjach?
Otwartoľě i bezpieczeĺstwo, utopijne poĀĴczenie sĀw, a zarazem nieodwracalna
przyszĀoľě sieci internetowej. WspĀdzielenie zasobw niesie ze sobĴ szereg zagroŃeĺ
na rŃnych warstwach sieciowych. Efektywniej jest przewidzieě potencjalne zagroŃenia
na etapie tworzenia aplikacji i zapobiec im, niŃ płniej Āataě dziury w oprogramowaniu.
KaŃdy programista tworzĴcy oprogramowanie sieciowe ostatecznie bķdzie musiaĀ
zmierzyě siķ z niepoŃĴdanĴ ingerencjĴ majĴcĴ swoje łrdĀo w sieci internetowej. BĴdł
na to przygotowany i nie daj siķ zaskoczyě, wykorzystaj wiedzķ zawartĴ w tej ksiĴŃce.
KsiĴŃka â Ajax. Bezpieczne aplikacje internetowe Ò traktuje o zagroŃeniach i sposobach
zabezpieczeĺ aplikacji sieciowych, a szczeglnie dynamicznych interfejsw API.
Przeznaczona jest zarwno dla programistw zaczynajĴcych przygodķ z Ajaksem,
jak i dla tych, ktrzy Ajaksa jeszcze nie znajĴ. Przyda siķ kaŃdemu, kto stoi na straŃy
bezpieczeĺstwa aplikacji sieciowych, uczy bowiem, jak zapobiegaě zagroŃeniom
w trakcie pisania aplikacji oraz jak przeciwdziaĀaě im w juŃ istniejĴcym oprogramowaniu
sieciowym.
¤ Bezpieczeĺstwo aplikacji sieciowych
¤ Technologie zabezpieczeĺ komunikacji klient-serwer
¤ Zabezpieczenia na poziomie protokoĀw
¤ Serwer WWW i zagroŃenia pĀynĴce z internetu
¤ Zabezpieczanie otwartych zasobw danych
¤ Bezpieczeĺstwo interfejsw API
¤ ZagroŃenia bezpieczeĺstwa w aplikacjach typu mushup
Twrz rozlegĀe aplikacje sieciowe i zadbaj o ich bezpieczeĺstwo?
Ajax. Bezpieczne
664278105.004.png 664278105.005.png 664278105.006.png 664278105.007.png 664278105.001.png
Spis treści
Wstęp ........................................................................................................................................ 7
1. Ewoluująca Sieć ............................................................................................................ 11
Powstanie Sieci
12
2. Bezpieczeństwo aplikacji internetowych ................................................................... 41
Zagadnienia podstawowe
41
Analiza ryzyka
49
Często spotykane słabe punkty aplikacji internetowych
53
3. Technologie zabezpieczeń .......................................................................................... 69
Jak witryny komunikują się ze sobą
69
Bezpieczeństwo przeglądarek
74
Wtyczki, rozszerzenia i programy dodatkowe
90
4. Zabezpieczanie serwera ............................................................................................ 113
Bezpieczeństwo sieci
114
Bezpieczeństwo komputera
117
Poprawianie zabezpieczeń serwera WWW
135
Poprawianie zabezpieczeń serwera aplikacji
143
5. Słabe podstawy ......................................................................................................... 145
Słabe punkty protokołu HTTP
146
Zagrożenia
151
JSON
159
XML
161
RSS
164
Atom
165
REST
168
5
664278105.002.png
6. Zabezpieczanie usług sieciowych .............................................................................. 171
Ogólne informacje o usługach sieciowych
172
Usługi sieciowe a bezpieczeństwo
183
Web Service Security
188
7. Tworzenie bezpiecznych interfejsów programowania ............................................ 191
Tworzenie własnych interfejsów API
192
Warunki wstępne
197
Warunki końcowe
197
Niezmienniki
197
Zagadnienia bezpieczeństwa
198
Usługi sieciowe w architekturze REST
201
8. Aplikacje typu mashup ..............................................................................................209
Aplikacje internetowe i otwarte internetowe interfejsy API
211
Dzika Web 2.0
212
Aplikacje typu mashup a bezpieczeństwo
214
Otwarte kontra bezpieczne
218
Bezpieczna przytulanka
219
Studium przypadków
222
Skorowidz ............................................................................................................................. 233
6 |
Spis treści
ROZDZIAŁ 2.
Bezpieczeństwo aplikacji internetowych
W rozdziale 1. opisano, jak powstała Sieć oraz w jaki sposób działa. Ważne jest, by zapamiętać,
że nowoczesna Sieć bazuje na grupie abstrakcji programowych oraz że tworzenie godnych
zaufania i bezpiecznych aplikacji internetowych wciąż wymaga od programistów znajomości
podstawowego protokołu i infrastruktury.
W niniejszym rozdziale dokładniej poznasz zasady działania mechanizmów zabezpieczeń
oraz możliwości ich zastosowania w aplikacjach internetowych. Jeśli aplikacja działa w Inter-
necie, to znajduje się w pierwszej linii Twojej firmowej lub domowej sieci. Można by ją po-
równać z drzwiami do świata zewnętrznego, przez które odwiedzający mogą wejść i spraw-
dzić, co masz do zaoferowania. Twoja aplikacja musi zatem być bezpieczna, a Ty sam musisz
mieć świadomość zagrożeń, na jakie naraża ona Twoją sieć.
Zagadnienia podstawowe
Wyobraź sobie strażnika przechadzającego się nocą po słabo oświetlonych korytarzach jakie-
goś biurowca. Kiedy strażnik wchodzi do kolejnych pomieszczeń, oświetla je latarką, szuka-
jąc wszystkiego, co mogłoby się wydać podejrzane, po czym zamyka drzwi i idzie dalej.
Strażnik wykonuje te czynności każdej nocy, zapewniając dzięki temu bezpieczeństwo bu-
dynku i znajdującym się w nim biur.
Cóż, aplikacje internetowe zazwyczaj nie mają takich strażników. Nie ma nikogo, kto mógłby
zabezpieczyć je przed potencjalnymi włamywaczami.
Potrzeba wbudowania zabezpieczeń
A zatem co można zrobić? Pierwsze, co mogą zrobić programiści, to zauważyć konieczność
wyposażenia aplikacji w mechanizmy zabezpieczeń. Oprócz tego należy się upewnić, co tak
naprawdę wymaga ochrony. Gdzie aplikacja zaczyna się, a gdzie kończy? Jaka jest jej po-
wierzchnia? Jeśli Twoja aplikacja przypomina typowe aplikacje internetowe, to składa się
z trzech podstawowych elementów, które opiszę w dalszej części rozdziału.
41
664278105.003.png
Oczekuj niespodzianek
Alarm! Internetowi napastnicy próbują włamać się do naszej aplikacji. Używają aplikacji
w nieprzewidziany sposób, by doprowadzić do wystąpienia błędów i innych sytuacji, które
mogliby wykorzystać do swoich celów. Sytuacji, których nikt nie przewidział, niemal zawsze
stanowią zagrożenie bezpieczeństwa.
Czy pamiętasz strażnika? Patroluje on budynek, szukając w nim wszystkiego, co odbiega od
normy. Doskonale wie, że jeśli coś znajdzie się nie na swoim miejscu, to na pewno coś musiało
do tego doprowadzić. Oczywiście inteligentny włamywacz czeka do momentu, gdy strażnik
sprawdzi wszystkie pomieszczenia, i zaatakuje dopiero później .
Podmioty
Podmioty to wszyscy używający aplikacji. Oczywiście, najpopularniejszymi podmiotami będą
zwyczajni użytkownicy (czyli osoby odwiedzające aplikację), jednak mogą to także być inne
programy korzystające z usług sieciowych lub udostępnionego, zewnętrznego interfejsu pro-
gramowania (API). Niezależnie od rodzaju podmioty zawsze są „bytami” zewnętrznymi ko-
rzystającymi z systemu.
Wyobraźmy sobie, że dysponujemy witryną WWW zajmującą się sprzedawaniem różnego
typu kontrolek do aplikacji. Witryna implementuje zwyczajny koszyk zakupów oraz usługę
sieciową.
Takiej aplikacji mogą używać dwa odrębne typy podmiotów:
Klienci :
Czyli osoby, które zajrzały na witrynę, by kupić któryś z oferowanych produktów, uży-
wając przy tym koszyka do zakupów.
Partnerzy :
Programy korzystające z usług sieciowych do zarządzania produktami i wchodzące
w skład większej, złożonej aplikacji.
Gdyby coś miało pójść nie tak, chcielibyśmy wiedzieć, co się zdarzyło i kto doprowadził do
wystąpienia problemów. Wyobraź sobie dowolny film kryminalny — podmiotami byliby
wszyscy objęci dochodzeniem.
Obiekty
Obiektami nazywamy wszelkie zasoby aplikacji. Zazwyczaj będą to należące do niej dane,
lecz mogą to być także pliki, połączenia, usługi oraz wszelkie inne rzeczy, które mają dla niej
jakąś wartość lub które do niej należą.
W naszym przykładzie obiektami będą takie rzeczy, jak prywatne dane klientów, dane do-
stawców, firmowe dane zgromadzone w bazie danych oraz same sprzedawane kontrolki.
Innymi słowy, obiekty te można by porównać do przeróżnych cennych drobiazgów prze-
chowywanych przez ojca w kredensie.
Przyglądając się tym wszystkim obiektom i danym, należy zadać sobie pytanie, czy trzeba
zachować ich poufność? Czy aplikacja powinna je w jakiś sposób zabezpieczać? Jakie będą
konsekwencje dla Ciebie lub firmy, jeśli te dane pojawią się nagle wystawione na sprzedaż
na jakiejś witrynie w byłym Związku Radzieckim?
42 | Rozdział 2. Bezpieczeństwo aplikacji internetowych
Zgłoś jeśli naruszono regulamin