VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika
Vytvoření aplikace pro soutěž Zlatý Erb bakalářská práce
Autor: Petr Dvořák Vedoucí práce: Mgr. Hana Vojáčková, Ph.D. Jihlava 2014
Abstrakt Tato práce se zabývá vytvořením aplikace pro zjednodušení práce poroty v soutěži Zlatý Erb. Dále vychází z metodiky sběru dat o dostupnosti, úplnosti a bezbariérovosti webových stránek subjektů veřejné správy v Kraji Vysočina. Tato aplikace má zjišťovat validnost webových stránek (pomocí W3C).
Klíčová slova C#, Zlatý Erb, IPv6, DNSSEC, parsovat, povinné údaje
Abstract This thesis aims on creating an application for simplify the work of the jury for the
Competition Golden Crest. Furthermore, based on the methodology for collecting data on the availability, integrity and barrier-free websites of public administration in the region Vysocina. This application has verified, that webpages are valid. (using W3C).
Key words C#, Golden Crest, IPv6, DNSSEC, parse, compulsory data
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne
............................................... Podpis
Poděkování Na tomto místě bych rád poděkoval své vedoucí práce Mgr. Haně Vojáčkové, Ph.D., za poskytnutí tématu a za poskytnuté rady při tvorbě této práce.
Obsah 1
Úvod.......................................................................................................................... 8
2
Teoretický rozbor ...................................................................................................... 9 2.1
Soutěž Zlatý Erb ................................................................................................. 9
2.1.1
Co znamená soutěž Zlatý Erb ..................................................................... 9
2.2
Historie internetu a WWW............................................................................... 11
2.3
Validace webových stránek.............................................................................. 11
2.3.1 2.4
Důvody validace............................................................................................... 12
2.4.1 2.5
Proč je důležité mít validní webové stránky: ............................................ 12
Tvorba webových stránek ................................................................................ 12
2.5.1 2.6
Co vůbec znamená validace webových stránek ........................................ 11
Seznámení se značkovacím jazykem ........................................................ 12
Jazyky pro tvorbu webových stránek a aplikací pro windows ......................... 13
2.6.1
HTML (HyperText Markup Language) .................................................... 13
2.6.2
CSS (Cascading Style Sheets) .................................................................. 17
2.6.3
Jazyk XML ............................................................................................... 20
2.6.4
ASP.NET .................................................................................................. 21
2.6.5
Programovací jazyk C# ............................................................................. 22
3
Návrh programu ...................................................................................................... 27
4
Realizace programu ................................................................................................ 28 4.1
Stažení webové stránky a základní informace o hlavním formuláři ................ 28
4.2
Uživatelské rozhraní – hlavní formulář............................................................ 30
4.3
Přesměrování na validátor W3 pomocí aplikace .............................................. 32
4.4
Vyhledání podstránek pomocí aplikace ........................................................... 32
4.5
Konfigurační soubor aplikace .......................................................................... 34
4.6
Regulární výrazy .............................................................................................. 35
4.6.1
Regulární výrazy – shoda se znaky........................................................... 36
4.6.2
Regulární výrazy – shoda s pozicí ............................................................ 36
4.7
Vyhledání povinných údajů s využitím aplikace ............................................. 36
4.8
Ověření protokolu IPv6 a zabezpečení DNSSEC ............................................ 43
4.8.1
IPv6 ........................................................................................................... 43
4.8.2
Protokol IPv6 ............................................................................................ 43
4.8.3
IPv6 adresy v DNS ................................................................................... 43
4.8.4
Rozdíly mezi POST a GET ....................................................................... 43
4.8.5
Ověřování podpory IPv6 s využitím aplikace........................................... 44
4.8.6
DNSSEC ................................................................................................... 45
5
4.8.7
Ověření DNSSEC s využím aplikace ....................................................... 46
4.8.8
Vytvoření vlastního messageBoxu ........................................................... 48
Závěr ....................................................................................................................... 54
Seznam obrázků .............................................................................................................. 57 Přílohy............................................................................................................................. 59 1
Obsah přiloženého CD ............................................................................................ 59
2
Uživatelský manuál................................................................................................. 60 2.1
První spuštění ................................................................................................... 60
2.2
Ověření povinných údajů ................................................................................. 60
2.3
Konfigurační soubor......................................................................................... 60
2.4
Přesměrování na validátor W3 ......................................................................... 61
2.5
Vyhledání podstránek....................................................................................... 61
2.6
Test IPv6 a DNSSEC ....................................................................................... 61
2.7
Spočti celkové body ......................................................................................... 62
2.8
Zavření aplikace ............................................................................................... 62
1 Úvod Touto bakalářskou prací bych se rád zaměřil na soutěž Zlatý Erb, analýzu a validaci webových stránek. Dále se práce zaměřuje na analýzu a implementaci programu, který zjednoduší práci porotě v soutěži Zlatý Erb. V součastné době soutěž Zlatý Erb nevyužívá žádné softwarové řešení, a proto jsem se rozhodl, zvolit toto téma jako mojí bakalářskou práci. Mým cílem je především vytvořit aplikaci, která usnadní práci porotě a snad i trochu ukrátí čas. Tento program bude vyvíjen v prostředí .NET Framework 4.5 a bude psaný v jazyce C#. Jak již jsem se zmiňoval v dnešní době neexistuje žádná taková desktopová aplikace, která bude kontrolovat povinné údaje přidělené každé webové stránce v soutěži Zlatý Erb, a která bude také usnadňovat práci v rozhodování, zda tato stránka podporuje protokol IPv6 a zabezpečení DNSSEC či nikoliv. Cílem práce je vytvořit aplikaci, která bude generovat kód webové stránky, jakmile uživatel zadá její adresu. Potom bude možnost s tímto kódem pracovat. A to tak, že aplikace bude umožnovat nalézt všechny povinné údaje, které jsou v kritériích soutěže Zlatý Erb a hlavně těch, které se na konkrétní stránce nacházejí. Dále aplikace bude umět nalézt v kódu webové stránky všechny její podstránky. Uživatel zde bude mít navíc možnost si vyfiltrovat konkrétní hledanou stránku. Navíc si uživatel nebude muset testovat IPv6 a DNSSEC pomocí stránky nic.cz, protože tato aplikace řeší i tento problém. Mimo všechno toto, aplikace bude mít svůj konfigurační soubor pro případ, že se uživatel rozhodne nějaké dílčí kritérium v povinných údajích dále nekontrolovat. Aplikace bude vytvořena tak, že uživatel nebude mít možnost minimalizovat či maximalizovat danou aplikaci. Toto vyřeší další možné problémy s možností odlišné úhlopříčky monitoru programátora a zadavatele. Všechna nově otevřená formulářová okna budou řešena modálně.
8
2 Teoretický rozbor 2.1 Soutěž Zlatý Erb 2.1.1 Co znamená soutěž Zlatý Erb Jedná se o soutěž pro tvorbu nejlepších webových stránek a elektronických služeb měst a obcí. Cíl soutěže je modernizovat veřejné správy prostřednictvím rozvoje informačních služeb občanům nebo skupinám občanů s využitím internetu a jiných elektronických medií. Orgány soutěže a organizační stupně Tuto soutěž vyhlašuje Sdružení Zlatý Erb za podpory společnosti WEBHOUSE s . r . o. Soutěž je dvoustupňová: krajské kolo, celostátní kolo. Vyhlašovatel si volí předsedu a členy celostátní poroty. Předseda poroty definuje kritéria a řídí činnost poroty. Celostátní porota by měla mít nejméně pět členů. Zastupující člen předchozího vítěze soutěže má právo usednout v komisi. Jednotlivé kraje si jmenují předsedu a členy krajských porot pro krajské kolo. V soutěži se nesmějí umístit soutěžící s přímým vztahem k některému členovi [1]. Soutěžící Soutěžící jsou města, části měst, obce a také kraje ČR.
Kategorie 1) Nejlepší webové stránky města 2) Nejlepší webové stránky obce 3) Nejlepší elektronická služba
Krajská kola: V prvních dvou kategoriích se hodnotí tyto důležitá kritéria: a) Povinné informace b) Úřední deska c) Doporučené a doplňkové informace d) Ovládání webu a přehlednost vytvořené stránky 9
e) Bezbariérová přístupnost f) Podpora IPv6 a DNSSEC
V kategorii Nejlepší elektronická služba se hodnotí: a) Užitečnost služby b) Nápaditost řešení
Celostátní kola: V kategoriích Nejlepší webové stránky měst a Nejlepší webové stránky obcí jsou kritéria: a) Test reakce na žádost o informaci b) Povinné informace c) Úřední deska d) Doporučené informace e) Doplňkové informace f) Ovládání webu, navigace a přehlednost stránky g) Výtvarné zpracování s možností přihlášení na různých prohlížečích h) Bezbariérová přístupnost – podrobněji než u krajského kola i) Inovativní a přidaná hodnota j) Pomocné služby k) Podpora IPV6 a DNSSEC
Zvláštní cena soutěže Je cena veřejnosti, která se uděluje na základě zaslaných hlasů uživatelů vztažených na jednoho obyvatele obce. Další zvláštní cena je udělována za nejlepší turistickou prezentaci. Registrace Registraci do soutěže naleznete na stránkách http://zlatyerb.obce.cz
10
2.2 Historie internetu a WWW WWW vychází z anglických slov „World Wide Web“ neboli celosvětová síť. Internet vznikl zhruba v roce 1960, pod záštitou Ministerstva obrany USA s názvem „Advanced Research Project Agency“. Hlavním cílem bylo pomocí sítě na velkou vzdálenost propojit počítače. Pro robustní a stabilní výkon byl realizován internetový protokol. Šlo o to, že pomocí tohoto protokolu a to v případě nestabilních tras, dorazil paket do cíle přes alternativní trasy. Časem vznikl TCP (Transmission Control Protocol) protokol, který umožňoval vytvářet lepší komunikační aplikace pro internet. Průlom byl kolem roku 1992, kdy vznikl nám již dobře známý protokol HTTP (Hypertext Transfer Protocol), což je protokol pro posílání dokumentů vytvořených hypertextovým značkovacím jazykem [2, str. 26].
2.3 Validace webových stránek 2.3.1 Co vůbec znamená validace webových stránek Validace je v podstatě opravování chyb ve zdrojovém kódu webových stránek. Je možné, že se nám web ukazuje v každém prohlížeči zcela jinak, a proto je zde validace webových stránek. Za použití různých nástrojů pro validaci lze docílit opravy všech chyb v našem nevalidním kódu a docílit tak správného zobrazení naší webové stránky. Pro snadné pochopení tohoto relevantního problému tu mám pár základních ukázek, jak by měl vypadat správný validní kód [4].
1. Validní příklad:
můj nadpis
Validní příklad: napsáno správně, každý tag je ukončen postupně.
11
2. Nevalidní příklad:
můj nadpis
Nevalidní příklad: v tomto příkladu vidíme ukončovací tag
, který není ukončen podle pravidel správné validace. Jednoduše se jedná o to, že prohlížeč nevídí ukončovací tag a z toho výplývá, že je zde zcela zbytečný.
2.4 Důvody validace 2.4.1 Proč je důležité mít validní webové stránky: Je-li validní kód napsán bezchybně, je zdaleka přehlednější, příjemnější na pohled a dokonce se rychleji načítá, navíc webový prohlížeč nemá tolik práce jako s nevalidním webem. Jakmile opravíme všechny chyby, které nám validátor najde, je dobré otestovat naše webové stránky v nejpoužívanějších webových prohlížečích. Je tu samozřejmě i možnost, že pokud se nám validní webové stránky nezobrazují v daném prohlížeči správně, může být chyba na straně prohlížeče, ovšem v dnešní době, to nebývá tak časté. Proto závěrem validovat stránky je velmi důležité, pokud chceme, aby naše stránky vypadaly jako od profesionála a ne laika [4].
2.5 Tvorba webových stránek 2.5.1 Seznámení se značkovacím jazykem Abychom pochopili nejdůležitější jazyk pro tvorbu webových stránek, samozřejmě se jedná o HTML, musíme nejdříve pochopit, co vůbec znamená značkovací jazyk. Tento jazyk byl vytvořen, aby mohly být určité části na webu zobrazeny např. tučně, kurzívou atd. [2, str. 38].
Značkovací jazyk je „systematizovaná a standardizovaná sada značkovacích instrukcí“. Příklad značkovacího jazyka: Začátek zvýraznění. Naše první stránka. Konec zvýraznění. Jak je vidět je dost obtížné v textu rozpoznat zvýraznění, a proto vznikl programovací jazyk HTML, u kterého se značkovací pokyny uvádějí v závorkách „větší“ a „menší“. Tyto značky označují začátek značkovacího pokynu. Konec je potom označován ještě zpětným lomítkem. Pro lepší pochopení [2, str. 39]: a) Začátek tučného písma:
Abychom mohli vytvořit tyto „formátovací jazyky“ musí být splněny určité požadavky. Stručně se jedná o tyto [2, str. 38]: a) Instrukce řízeny striktními pravidly b) Instrukce musí být v textovém dokumentu c) Pro koncového uživatele, instrukce neviditelná d) Instrukce by měly ukázat webovému prohlížeči začátek, konec a formátování
2.6 Jazyky pro tvorbu webových stránek a aplikací pro windows 2.6.1 HTML (HyperText Markup Language) Nejjednodušší a zároveň nejdůležitější jazyk pro zvládnutí tvorby webových stránek. Téměř všechny webové stránky jsou psány v tomto kódu a to i stránky v serverových jazycích jako jsou PHP, ASP apod. Na výstup, jak je jistě zřejmé generují HTML. Dokonce i Javascript pracuje v rámci HTML prvků. Každý HTML soubor by měl obsahovat tři základní tagy: , , , většinou se ještě mezi základní tagy uvádí i tag
Ve většině případů, co je obsaženo v těle, to vidí uživatel [2, str. 50].
2.6.1.3 Vlastnosti HTML: Každá značka v HTML má hned několik vlastností. Popis značek a jejich účel použití: Identifikátory značek – ID a třídy: a) ID „Vlastnost ID přiřazuje značce nezaměnitelný identifikátor“. Například využíváme-li značku