Bachelor's Thesis

Web Application for Raising Awareness of Cybersecurity in Companies

Final Thesis 2.41 MB Appendix 162.16 kB

Author of thesis: Matúš Bohucký

Acad. year: 2025/2026

Supervisor: Ing. Štěpán Miklánek, Ph.D.

Reviewer: Ing. Matěj Ištvánek, Ph.D.

Abstract:

This bachelor thesis focuses on the development of a web application called CyberSecLearn, aimed at raising awareness of cybersecurity and information security in companies. The goal is to create an interactive and scalable educational platform that allows users to gain practical knowledge about threats, risks, and secure behavior through modules, quizzes, and interactive scenarios.

The application is built using C#, .NET, TypeScript, React, and SQL, with the backend hosted on the Azure platform. It also includes modern tools such as JWT authentication, Swagger documentation, user role management, and a database structure for tracking user progress and achievements. The result is a functional MVP (Minimum Viable Product) that can be further expanded and adapted to meet the needs of various organizations.

The thesis describes the architectural design, database model, security features, implementation of frontend and backend components, as well as testing and evaluation of the application's effectiveness in educating employees on information security.

Keywords:

C#, .NET, Swagger, JWT, TypeScript, React, Vite, Node.js, SQL, Azure, information security, cybersecurity, education, learning, web application, MVP, interactive scenarios, quizzes

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci s výhradami a odpověděl na otázky členů komise a oponenta. Jelikož byla aplikace vyvíjena jako bakalářská práce, budete v ní nadále pokračovat? Plánujete ji dále rozšířit? Je univerzita vlastníkem práv na výsledek Vaší studentské práce? Kdo a jak vytváří otázky pro testy? Proč tato informace není obsažena v práci? Máte zařízenou nějakou expertní kontrolu? Kolik otázek a testů současná verze obsahuje? Může potenciální uživatel dělat kvízy i anonymně bez přihlášení? Pokud jde o firemní prostředí, lze nastavit, aby výsledky viděl jen admin a daný uživatel? Jaký nástroj jste použil pro vytvoření diagramů v práci? Student dostatečně vysvětlil otázky.

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (BPC-IBE)

Composition of Committee

doc. Ing. Václav Zeman, Ph.D. (předseda)
JUDr. Mgr. Jakub Harašta, Ph.D. (místopředseda)
Ing. Karel Kuchař, Ph.D. (člen)
Ing. Michal Polívka, Ph.D. (člen)
Ing. Petr Blažek, Ph.D. (člen)
Ing. Vojtěch Fiala (člen)
doc. Ing. Norbert Herencsár, Ph.D. (člen)

Supervisor’s report
Ing. Štěpán Miklánek, Ph.D.

Závěrečná práce Matúše Bohuckého má přiměřený rozsah, autor se věnuje dostatečnému popisu bezpečnostních hrozeb a čtenář je tak uveden do kontextu řešeného problému s občasným uvedením pojmů, které jsou příliš obecné. Struktura práce je na poměrně dobré úrovni, avšak práce trpí na některých místech zbytečnou fragmentací textu na velmi krátké odstavce nebo výčty. V práci se dále občas objevují osiřelé řádky a autor používá rastrovou grafiku pro některé obrázky. Kladně hodnotím, že si student vybral k řešení moderní technologie (React, .NET a Tailwind), implementace má dobrou strukturu a student používá verzovací systém včetně automatického nasazování aplikace. Kladně hodnotím modulárnost a připravenost na budoucí rozšíření. Student měl aplikaci otestovat i v rámci firemního prostředí, a tak bych čekal, že budou veškeré kritické chyby odstraněné. Bohužel jsem při testování narazil na několik chyb, které se projevily v prohlížeči Google Chrome (a v prohlížečích na bázi Chromia). Po přihlášení a kliknutí na logo aplikace je uživateli umožněno se opět zaregistrovat. Tady bych čekal, že bude uživatel přesměrován na výukové moduly a kvízy. Odhlášení z aplikace mi nefungovalo i po vícenásobném kliknutí na odhlašovací tlačítko. Odhlášení zároveň neprovede smazání tokenů z cookies prohlížeče, a tak je přístup do aplikace stále možný. To by se u práce zaměřené na bezpečnost nemělo stát zvlášť když autor tvrdí, že bylo provedeno důkladné testování. Bohužel pomohlo až natvrdo vymazat obsah cookies a funkce zapamatování uživatele nemá žádný vliv na to, jestli zůstane uživatel přihlášen nebo ne. Dále bych čekal, že přihlášenému uživateli nebude zpřístupněna přihlašovací stránka a bude naopak přesměrován. Na další chybu jsem narazil při registraci nového uživatele, kdy dojde k interní chybě v databáze a uživatel po registraci není přesměrován na hlavní stránku aplikace s výukovými moduly. Otestování aplikace mi tedy přijde velmi diskutabilní a autor neprovedl žádnou jinou formu testování, které by mohly odhalit případná bezpečnostní rizika. I když měla být aplikace otestována v rámci firemního prostředí, tak se mi tomu těžko věří, když stav aplikace (i obsažené chyby) byly velmi podobné stavu na začátku letního semestru. Student se mnou také delší dobu během semestru nekomunikoval, a tak jsem nemohl do řešení nijak zasáhnout. Vzhledem k uvedenému navrhuji hodnocení C / 70 bodů. Points proposed by supervisor: 70

Grade proposed by supervisor: C

Reviewer’s report
Ing. Matěj Ištvánek, Ph.D.

Pan Bohucký vypracoval práci na téma vývoje výukové webové aplikace pro povědomí kybernetické bezpečnosti ve firmách. Cíle práce dle zadání byly splněny, textová část je poměrně rozsáhlá. Obsahuje několik typografických nedostatků, chybějící mezery, neunifikované tečky za popisy obrázků a tabulek, přetékající text např. na obrázku 9.1, někdy příliš krátké odstavce a rastrové obrázky i v případě schémat. V textu mi chybí odkazy na existující nebo podobná řešení. Text je rozdělen na zbytečně velké množství kapitol, což výrazně natahuje délku práce a přidává nevhodnou segmentaci. Nerozumím například, proč je v práci samostatná kapitola 5, 6, 7 atp. Vše mohlo být součástí podkapitol jedné větší teoretické kapitoly. V teoretické části je velmi málo informací k pochopení řešení cílů práce. V podstatě se jedná jen o shrnutí bezpečnostních zásad nebo informací ke konkrétním věcem typu jak se rozděluje vývoj aplikace, na jaké kategorie členíme hackery atd. Protože ale přesné zadání otázek testů není v praktické části probíráno, proč tu vůbec tyto kapitoly jsou? Některé zkratky (například API nebo JWT) jsou vysvětleny v textu vícekrát na různých místech, což působí podezřele.
Největší problém mám ale s praktickou částí práce. Aplikace vypadá vizuálně dobře, bohužel v práci je jediný validní odkaz na samotnou implementaci uvnitř kapitoly 9.8.3 v bezpečnostním nastavení. Po registraci mi stránka napsala error, přestože jsem se dále dokázal do systému přihlásit. Předpokládám, že v nasazené online verzi jsou jen vzorové nástřely testů a ne vyvíjené informativní testy. Otázky vypadají totiž velmi jednoduše a obecně, přičemž u kvízu bývá vždy správná odpověď ta, která na rozdíl od ostatních není očividně špatně. Navíc některé otázky, resp. jejich správné odpovědi, jsou v současném stavu velmi diskutabilní. Myslím, že dobrý test by měl obsahovat větší množství otázek, u kterých musí uživatel opravdu popřemýšlet nad daným problémem a ne vybrat jedinou pozitivní odpověď z nabízené sady. Nevím ale, jestli se mohu dostat k vyvíjeným otázkám, které byly ve firmě testovány. Nikde jsem nenašel informaci, jaké otázky jsou součástí testů, kdo je vytváří a validuje, jestli procházejí nějakou expertní kontrolou atp. Předpokládám, že u informativního testu pro firmy je to velmi důležité a v práci o tom není ani zmínka, přestože stejnou otázku dostal student již při obhajobě semestrální práce.
Výsledkem práce je tedy aplikace, která vypadá hezky, ale velmi jednoduše, a navíc s neexistujícími testy (nebo alespoň neveřejnými). Oceňuji úpravu testů pomocí zpětné vazby testování ve firmě, ale nejsou zde uvedeny žádné další informace, statistika úpěšnosti, typy otázek nebo samotný obsah testů. Textová část je věnovaná primárně popisu obecných kybernetických zásad, informací a softwarové čaśti fungování aplikace, ale chybí mi tu její použití, informační a edukativní obsah. Práce je textově rozsáhlá, ale chybí jí klíčové kapitoly a jakýkoliv přesah, který by z ní opravdu dělal nástoj pro edukaci kybernetické bezpečnosti, a ne jen základní webovou aplikaci s několika vygenerovanými otázkami a možností přihlašování. Hodnotím celkově 60 bodů / D. Topics for thesis defence:
  1. Jelikož byla aplikace vyvíjena jako bakalářská práce, budete v ní nadále pokračovat? Plánujete ji dále rozšířit? Je univerzita vlastníkem práv na výsledek Vaší studentské práce?
  2. Může potenciální uživatel dělat kvízy i anonymně bez přihlášení? Pokud jde o firemní prostředí, lze nastavit, aby výsledky viděl jen admin a daný uživatel?
  3. Kdo a jak vytváří otázky pro testy? Proč tato informace není obsažena v práci? Máte zařízenou nějakou expertní kontrolu? Kolik otázek a testů současná verze obsahuje?
Points proposed by reviewer: 60

Grade proposed by reviewer: D

Responsibility: Mgr. et Mgr. Hana Odstrčilová