HOLOVOVÁ, S. Aplikace na podporu testování bezpečnosti webových aplikací [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2020.

Posudky

Posudek vedoucího

Martinásek, Zdeněk

Slečna Holovová na bakalářské práci pracovala zcela samostatně. Formálně a odborně práce disponuje drobnými nedostatky např. sirotek str 43, chybí definice HTTP dotazů pro výpisy (výpis 1, výpis 2), přenášeno viditelně (v otevřeném textu) atd. V teoretické části práce měla být uvedena jednoduchá definice HTTP protokolu pro snadnější orientaci čtenáře. Pojmy jako Session Fixation mohly být uvedeny ve slovenském jazyce a v závorce AJ pojem s definicí a odkazem na referenci. Struktura práce a logické členění je v pořádku. Použité technologie, technická úroveň návrhu a implementace plně odpovídají požadavkům a předpokladům diplomové práce. Vytvořená aplikace je funkční a plní většinu definovaných cílů zadání. Ve výsledné aplikaci chybí testy pro jednotlivé stránky webové aplikace. Práci doporučuji k obhajobě. Následující text shrnuje posudek technického externího vedoucího, kterým byl Roman Kümmel (HACKER Consulting s.r.o.). Pročetl jsem si práci slečny Holovové a k teoretické části nemám výhrad. Co se týká praktické části, naprosto schvaluji volbu použitých technologií, které se mnou slečna Holovová konzultovala již v rámci semestrálního projektu. Návrh aplikace je bez problémů a splňuje požadavky zadání práce. Vlastní implementace obsahuje velké množství nástrojů, které se kterými se studentka musela seznámit, což také představuje vlastní přínos práce. Výsledná aplikace je funkční a obsahuje testy webové aplikace a testy pro testování vstupů. Dle zadání nebyly implementovány kontrolní seznamy na testování stránek webové aplikace. Dále vytýkám uživatelsky velice nepříznivé rozhraní. Výsledné rozhraní je nepřehledné i pro „znalého“ uživatele problematiky. Studentka mohla častěji využít konzultací k dosažení kvalitnějších výsledků. Závěrem mohu konstatovat, že zadání bylo z velké části splněno, s přihlédnutím ke komplexnosti zadání bakalářské práce (návrh a implementace frond-end, back-end včetně databáze) navrhuji práci k obhajobě s hodnocením C.

Navrhovaná známka
C
Body
70

Posudek oponenta

Švikruha, Patrik

Študentka sa v diplomovej práci zaoberá vytvorením podpornej aplikácie pre penetračné testovanie webových aplikácií. Aplikácia má slúžiť pre testerov na kontrolu postupov pri testovaní podľa metodológií vychádzajúcich z OWASP ASVS a OWASP Testing Guide. V kapitole 1 je prehľadný popis OWASP metodológii, výhrady mám iba ku kapitole 1.3 kde chýbajú popísané príklady zraniteľností ktoré je možné určiť iba ručným testovaním. Na začiatku kapitoly 2 autorka uvádza že návrh aplikácie je vytvorený abstraktne a že pri implementácii tento návrh pravdepodobne nebude dodržaný, pretože sa bude meniť objektový model a „smerovanie projektu“. Význam tejto kapitoly je spochybnený hneď v jej úvode a nie je jasné či autorka tento návrh dodržal alebo výsledná aplikácia používa inú architektúru/modely. Autorka tu popisuje použité technológie veľmi povrchne, chýba presnejší opis knižnice jQuery a kaskádového frameworku Bootstrap. Pri popise backendu aplikácie nie je dostatočne vysvetlený popis vzoru MVC a jeho integrácii s Laravel frameworkom a rozdiel medzi klient side a server renderingom. Kapitola 3. obsahuje popis implementácie. Kapitola obsahuje zvláštny popis implementačných detailov ktorý pôsobí ako keby kód a popis robili dve rozdielne osoby. V tejto časti mi chýba viac obrázkov a prezentácia funkčnosti samotnej aplikácie ktorá je cieľom práce. Praktická časť je hostovaná na platforme Github ako git repozitár. K tomuto uloženiu mám výhrady pretože všetky časti aplikácie sa nachádzajú v archívoch zip, čím stráca zmysel mať tieto zdrojové kódy v gite. Návod k spusteniu aplikácie sa nachádza v prílohe a nie je dostatočný, iba s jeho pomocou nie je možné aplikáciu spustiť. Aplikácia je síce funkčná ale iba po prihlasovaciu obrazovku. Akýkoľvek pokus o prihlásenie alebo registráciu skončil chybou servera 500. Tým pádom nie je možné overiť funkcionalitu aplikácie. Kód aplikácie obsahuje veľké množstvo zakomentovaného kódu, nepoužitých súborov a konfigurácii ktoré sa nepoužívajú. Pre príklad uvediem že sa používajú 4 verzie jQuery (3.4.1, 3.3.1, 1.11.3 a 3.2). Súbor layout.blade.php využíva 3 verzie jQuery (1.11.3, 3.4.1 a 3.3.1 ) načítavané do DOMu v tomto poradí. Toto vidím ako obrovský problém rozšíriteľnosti ktorá je jedným z bodov zadania. Ďalší príklad je použitie SPA frameworku Vue.js, ktorý sa nachádza v projekte ale vo výslednom riešení nie je použitý. Ďalším problémom rozšíriteľnosti je mixovanie inline skriptov a samotných View aplikácie. Sama autorka v kapitole 3.4.1 na strane 40 tvrdí že toto mixovanie inline JavaScripového kódu „nie je to praktické ani prehľadné“. Je teda otázne prečo nešla cestou externých skriptov ktoré umožňujú ľahšie rozšírenie aplikácie. Práca po formálnej časti štruktúry nepôsobí dojmom diplomovej práce. Kapitoly 2 a ďalej pôsobia chaoticky občas sa popisujú implementačne detaily veľmi podrobne ale textu chýbajú logickejšie prepojenia a niektoré témy su popísané veľmi povrchne. Praktická časť pôsobí ako veľmi ranným prototypom riešenia, ktoré bolo odovzdané na poslednú chvíľu. Pri obhajobe doporučujem odprezentovať funkčnú aplikáciu.

Navrhovaná známka
E
Body
50

Otázky

eVSKP id 125972