Tworzenie bezpiecznych aplikacji internetowych z przykladami w PHP.pdf

(1548 KB) Pobierz
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym
powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte
w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności
ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub
autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności
za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Redaktor prowadzący: Ewelina Burska
Projekt okładki: Studio Gravite/Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/twbeap
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Kody wykorzystane w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/twbeap.zip
ISBN: 978-83-246-8131-0
Copyright © Helion 2014
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
Wst p .............................................................................................. 5
Rozdzia 1. Kontrola dost pu do danych i funkcji ................................................ 7
Modyfikacje elementów interfejsu ................................................................................... 7
Zabezpieczanie dost pu do danych ................................................................................. 13
Kwestia enumeracji zasobów ......................................................................................... 15
Kontrola dost pu do funkcji ........................................................................................... 18
Modyfikowanie da HTTP ......................................................................................... 22
Rozdzia 2. SQL Injection ................................................................................. 27
Co to jest SQL Injection? ............................................................................................... 27
Atak na logowanie .......................................................................................................... 27
Dost p do ukrytych danych ............................................................................................ 34
Nieautoryzowane modyfikowanie danych ...................................................................... 39
lepy atak (Blind SQL Injection) ................................................................................... 40
Ataki specyficzne dla platformy ..................................................................................... 44
Sposoby obrony .............................................................................................................. 47
Filtry i cis e typowanie ........................................................................................... 48
Bia e i czarne listy .................................................................................................... 49
Eskejpowanie ........................................................................................................... 50
Zapytania parametryzowane ..................................................................................... 51
Odpowiednie uprawnienia ........................................................................................ 54
Automatyczne wyszukiwanie b dów ............................................................................. 54
Rozdzia 3. Przechowywanie hase u ytkowników .............................................. 59
Has a niekodowane ......................................................................................................... 59
Szyfrowanie symetryczne ............................................................................................... 62
Korzystanie z funkcji skrótu ........................................................................................... 64
Solenie hase ................................................................................................................... 65
Rozdzia 4. Ataki na logowanie ........................................................................ 71
Przesy anie danych ......................................................................................................... 71
Blokowanie kont ............................................................................................................. 72
Opó nianie prób logowania ............................................................................................ 77
Logowanie i CAPTCHA ................................................................................................ 80
Informacje dla u ytkownika ........................................................................................... 85
czenie ró nych metod ................................................................................................. 88
Kup książkę
Poleć książkę
4
Tworzenie bezpiecznych aplikacji internetowych (z przyk adami w PHP)
Rozdzia 5. Ataki typu XSS ............................................................................... 89
Czym jest Cross-site scripting? ...................................................................................... 89
Jak powstaje b d typu XSS? .......................................................................................... 89
Skutki ataku typu Persistent XSS ................................................................................... 94
Atak typu Reflected XSS ................................................................................................ 97
Sposoby obrony ............................................................................................................ 100
Rozdzia 6. Dane z zewn trznych róde .......................................................... 105
Gad ety na stronach WWW ......................................................................................... 105
Rozdzia 7. Ataki CSRF i b dy transakcyjne ................................................... 115
Geneza ataku ................................................................................................................ 115
Przyk ad serwisu podatnego na atak ............................................................................. 115
B dy transakcyjne ....................................................................................................... 120
Atak CSRF ................................................................................................................... 124
Tokeny jako ochrona przed CSRF ................................................................................ 128
Rozdzia 8. Ataki Path Traversal ..................................................................... 133
Specyfika ataku ............................................................................................................ 133
Serwis pobierania plików podatny na atak ................................................................... 133
Identyfikatory zamiast nazw plików ............................................................................. 138
Nie tylko pobieranie plików ......................................................................................... 141
Rozdzia 9. Brak w a ciwej autoryzacji ........................................................... 147
Uwierzytelnienie i autoryzacja ..................................................................................... 147
Uwierzytelnienie to nie wszystko ................................................................................. 147
Autoryzacja wykonywanych operacji ........................................................................... 152
Rozdzia 10. Dane u klienta ............................................................................. 161
Logowanie raz jeszcze .................................................................................................. 161
Dane uwierzytelniaj ce w cookie ................................................................................. 165
Koszyk w sklepie internetowym ................................................................................... 168
Rozdzia 11. Ataki na sesj
............................................................................. 181
Porywanie sesji ............................................................................................................. 181
Fiksacja i adopcja ......................................................................................................... 182
Przyk ad strony podatnej na z o ony atak .................................................................... 183
Rozdzia 12. adowanie plików na serwer ......................................................... 191
Serwis z obrazami ......................................................................................................... 191
Czy to dzia a? ............................................................................................................... 197
Atak na aplikacj .......................................................................................................... 198
Jak poprawi aplikacj ? ................................................................................................ 202
Skorowidz .................................................................................... 205
Kup książkę
Poleć książkę
Rozdzia 1.
Kontrola dost pu
do danych i funkcji
Modyfikacje elementów interfejsu
Pierwszy rozdzia , na rozgrzewk , jest po wi cony — wydawa oby si — prostym
b dom zwi zanym z brakiem kontroli dost pu do danych i funkcji. Typowym przy-
k adem jest poleganie na mechanizmach zaimplementowanych w interfejsie u yt-
kownika aplikacji dzia aj cej po stronie klienta i pomini cie weryfikacji po stronie
serwera. Najcz ciej jest to spotykane w aplikacjach desktopowych, gdzie nieco trud-
niej zmodyfikowa kod klienta (co wcale nie znaczy, e jest to bardzo skomplikowa-
ne), ale dotyczy to te wielu aplikacji webowych.
Rozwa my najprostszy i najbardziej ewidentny przyk ad, w którym kontrola dost pu
do danych odbywa si przez wy czenie cz ci elementów interfejsu graficznego.
Przyjmijmy, e powsta portal, w którym dost pna jest lista wiadomo ci (oczywi cie
w praktyce mog to by dowolne inne zasoby). Cz
z nich ma by przeznaczona
tylko dla zalogowanych u ytkowników, ale tytu y wszystkich wiadomo ci maj by
wy wietlane zawsze. Tego typu zadanie realizuje si poprzez wy czenie cz ci ele-
mentów interfejsu graficznego. Tytu y niedost pne dla niezalogowanych go ci s wy-
wietlane jako zwyk y tekst, nieaktywne elementy list rozwijanych itp. Strona mo e wi c
wygl da tak jak na rysunku 1.1. Wiadomo ci dla wszystkich s wy wietlane jako
aktywne elementy listy, a wiadomo ci dla zalogowanych jako elementy nieaktywne.
Programista cz sto zak ada, e wy czenie elementu interfejsu jest wystarczaj ce, aby
zablokowa dost p osobom niepowo anym, co oczywi cie jest b dem. Wbrew pozo-
rom problemy tego typu wcale nie dotycz tylko niedo wiadczonych deweloperów.
To jeden z powtarzaj cych si b dów, stale zajmuj cy czo owe miejsca na listach
najcz ciej spotykanych luk w zabezpieczeniach. O ile pocz tkuj cy programi ci po-
pe niaj go z niewiedzy, o tyle ci do wiadczeni zwykle z powodu przeoczenia.
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin