Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)

Sylabus przedmiotu Testowanie i bezpieczeństwo aplikacji webowych:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne 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
wykładyW7 15 1,50,50zaliczenie
laboratoriaL7 15 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ów2
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych2
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 22
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.2
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 WebDriver3
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress2
15
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.2
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)2
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.2
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ą.2
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ów2
T-W-8Podsumowanie kursu, zaliczenie1
15

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

KODForma aktywnościGodziny
laboratoria
A-L-1uczestnictwo w zajęciach15
A-L-2Praca własna22
37
wykłady
A-W-1uczestnictwo w zajęciach15
A-W-2Konsultacje2
A-W-3Praca własna20
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-4, T-L-5, T-W-6, T-W-3, T-W-5, T-L-3, T-W-1, T-L-2, T-L-1, T-L-4, T-W-2, T-W-7, T-W-8, 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-4, C-3T-L-6, T-L-2, T-W-1, T-L-5, T-L-1, T-L-7, T-W-7, T-W-3, T-L-3, T-L-4, T-W-4, T-W-5, T-W-6, T-W-8, T-W-2M-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ów2
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych2
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 22
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.2
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 WebDriver3
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress2
15

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.2
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)2
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.2
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ą.2
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ów2
T-W-8Podsumowanie kursu, zaliczenie1
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1uczestnictwo w zajęciach15
A-L-2Praca własna22
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ęciach15
A-W-2Konsultacje2
A-W-3Praca własna20
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-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-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji
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-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-5Testowanie End-to-End w aplikacjach webowych - podejścia i metody, testowanie manualne i automatyczne, przegląd rozwiązań do testowania automatycznego
T-L-3Uzyskiwanie poświadczeń tożsamości z wykorzystaniem zewnętrznego dostawy i protokołu OAuth 2
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-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów
T-L-4Zabezpieczenia aplikacji webowej przed atakami typu XSS i XSRF.
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)
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-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-4Ukształtowanie umiejętności testowania aplikacji webowych
C-3Ukształtowanie umiejętności zapobiegania zagrożeniom bezpieczeństwa aplikacji webowych
Treści programoweT-L-6Testowanie automatyczne typu end-to-end z użyciem frameworku Selenium WebDriver
T-L-2Zapewnianie dostępu w web-serwisie REST - konfiguracja aplikacja, autentykacji, autoryzacja dostepu do punktów końcowych
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-L-5Planowanie, realizacja i dokumentacja testów end-to-end na przykładowej aplikacji
T-L-1Zapewnianie dostępu w aplikacji webowej Spring Boot - konfiguracja aplikacji, autentykacja, autoryzacja dostępu do kontrolerów
T-L-7Testowanie automatyczne typu end-to-end z wykorzystaniem frameworku Cypress
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-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-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-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-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-8Podsumowanie kursu, zaliczenie
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)
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