Ajax. Bezpieczne aplikacje internetowe

Book description

Ksišżka 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.

Table of contents

  1. Ajax. Bezpieczne aplikacje internetowe
  2. Dedykacja
  3. Wstęp
    1. Odbiorcy
    2. Założenia
    3. Treść książki
    4. Konwencje zastosowane w książce
    5. Podziękowania
  4. 1. Ewoluująca Sieć
    1. Powstanie Sieci
      1. Protokół przesyłu hipertekstu (HTTP)
      2. Transakcje HTTP
      3. Odpowiedź
      4. Metody HTTP
        1. Bezpieczne metody
        2. Metody powtarzalne
      5. Odpowiedź HTTP
        1. Kody statusów HTTP
        2. 2xx — kody powodzenia
        3. 3xx — kody przekierowania
        4. 4xx — kody błędu klienta
        5. 5xx — kody błędu serwera
      6. Nagłówki HTTP
        1. Nagłówki ogólne
        2. Nagłówki żądania
        3. Nagłówki odpowiedzi
        4. Nagłówki zasobu
        5. Nagłówki zawartości
      7. Treść komunikatu lub encji
      8. HTML
      9. Mosaic i Netscape
      10. Wojna przeglądarek
      11. Pluginy, komponenty ActiveX, aplety, JavaScript, Flash
        1. Aplety Javy
        2. ActiveX
        3. Flash
      12. Szczyt popularności dotcomów
      13. Serwery WWW
        1. Netscape Enterprise Server
        2. Apache
        3. Internet Information Server (IIS) firmy Microsoft
      14. Handel elektroniczny
        1. Aplikacje internetowe
        2. Serwery aplikacji
        3. Reklamy dla firm internetowych
      15. Paf!
      16. Heros, Ajax
        1. XMLHTTP
        2. XMLHttpRequest
        3. Cykl istnienia XMLHttpRequest
      17. Czy jest API?
        1. Kierunek wyznacza Google Maps
        2. Problem bezpieczeństwa
        3. Rozwiązanie: Google Maps API
      18. Kto zwraca na to uwagę?
        1. Programiści weekendowi
        2. Szybkie tworzenie aplikacji
        3. Cykl tworzenia oprogramowania
        4. Syndrom kopiowania i wklejania
      19. Dodatkowe informacje
  5. 2. Bezpieczeństwo aplikacji internetowych
    1. Zagadnienia podstawowe
      1. Potrzeba wbudowania zabezpieczeń
        1. Oczekuj niespodzianek
        2. Podmioty
        3. Obiekty
        4. Operacje
        5. Powierzchnia
        6. Poufność
        7. Prywatność
        8. Szyfrowanie
        9. Integralność i walidacja
        10. Uwierzytelnianie
        11. Autoryzacja i kontrola dostępu
        12. Rozdział obowiązków
        13. Niezaprzeczalność
        14. Dostępność
        15. Zaufanie
    2. Analiza ryzyka
      1. Anatomia aplikacji internetowych
        1. Punkty wejścia
        2. Poziom zaufania
        3. Aktywa
        4. Zagrożenia i ścieżki ataku
        5. Trzeba myśleć jak włamywacz
      2. Analiza zagrożeń
    3. Często spotykane słabe punkty aplikacji internetowych
      1. OWASP
        1. 10 najczęściej spotykanych słabych punktów według OWASP
      2. Niezweryfikowane dane wejściowe
        1. Weryfikacja pozytywna oraz negatywna
        2. Weryfikacja po stronie klienta
        3. Rozmywanie
      3. Nieprawidłowa kontrola dostępu
        1. Interfejsy administracyjne
      4. Wadliwe uwierzytelnianie i zarządzanie sesjami
        1. Czym jest czynnik uwierzytelniania?
        2. Informacje uwierzytelniające
        3. Interfejsy administracyjne
        4. Obsługa sesji
        5. Nie pozwalaj na ponowne wizyty starych gości
      5. Ataki typu cross-site scripting (XSS)
      6. Przepełnienie bufora
        1. Przepełnienie bufora w aplikacjach internetowych
      7. Usterki związane ze wstawianiem
      8. Niewłaściwa obsługa błędów
      9. Niebezpieczne mechanizmy przechowywania
      10. Odmowa działania aplikacji
      11. Niebezpieczne zarządzanie konfiguracją
      12. Inne słabe punkty
      13. Dodatkowe źródła informacji
  6. 3. Technologie zabezpieczeń
    1. Jak witryny komunikują się ze sobą
      1. Komunikacja klienta z serwerem
      2. Komunikacja pomiędzy serwerami
        1. Analiza i pobieranie prezentowanych treści
      3. Komunikacja pomiędzy domenami
        1. XML
        2. JSON
        3. Usługi sieciowe
    2. Bezpieczeństwo przeglądarek
      1. STRIDE
      2. Podstawowe zabezpieczenia
        1. Szyfrowanie transmisji SSL/TLS
        2. Szyfrowanie danych przy wykorzystaniu metod symetrycznych
        3. Zasada tego samego pochodzenia
      3. Dane przechowywane na kliencie i zarządzanie stanem
        1. Pola formularzy HTML
        2. Cookies i nagłówki HTTP
        3. Przepisywanie adresów URL
      4. Zabezpieczanie transmitowanych danych
      5. Zarządzanie sesjami
    3. Wtyczki, rozszerzenia i programy dodatkowe
      1. ActiveX
      2. Aplety Javy
      3. JavaScript
      4. Modyfikacje XHTML i DOM
      5. Flash
        1. Flex
        2. ActionScript
      6. HTML i CSS
      7. Ajax
        1. Autoryzacja użytkowników
        2. Zapobieganie modyfikowaniu parametrów
        3. Zabezpieczanie transmitowanych danych
        4. Zapobieganie przechwytywaniu sesji
        5. Weryfikacja danych wejściowych
        6. Zabezpieczenie konfiguracji
        7. Obsługa wyjątków
        8. Nadzór nad poczynaniami użytkowników
        9. Zabezpieczanie przechowywanych danych
      8. Dodatkowe źródła informacji
  7. 4. Zabezpieczanie serwera
    1. Bezpieczeństwo sieci
      1. Zapory sieciowe
        1. Granice zaufania
        2. Zagadnienia bezpieczeństwa
        3. Port 80
        4. SSL
        5. Serwery proxy z obsługą SSL
        6. Warstwy sieci oraz „oz”
        7. Rozdział obowiązków
    2. Bezpieczeństwo komputera
      1. Ubuntu
        1. Domyślnie dostępny serwer LAMP
      2. Poprawianie bezpieczeństwa systemu operacyjnego
        1. Zarządzanie kontami
        2. Uruchomione usługi
        3. SUID i SGID
      3. Rejestracja i kontrola
        1. Unix i Linux
        2. Źródła i priorytety
        3. Plik konfiguracyjny syslog (/etc/syslog.conf)
        4. Rejestracja procesów
        5. System Windows
        6. Serwer rejestrujący
      4. Zapewnienie aktualności oprogramowania
        1. APT
        2. Aktualizacja oprogramowania w systemie Windows
      5. Zapora sieciowa komputera
        1. Stosowanie iptables
      6. Wykrywanie włamań
        1. Analiza dzienników
        2. Sprawdzanie integralności plików
        3. Monitorowanie sieci
      7. Tworzenie kopii
        1. Partimage
        2. dd_rescue
      8. Odpowiadanie na ataki
        1. Opracowanie planu (odtworzenia awaryjnego)
        2. POMOCY! Zostaliśmy zaatakowani!
    3. Poprawianie zabezpieczeń serwera WWW
      1. Serwer Apache HTTP
        1. Zagadnienia bezpieczeństwa
      2. mod_security
        1. Instalacja
        2. Podstawowa konfiguracja modułu
        3. Akcje
        4. Filtry
        5. Zasoby
      3. PHP
      4. Microsoft Internet Information Server (IIS)
        1. „Zamknięcie” serwera
        2. Bezpieczna konfiguracja serwera WWW
        3. Wytyczne zabezpieczania serwera IIS
        4. Zagadnienia bezpieczeństwa
    4. Poprawianie zabezpieczeń serwera aplikacji
      1. Java i .NET
        1. Wytyczne dotyczące zabezpieczania serwerów aplikacji
      2. Dodatkowe źródła informacji
  8. 5. Słabe podstawy
    1. Słabe punkty protokołu HTTP
      1. Weryfikacja danych wejściowych
      2. Uwierzytelnianie i zarządzanie sesjami
        1. Przechwytywanie informacji uwierzytelniających
        2. Proste uwierzytelnianie HTTP
        3. Bezpieczeństwo i identyfikatory sesji
      3. Autoryzacja
    2. Zagrożenia
      1. Cross-site scripting (XSS)
      2. Usterki umożliwiające wstawianie kodu
        1. Wstawianie kodu SQL
      3. Wstawianie kodu LDAP
      4. Wstawianie poleceń lub procesów
        1. Dzielenie odpowiedzi HTTP
        2. Wstawianie kodu DOM i JavaScript
        3. Ataki cross-site request forgery (CSRF lub XSRF)
        4. Ataki typu cross-user defacement
        5. Zaśmiecanie pamięci podręcznej
      5. Inne słabe punkty
        1. Ataki typu przepełnienie bufora
        2. Niebezpieczne sposoby przechowywania danych
        3. Odmowa działania aplikacji
      6. Obsługa danych
        1. Niewłaściwa obsługa błędów
    3. JSON
      1. Weryfikacja i implementacja
      2. Uwierzytelnianie i autoryzacja
      3. Zasada tego samego pochodzenia dla skryptów
    4. XML
      1. Weryfikacja danych wejściowych
      2. Uwierzytelnianie i autoryzacja
      3. Usterki pozwalające na wstawienie kodu
      4. Niebezpieczne przechowywanie danych
      5. Odmowa obsługi XML (XDOS)
    5. RSS
      1. Korzystanie z danych RSS
    6. Atom
      1. Porównanie formatów Atom i RSS
      2. Podpisywanie treści
    7. REST
      1. Charakterystyki usług sieciowych REST
      2. Zasady projektowania usług sieciowych REST
      3. Dodatkowe źródła informacji
  9. 6. Zabezpieczanie usług sieciowych
    1. Ogólne informacje o usługach sieciowych
      1. Architektura oparta na usługach
      2. Ajax i usługi sieciowe
      3. Simple Object Access Protocol (SOAP)
        1. Anatomia komunikatów SOAP
        2. Koperta SOAP
        3. Nagłówki SOAP
        4. Treść SOAP
        5. Usterki SOAP
      4. Universal Description Discovery and Integration (UDDI)
      5. Web Services Description Language (WSDL)
        1. Anatomia dokumentu WSDL
        2. Podłączanie Ajaksa
    2. Usługi sieciowe a bezpieczeństwo
      1. Identyfikacja
      2. Uwierzytelnianie
        1. Nazwa użytkownika i hasło
        2. Cyfrowe certyfikaty X509
        3. Security Assertion Markup Language (SAML)
      3. Przesyłanie informacji uwierzytelniających
      4. Autoryzacja
        1. Zasady najmniejszych uprawnień oraz separacji obowiązków
      5. Poufność oraz bezpieczeństwo warstwy transportowej
      6. Wyciekanie informacji
      7. Integralność danych i bezpieczeństwo komunikatów
        1. Szyfrowanie XML
        2. Cyfrowe podpisy XML
        3. Możliwości rozbudowy komunikatów i ich zabezpieczeń
      8. Inspekcje i niezaprzeczalność
      9. Nie zapominajmy o Internecie
    3. Web Service Security
      1. Zarządzanie bezpiecznymi nagłówkami
      2. Bezpieczne nośniki informacji oraz informacje uwierzytelniające
      3. Znaczniki czasu
      4. Źródła dodatkowych informacji
  10. 7. Tworzenie bezpiecznych interfejsów programowania
    1. Tworzenie własnych interfejsów API
      1. Konstrukcja interfejsów API
      2. Projekt interfejsu API
        1. Projektowanie kontraktowe interfejsów sieciowych
    2. Warunki wstępne
    3. Warunki końcowe
    4. Niezmienniki
      1. Tworzenie dobrego interfejsu API
    5. Zagadnienia bezpieczeństwa
      1. Uwierzytelnianie
      2. Weryfikacja danych
      3. Weryfikacja zawartości i uwierzytelnianie
      4. Dostępność
      5. Wyciekanie informacji
    6. Usługi sieciowe w architekturze REST
      1. Dlaczego używać architektury REST?
      2. Kto używa architektury REST?
      3. Jak działają usługi sieciowe REST?
        1. GET czy POST?
        2. Opcje komunikacji
      4. Przykład zastosowania architektury REST
        1. Pobranie listy słów
        2. Pobranie definicji słowa
        3. Ocenianie słów
      5. Dodatkowe źródła informacji
  11. 8. Aplikacje typu mashup
    1. Aplikacje internetowe i otwarte internetowe interfejsy API
    2. Dzika Web 2.0
    3. Aplikacje typu mashup a bezpieczeństwo
      1. Brak zaufania
      2. Ciemna strona
    4. Otwarte kontra bezpieczne
      1. Brak standardów bezpieczeństwa
    5. Bezpieczna przytulanka
      1. Poufność
      2. Integralność
      3. Dostępność
    6. Studium przypadków
      1. Pageflakes.com
        1. Firma
        2. Lokalizacja
        3. Mechanizmy uwierzytelniania
        4. Zawartość
        5. Reprezentacja zawartości
        6. Informacje podawane przez użytkowników
        7. Dodatkowe usługi
        8. Zagadnienia bezpieczeństwa
      2. Public911.com
        1. Firma
        2. Lokalizacja
        3. Mechanizmy uwierzytelniania
        4. Zawartość
        5. Reprezentacja zawartości
        6. Informacje podawane przez użytkowników
        7. Dodatkowe usługi
        8. Zagadnienia bezpieczeństwa
      3. WeatherBonk.com
        1. Firma
        2. Lokalizacja
        3. Mechanizm uwierzytelniania
        4. Zawartość
        5. Reprezentacja zawartości
        6. Informacje dostarczane przez użytkownika
        7. Dodatkowe usługi
        8. Mechanizmy zabezpieczeń
      4. HousingMaps.com
        1. Lokalizacja
        2. Mechanizmy uwierzytelniania
        3. Zawartość
        4. Reprezentacja danych
        5. Informacje podawane przez użytkownika
        6. Zagadnienia bezpieczeństwa
      5. Wnioski
      6. Dodatkowe źródła informacji
  12. A. O autorze
  13. Indeks
  14. Kolofon
  15. Copyright

Product information

  • Title: Ajax. Bezpieczne aplikacje internetowe
  • Author(s): Christopher Wells
  • Release date: September 2012
  • Publisher(s): Helion
  • ISBN: 97888324613731