Karta Przedmiotu
| Politechnika Białostocka | Wydział Informatyki | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kierunek studiów | Cyberbezpieczeństwo |
Poziom i forma studiów |
pierwszego stopnia stacjonarne |
||||||||||||||||||||||||
| Grupa przedmiotów / specjalność |
Profil kształcenia | ogólnoakademicki | |||||||||||||||||||||||||
| Nazwa przedmiotu | Programowanie aplikacji WWW | Kod przedmiotu | CYB1WWW | ||||||||||||||||||||||||
| Rodzaj zajęć | obowiązkowy | ||||||||||||||||||||||||||
| Formy zajęć i liczba godzin | W | Ć | L | P | Ps | T | S | Semestr | 3 | ||||||||||||||||||
| 15 | 15 | Punkty ECTS | 3 | ||||||||||||||||||||||||
| Program obowiązuje od | 2026/2027 | ||||||||||||||||||||||||||
| Przedmioty wprowadzające | Podstawy programowania (CYB1PPR), Sieci komputerowe I (CYB1SKO1), Sieci komputerowe II (CYB1SKO2), | ||||||||||||||||||||||||||
| Cele przedmiotu |
Przekazanie wiedzy z zakresu architektury i mechanizmów działania współczesnych aplikacji webowych, od protokołu HTTP po proste wzorce architektoniczne, jako niezbędnego kontekstu dla zrozumienia podatności i mechanizmów ataku omawianych w dalszych przedmiotach kierunkowych. Rozwinięcie praktycznych umiejętności budowania prostej aplikacji webowej w Pythonie/C#, obejmujących rozumienie cyklu żądanie-odpowiedź, zarządzanie sesją i uwierzytelnianiem oraz identyfikację punktów podatności wynikających z architektury. Odniesienia do frameworka edukacyjnego mikrokompetencji SFIA: Software Development (PROG) poziom 2 Information Security (ISCO) poziom 2 |
||||||||||||||||||||||||||
| Ramowe treści programowe | Architektura aplikacji webowej: model klient-serwer, protokół HTTP/HTTPS i jego rola w bezpieczeństwie. Komponenty współczesnej aplikacji webowej: frontend, backend, baza danych, API - z perspektywy powierzchni ataku. Wzorzec MVC jako fundament rozumienia separacji warstw. Podstawy budowania aplikacji backendowej z użyciem wybranego stosu technologicznego. Mechanizmy uwierzytelniania i zarządzania sesją jako obszary krytyczne bezpieczeństwa. Podstawy projektowania i konsumpcji REST API. Wprowadzenie do kategorii podatności webowych jako naturalny efekt poznanej architektury. | ||||||||||||||||||||||||||
| Inne informacje o przedmiocie | przedmiot ma związek z prowadzoną na Uczelni działalnością naukową | ||||||||||||||||||||||||||
| przedmiot kształtuje umiejętności praktyczne | |||||||||||||||||||||||||||
| Wyliczenie: | Nakład pracy studenta związany z: | Godzin ogółem |
W tym kontaktowych |
W tym praktycznych |
|||||||||||||||||||||||
| udziałem w wykładach | 15 | 15 | |||||||||||||||||||||||||
| udziałem w innych formach zajęć | 15 | 15 | 15 | ||||||||||||||||||||||||
| przygotowaniem do bieżących zajęć | 25 | 25 | |||||||||||||||||||||||||
| przygotowaniem do zaliczenia wykładu | 20 | ||||||||||||||||||||||||||
| Razem godzin: | 75 | 30 | 40 | ||||||||||||||||||||||||
| Razem punktów ECTS: | 3 | 1.2 | 1.6 | ||||||||||||||||||||||||
| Zakładane kierunkowe efekty uczenia się | Wiedza | Umiejętności | Kompetencje społeczne |
||||||||||||||||||||||||
| CYB1_W03 | CYB1_U03 | ||||||||||||||||||||||||||
| CYB1_W04 | CYB1_U04 | ||||||||||||||||||||||||||
| CYB1_W05 | CYB1_U06 | ||||||||||||||||||||||||||
| CYB1_U21 | |||||||||||||||||||||||||||
| Cele i treści ramowe sformułował(a) | dr inż. Anna Łupińska-Dubicka, dr inż. Marek Tabędzki | Data: | 08/04/2026 | ||||||||||||||||||||||||
| Realizacja w roku akademickim | 2027/2028 | ||||||||||||||||||||||||||
| Treści programowe | |||||||||||||||||||||||||||
| Wykład | |||||||||||||||||||||||||||
| 1. | Struktura aplikacji webowych - model klient–serwer, rola przeglądarki, serwera i bazy danych; przepływ żądania HTTP | ||||||||||||||||||||||||||
| 2. | Protokół HTTP/HTTPS - metody, nagłówki, kody statusu, cookies, sesje; HTTPS i TLS | ||||||||||||||||||||||||||
| 3. | Architektura aplikacji webowej - warstwy: prezentacja, logika biznesowa, dane; wzorzec MVC/MVT; separacja warstw jako mechanizm bezpieczeństwa | ||||||||||||||||||||||||||
| 4. | Frontend i DOM - HTML, CSS, JavaScript w kontekście bezpieczeństwa; Document Object Model jako cel ataku | ||||||||||||||||||||||||||
| 5. | Backend - frameworki webowe: routing, widoki, szablony, cykl życia żądania po stronie serwera Wariant A: Python - Flask/FastAPI, szablony Jinja2. Wariant B: C# - ASP.NET Core MVC, Razor Pages | ||||||||||||||||||||||||||
| 6. | Bazy danych w aplikacjach webowych - połączenie aplikacja–baza danych, ORM vs. surowe zapytania SQL; parametryzacja zapytań jako podstawowa ochrona | ||||||||||||||||||||||||||
| 7. | Uwierzytelnianie i zarządzanie sesją - mechanizmy: session cookies, JWT, OAuth 2.0 wprowadzenie; typowe błędy implementacji jako zapowiedź podatności; Przegląd architektury przez pryzmat OWASP Top 10 | ||||||||||||||||||||||||||
| 8. | Zaliczenie wykładu | ||||||||||||||||||||||||||
| Pracownia specjalistyczna | |||||||||||||||||||||||||||
| 1. | Środowisko laboratoryjne - konfiguracja środowiska deweloperskiego (Wariant A: Python + Flask/FastAPI; Wariant B: .NET SDK + Visual Studio Code); uruchomienie PostgreSQL w kontenerze Docker; przegląd narzędzi: DevTools przeglądarki, curl, Postman/Bruno | ||||||||||||||||||||||||||
| 2. | Inspekcja HTTP - analiza żądań i odpowiedzi HTTP w DevTools; manipulacja nagłówkami i cookies; obserwacja różnicy HTTP vs. HTTPS | ||||||||||||||||||||||||||
| 3. | Implementacja aplikacji webowej - routing, widoki, szablony, uruchomienie i debugowanie prostego serwera (Wariant A: Flask + Jinja2; Wariant B: ASP.NET Core MVC + Razor Pages) | ||||||||||||||||||||||||||
| 4. | Formularze i walidacja danych - obsługa formularzy POST, walidacja wejścia po stronie serwera (Wariant A: ręczna walidacja + WTForms; Wariant B: Data Annotations + ModelState); demonstracja skutków braku walidacji | ||||||||||||||||||||||||||
| 5. | Połączenie z bazą danych - integracja aplikacji z PostgreSQL przez ORM; parametryzowane zapytania vs. podatna konkatenacja - demonstracja i naprawa (Wariant A: SQLAlchemy; Wariant B: Entity Framework Core) | ||||||||||||||||||||||||||
| 6. | Uwierzytelnianie i sesje - implementacja logowania z session cookies; bezpieczne przechowywanie haseł; obserwacja zawartości cookies w DevTools (Wariant A: Flask-Login + bcrypt; Wariant B: ASP.NET Core Identity + PasswordHasher) | ||||||||||||||||||||||||||
| 7. | REST API - budowa prostego API (GET/POST/DELETE), testowanie Postmanem, autoryzacja tokenem JWT (Wariant A: Flask/FastAPI; Wariant B: ASP.NET Core Web API / Minimal API) | ||||||||||||||||||||||||||
| 8. | Podsumowanie mini-projektu i prezentacja prac studentów | ||||||||||||||||||||||||||
| Metody dydaktyczne (realizacja stacjonarna) |
|||||||||||||||||||||||||||
| W | wykład informacyjny, wykład problemowy, wykład z prezentacją multimedialną | ||||||||||||||||||||||||||
| Ps | implementacja zadań programistycznych, implementacja aplikacji WWW | ||||||||||||||||||||||||||
| Metody dydaktyczne (realizacja zdalna) |
|||||||||||||||||||||||||||
| W | wykład informacyjny, wykład problemowy, wykład z prezentacją multimedialną | ||||||||||||||||||||||||||
| - | |||||||||||||||||||||||||||
| Forma zaliczenia | |||||||||||||||||||||||||||
| W | zaliczenie pisemne | ||||||||||||||||||||||||||
| Ps | sprawozdanie z realizacji zadania, ocena projektu | ||||||||||||||||||||||||||
| Warunki zaliczenia | |||||||||||||||||||||||||||
| W | Uzyskanie min. 30% punktów z każdego efektu uczenia się z zakresu wiedzy, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów. Kryteria oceny: [ 0 – 50]% punktów – 2.0 (50 – 60]% punktów – 3.0 (60 – 70]% punktów – 3.5 (70 – 80]% punktów – 4.0 (80 – 90]% punktów – 4.5 (90 – 100]% punktów – 5.0 |
||||||||||||||||||||||||||
| Ps | Uzyskanie min. 30% punktów z każdego efektu uczenia się z zakresu umiejętności, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów. Kryteria oceny: [ 0 – 50]% punktów – 2.0 (50 – 60]% punktów – 3.0 (60 – 70]% punktów – 3.5 (70 – 80]% punktów – 4.0 (80 – 90]% punktów – 4.5 (90 – 100]% punktów – 5.0 |
||||||||||||||||||||||||||
| Symbol efektu | Zakładane efekty uczenia się | Odniesienie do efektów uczenia się zdefiniowanych dla kierunku studiów | |||||||||||||||||||||||||
| Wiedza | Umiejętności | Kompetencje społeczne |
|||||||||||||||||||||||||
| Wiedza: student zna i rozumie | |||||||||||||||||||||||||||
| E1 | architekturę aplikacji webowej, protokół HTTP/HTTPS i mechanizmy działania komponentów (frontend, backend, baza danych, API) oraz wynikającą z nich powierzchnię ataku | ||||||||||||||||||||||||||
| E2 | mechanizmy uwierzytelniania i zarządzania sesją w aplikacjach webowych oraz typowe błędy ich implementacji | ||||||||||||||||||||||||||
| Umiejętności: student potrafi | |||||||||||||||||||||||||||
| E3 | zbudować prostą aplikację webową z backendem, obsługą formularzy, bazą danych i uwierzytelnianiem, stosując podstawowe zasady bezpiecznej implementacji | ||||||||||||||||||||||||||
| E4 | analizować ruch HTTP aplikacji webowej narzędziami deweloperskimi i wskazać komponenty architektury będące potencjalnymi punktami podatności | ||||||||||||||||||||||||||
| Symbol efektu | Sposób weryfikacji efektu uczenia się | Forma zajęć na której zachodzi weryfikacja | |||||||||||||||||||||||||
| E1 | zaliczenie pisemne | W | |||||||||||||||||||||||||
| E2 | zaliczenie pisemne | W | |||||||||||||||||||||||||
| E3 | sprawozdanie z realizacji zadania, ocena projektu | Ps | |||||||||||||||||||||||||
| E4 | sprawozdanie z realizacji zadania, ocena projektu | Ps | |||||||||||||||||||||||||
| Literatura podstawowa | |||||||||||||||||||||||||||
| 1. | M. Grinberg, Flask. Tworzenie aplikacji webowych w Pythonie, Helion, Gliwice, 2022 | ||||||||||||||||||||||||||
| 2. | A. Lock, ASP.NET Core w akcji, wyd. 3, Helion, Gliwice, 2024 | ||||||||||||||||||||||||||
| 3. | S. Surma, Bezpieczeństwo aplikacji webowych, Helion, Gliwice, 2021 | ||||||||||||||||||||||||||
| 4. | D. Flanagan, JavaScript. Przewodnik, wyd. 7, Helion, Gliwice, 2021 | ||||||||||||||||||||||||||
| 5. | OWASP Foundation, OWASP Top Ten 2021, dostępne bezpłatnie: owasp.org, 2021 | ||||||||||||||||||||||||||
| 6. | T. Deimann, FastAPI. Nowoczesne API w Pythonie, Helion, Gliwice, 2023 | ||||||||||||||||||||||||||
| 7. | Microsoft, ASP.NET Core documentation, [dostęp online] learn.microsoft.com, 2024 | ||||||||||||||||||||||||||
| Literatura uzupełniająca | |||||||||||||||||||||||||||
| 1. | D. Stuttard, M. Pinto, Podręcznik hakera aplikacji webowych. Wykrywanie i wykorzystywanie luk w zabezpieczeniach, Helion, Gliwice, 2012 | ||||||||||||||||||||||||||
| 2. | B. Burns, E. Villalón, Bezpieczeństwo aplikacji webowych w praktyce, Helion, Gliwice, 2022 | ||||||||||||||||||||||||||
| 3. | Mozilla Developer Network, MDN Web Docs - HTTP, dostępne bezpłatnie: developer.mozilla.org, 2024 | ||||||||||||||||||||||||||
| 4. | OWASP Foundation, OWASP Testing Guide v4.2, dostępne bezpłatnie: owasp.org, 2021 | ||||||||||||||||||||||||||
| 5. | R. Fielding, J. Reschke, RFC 7230-7235: Hypertext Transfer Protocol (HTTP/1.1), IETF, 2014, dostępne bezpłatnie: rfc-editor.org | ||||||||||||||||||||||||||
| Koordynator przedmiotu: | dr inż. Anna Łupińska-Dubicka, dr inż. Marek Tabędzki | Data: | 08/04/2026 | ||||||||||||||||||||||||