Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)
specjalność: Inżynieria systemów wbudowanych

Sylabus przedmiotu Testowanie i bezpieczeństwo aplikacji webowych:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Testowanie i bezpieczeństwo aplikacji webowych
Specjalność Inżynieria aplikacji webowych
Jednostka prowadząca Katedra Inżynierii Systemów Informacyjnych
Nauczyciel odpowiedzialny Bartłomiej Małachowski <Bartlomiej.Malachowski@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 3,0 ECTS (formy) 3,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL7 10 1,50,50zaliczenie
wykładyW7 10 1,50,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Programowanie 1
W-2Podstawy technologii webowych

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie studentów z typowymi zagrożeniami bezpieczeństwa aplikacji webowych
C-2Zapoznanie studentów z typowymi metodami i technikami testowania aplikacji webowych
C-3Ukształtowanie umiejętności zapobiegania zagrożeniom bezpieczeństwa aplikacji webowych
C-4Ukształtowanie umiejętności testowania aplikacji webowych

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów1
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych1
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 21
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.1
T-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji2
T-L-6Testowanie automatyczne typu end-to-end z użyciem frameworku Selenium WebDriver2
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress2
10
wykłady
T-W-1Zapewnianie bezpieczeństwa i kontrola dostępu w aplikacjach strony serwera - przykłady rozwiązań na podstawie frameworku Spring i komponentu Spring Security.1
T-W-2Bezpieczeństwo protokołu HTTP - szyfrowanie i certyfikaty, zabezpieczanie plików cookie, mechanizmy bezpieczeństwa w przeglądarkach internetowych (Same-Origin Policy, Cross-Origin Resource Sharing)1
T-W-3Uwierzytelnianie i zarządzanie sesją w aplikacjach webowych, protokół OAuth i standard OpenID, tokeny JWT i ich bezpieczeństwo. Zabezpieczenia połączeń protokołu Websocket.1
T-W-4Typowe podatności aplikacji webowych - Cros-Site Scripting, Cross-Site Request Forgery, Server-Side Request Forgery, SQL Injection, Path Traversal, Code Injection. Niebezpieczństwa związane z deserializacją.1
T-W-5Testowanie End-to-End w aplikacjach webowych - podejścia i metody, testowanie manualne i automatyczne, przegląd rozwiązań do testowania automatycznego2
T-W-6Testowanie automatyczne z użyciem Selenium WebDrvier - przegląd możliwości i obszarów zastosowań, wady i zalety, konfiugracja i wykorzystanie, wsparcie dla różnych języków programowania2
T-W-7Testowanie automatyczne z użyciem frameworku Cypress - przegląd możliwości i obszarów zastosowań, wady i zalety, dostępne techniki raportowania testów1
T-W-8Podsumowanie kursu, zaliczenie1
10

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1uczestnictwo w zajęciach10
A-L-2Praca własna27
37
wykłady
A-W-1uczestnictwo w zajęciach10
A-W-2Konsultacje2
A-W-3Praca własna25
37

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Sprawozdania
S-2Ocena podsumowująca: Test zaliczeniowy wielokrotnego wyboru

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_D01.08_W01
Posiada wiedzę z zakresu testowania i zapewniania bezpieczeństwa w aplikacjach webowych.
I_1A_W05C-1, C-2T-W-2, T-W-3, T-W-4, T-W-1, T-W-5, T-W-6, T-W-7, T-W-8, T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7M-1S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_D01.08_U01
Student powinien potrafić dobrać i zastosować techniki i narzędzia testowania oraz diagnozować i przeciwdziałać typowym zagrożeniom bezpieczeństwa aplikacji webowych.
I_1A_U05, I_1A_U06C-3, C-4T-W-2, T-W-3, T-W-4, T-W-1, T-W-5, T-W-6, T-W-7, T-W-8, T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7M-2S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
Itest_1A_D01.08_W01
Posiada wiedzę z zakresu testowania i zapewniania bezpieczeństwa w aplikacjach webowych.
2,0
3,0Student posiada podstawową wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz zakresu ich testowania
3,5
4,0Student posiada podstawową wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz potrafi właściwie dobierać metody i techniki przeciwadziałania zagrożeniom. Posiada podstawową wiedzę z zakresu testowania i interpretowania wyników testów.
4,5
5,0Student posiada bardzo dobrą wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz potrafi właściwie dobierać metody i techniki przeciwadziałania zagrożeniom. Posiada bardzo dobrą wiedzę z zakresu testowania aplikacji webowych, interpretowania wyników oraz opracowywania strategii testów.

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
Itest_1A_D01.08_U01
Student powinien potrafić dobrać i zastosować techniki i narzędzia testowania oraz diagnozować i przeciwdziałać typowym zagrożeniom bezpieczeństwa aplikacji webowych.
2,0
3,0Student opanował w stopniu podstawowym umiejętności diagnozowania zagrożeń bezpieczeństwa aplikacji webowych. Potrafi przeprowadzić podstawowe testy na aplikacji webowej.
3,5
4,0
4,5
5,0

Literatura podstawowa

  1. Michał Bentkowski, Gynvael Coldwind ,Artur Czyż, Rafał Janicki, Jarosław Kamiński, Adrian Michalczyk, Mateusz Niezabitowski, Marcin Piosek, Michał Sajdak, Grzegorz Trawiński, Bohdan Widła, Bezpieczeństwo aplikacji webowych, SECURITUM, 2019
  2. Hope Paco, Walther Ben, Testowanie bezpieczeństwa aplikacji internetowych. Receptury, O'Reilly/Helion, 2021
  3. Eran Kinsbruner, Testowanie aplikacji dla programistów frontendowych, Helion, 2023

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów1
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych1
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 21
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.1
T-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji2
T-L-6Testowanie automatyczne typu end-to-end z użyciem frameworku Selenium WebDriver2
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress2
10

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Zapewnianie bezpieczeństwa i kontrola dostępu w aplikacjach strony serwera - przykłady rozwiązań na podstawie frameworku Spring i komponentu Spring Security.1
T-W-2Bezpieczeństwo protokołu HTTP - szyfrowanie i certyfikaty, zabezpieczanie plików cookie, mechanizmy bezpieczeństwa w przeglądarkach internetowych (Same-Origin Policy, Cross-Origin Resource Sharing)1
T-W-3Uwierzytelnianie i zarządzanie sesją w aplikacjach webowych, protokół OAuth i standard OpenID, tokeny JWT i ich bezpieczeństwo. Zabezpieczenia połączeń protokołu Websocket.1
T-W-4Typowe podatności aplikacji webowych - Cros-Site Scripting, Cross-Site Request Forgery, Server-Side Request Forgery, SQL Injection, Path Traversal, Code Injection. Niebezpieczństwa związane z deserializacją.1
T-W-5Testowanie End-to-End w aplikacjach webowych - podejścia i metody, testowanie manualne i automatyczne, przegląd rozwiązań do testowania automatycznego2
T-W-6Testowanie automatyczne z użyciem Selenium WebDrvier - przegląd możliwości i obszarów zastosowań, wady i zalety, konfiugracja i wykorzystanie, wsparcie dla różnych języków programowania2
T-W-7Testowanie automatyczne z użyciem frameworku Cypress - przegląd możliwości i obszarów zastosowań, wady i zalety, dostępne techniki raportowania testów1
T-W-8Podsumowanie kursu, zaliczenie1
10

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1uczestnictwo w zajęciach10
A-L-2Praca własna27
37
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1uczestnictwo w zajęciach10
A-W-2Konsultacje2
A-W-3Praca własna25
37
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięItest_1A_D01.08_W01Posiada wiedzę z zakresu testowania i zapewniania bezpieczeństwa w aplikacjach webowych.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05Ma wiedzę o nowoczesnych metodach projektowania, analizowania, wytwarzania, testowania oprogramowania oraz rozwiązywania wybranych zadań inżynierskich obejmujących w szczególności narzędzia wspomagające wytwarzanie oprogramowania na różnych etapach powstawania, eksploatacji i rozwoju systemów informatycznych.
Cel przedmiotuC-1Zapoznanie studentów z typowymi zagrożeniami bezpieczeństwa aplikacji webowych
C-2Zapoznanie studentów z typowymi metodami i technikami testowania aplikacji webowych
Treści programoweT-W-2Bezpieczeństwo protokołu HTTP - szyfrowanie i certyfikaty, zabezpieczanie plików cookie, mechanizmy bezpieczeństwa w przeglądarkach internetowych (Same-Origin Policy, Cross-Origin Resource Sharing)
T-W-3Uwierzytelnianie i zarządzanie sesją w aplikacjach webowych, protokół OAuth i standard OpenID, tokeny JWT i ich bezpieczeństwo. Zabezpieczenia połączeń protokołu Websocket.
T-W-4Typowe podatności aplikacji webowych - Cros-Site Scripting, Cross-Site Request Forgery, Server-Side Request Forgery, SQL Injection, Path Traversal, Code Injection. Niebezpieczństwa związane z deserializacją.
T-W-1Zapewnianie bezpieczeństwa i kontrola dostępu w aplikacjach strony serwera - przykłady rozwiązań na podstawie frameworku Spring i komponentu Spring Security.
T-W-5Testowanie End-to-End w aplikacjach webowych - podejścia i metody, testowanie manualne i automatyczne, przegląd rozwiązań do testowania automatycznego
T-W-6Testowanie automatyczne z użyciem Selenium WebDrvier - przegląd możliwości i obszarów zastosowań, wady i zalety, konfiugracja i wykorzystanie, wsparcie dla różnych języków programowania
T-W-7Testowanie automatyczne z użyciem frameworku Cypress - przegląd możliwości i obszarów zastosowań, wady i zalety, dostępne techniki raportowania testów
T-W-8Podsumowanie kursu, zaliczenie
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 2
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.
T-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji
T-L-6Testowanie automatyczne typu end-to-end z użyciem frameworku Selenium WebDriver
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress
Metody nauczaniaM-1Wykład informacyjny
Sposób ocenyS-2Ocena podsumowująca: Test zaliczeniowy wielokrotnego wyboru
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Student posiada podstawową wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz zakresu ich testowania
3,5
4,0Student posiada podstawową wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz potrafi właściwie dobierać metody i techniki przeciwadziałania zagrożeniom. Posiada podstawową wiedzę z zakresu testowania i interpretowania wyników testów.
4,5
5,0Student posiada bardzo dobrą wiedzę z zakresu zagrożeń bezpieczenśtwa aplikacji webowych oraz potrafi właściwie dobierać metody i techniki przeciwadziałania zagrożeniom. Posiada bardzo dobrą wiedzę z zakresu testowania aplikacji webowych, interpretowania wyników oraz opracowywania strategii testów.
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięItest_1A_D01.08_U01Student powinien potrafić dobrać i zastosować techniki i narzędzia testowania oraz diagnozować i przeciwdziałać typowym zagrożeniom bezpieczeństwa aplikacji webowych.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U05Potrafi zaplanować i zrealizować eksperymenty w zakresie oceny wydajności, złożoności, efektywności systemów informatycznych i ich składowych.
I_1A_U06Potrafi pozyskiwać, przesyłać, przetwarzać dane, podsumowywać wyniki eksperymentów empirycznych, dokonywać interpretacji uzyskanych wyników i formułować wynikające z nich wnioski.
Cel przedmiotuC-3Ukształtowanie umiejętności zapobiegania zagrożeniom bezpieczeństwa aplikacji webowych
C-4Ukształtowanie umiejętności testowania aplikacji webowych
Treści programoweT-W-2Bezpieczeństwo protokołu HTTP - szyfrowanie i certyfikaty, zabezpieczanie plików cookie, mechanizmy bezpieczeństwa w przeglądarkach internetowych (Same-Origin Policy, Cross-Origin Resource Sharing)
T-W-3Uwierzytelnianie i zarządzanie sesją w aplikacjach webowych, protokół OAuth i standard OpenID, tokeny JWT i ich bezpieczeństwo. Zabezpieczenia połączeń protokołu Websocket.
T-W-4Typowe podatności aplikacji webowych - Cros-Site Scripting, Cross-Site Request Forgery, Server-Side Request Forgery, SQL Injection, Path Traversal, Code Injection. Niebezpieczństwa związane z deserializacją.
T-W-1Zapewnianie bezpieczeństwa i kontrola dostępu w aplikacjach strony serwera - przykłady rozwiązań na podstawie frameworku Spring i komponentu Spring Security.
T-W-5Testowanie End-to-End w aplikacjach webowych - podejścia i metody, testowanie manualne i automatyczne, przegląd rozwiązań do testowania automatycznego
T-W-6Testowanie automatyczne z użyciem Selenium WebDrvier - przegląd możliwości i obszarów zastosowań, wady i zalety, konfiugracja i wykorzystanie, wsparcie dla różnych języków programowania
T-W-7Testowanie automatyczne z użyciem frameworku Cypress - przegląd możliwości i obszarów zastosowań, wady i zalety, dostępne techniki raportowania testów
T-W-8Podsumowanie kursu, zaliczenie
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 2
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.
T-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji
T-L-6Testowanie automatyczne typu end-to-end z użyciem frameworku Selenium WebDriver
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Sprawozdania
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Student opanował w stopniu podstawowym umiejętności diagnozowania zagrożeń bezpieczeństwa aplikacji webowych. Potrafi przeprowadzić podstawowe testy na aplikacji webowej.
3,5
4,0
4,5
5,0