}w!"#$%&'()+,-./012345<ya

Rozměr: px
Začít zobrazení ze stránky:

Download "}w!"#$%&'()+,-./012345<ya"

Transkript

1 }w!"#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Analýza času stráveného na webových stránkách BAKALÁŘSKÁ PRÁCE Kamil Andoniadis Brno, jaro 2015

2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Kamil Andoniadis Vedoucí práce: RNDr. Marek Kumpošt, Ph.D ii

3 Poděkování Chtěl bych poděkovat svému vedoucímu RNDr. Marku Kumpoštovi, Ph.D. a konzultantu Mgr. Karolu Kubandovi za hodnotné rady a připomínky při řešení této práce. Dále bych chtěl poděkovat rodině a přátelům za trpělivost, kterou se mnou měli v době psaní vlastní práce. iii

4 Shrnutí Cíl této práce je měřit čas strávený na webových stránkách všemi uživateli lokální sítě tak, aby si nemuseli na své zařízení instalovat žádné sledovací aplikace. Zároveň naměřené informace ukládat do databáze a zprostředkovávat je pomocí jednoduché vizualizace. Teoretická část se zabývá existujícími nástroji na analýzu času stráveného na webových stránkách, jejich vzájemným odlišnostem a významem proxy serveru pro tuto práci. Výstupem práce je modifikovaný proxy server, který vkládá měřící skript do všech html dokumentů směřujících do lokální sítě a webový server, který přijímá a zpracovává naměřené informace. iv

5 Klíčová slova proxy server, javascript, html, analýza času, databáze v

6 Obsah Úvod Motivace Proxy Server Typy Proxy Význam Proxy Možnosti dostupné analýzy Analýza času na webové stránce Analýza času jednoho uživatele Analýza času na bráně Měřící skript Návrh Architektura řešení Návrh Měřícího algoritmu Uvažované Proxy servery Uvažované Web servery Uvažované databáze Řešení Popis navrženého měřícího scriptu Měření aktivity uživatele na stránce Struktura html a iframe Posílání dat webovému serveru Modifikace Tinyproxy Komprese/Decomprese html dokumentu Místo vložení měřícího skriptu Webový server Express nad platformou Node.js a databáze PostgreSQL Použití Node.js PostgreSQL a Tabulky databáze Vizualizace naměřených dat Úprava dat v databázi vi

7 Závěr Příloha A Soubory odevzdané v IS Příloha B Vytvořené soubory Příloha C Upravené soubory vii

8 Úvod Žádná instituce nechce, aby její zaměstnanci využívali prostředky instituce pro své soukromé účely. Slovní zákaz není žádná bariéra a zaměstnanec tak může nehlídané prostředky používat, jak uzná za vhodné. To platí i v případě internetu, který není pouze jednoúčelový nástroj, ale zprostředkovává nám komunikaci, přístup k důležitým informacím i zábavě. Internetová komunikace se dá snadno sledovat a stejně snadno filtrovat nebo úplně blokovat. Co pro jednu instituci je pouze zábavou může pro druhou být cílem, proto záleží na managementu každé instituce, jak s informacemi o čase stráveném zaměstnanci na internetu naloží. Spokojený pracovník je efektivní pracovník, a proto zakazovat uživatelům přístup kvůli občasným krátkodobým návštěvám stránek nesouvisících s cíly instituce není vhodným přístupem. Cíl této práce je měřit čas strávený na webových stránkách všemi uživateli lokální sítě tak, aby si nemuseli na své zařízení instalovat žádné sledovací aplikace. Zároveň naměřené informace ukládat do databáze a zprostředkovávat je pomocí jednoduché vizualizace. K tomuto účelu upravím proxy server tak, aby vkládal měřící skript do každého html dokumentu, který směřuje do lokální sítě, a vytvořím webový server, který přijímá a zpracovává naměřené informace. Ve své práci se zabývám pouze komunikací nešifrovaným protokolem HTTP [2]. Vkládání měřícího skriptu do šifrovaného dokumentu by navíc vyžadovalo aby proxy server rozdělil komunikaci, cílovému serveru poslal svůj veřejný klíč, odpověd serveru dešifroval, pozměnil obsah a znovu zašifroval pomocí veřejného klíče uživatele. Těmto problémům se ale ve své práci nevěnuji. V první kapitole zmíním význam a funkcionality, které může proxy server implementovat. Zároveň popíši existující nástroje na analýzu času stráveného na webových stránkách a vysvětlím, v čem 1

9 se liší od cíle této práce. V druhé kapitole uvedu stručný popis všech uvažovaných i zvolených komponent, jejich vzájemnou komunikaci a navrhnu měřící skript. V poslední kapitole se zabývám praktickou částí, která se skládá z implementace měřícího skriptu, webového serveru s databází a modifikace proxy serveru. V závěru zhodnotím, čeho jsem dosáhl a zmíním možnosti dalšího rozšíření. 2

10 Kapitola 1 Motivace Z analýzy sít ového provozu mohu získat požadavek, čas jeho odeslání i obsah odpovědi na požadavek, ale informace, jak dlouho měl uživatel stánku zobrazenou, zůstává ukryta. Musel jsem do prohlížeče uživatele vložit skript, který měří dobu zobrazené stránky a naměřená data posílá do databáze. Bylo by neefektivní nutit každého uživatele k instalaci sledovací aplikace na každé své zařízení, které bude v síti používat. A v případě, že by se na některá zařízení zapomnělo, byla by data a následná analýza neúplná. Snazší je modifikovat odpověd na každý požadavek vložením jednoduchého skriptu, který bude vykonávat zmíněnou funkcionalitu. Abych mohl modifikovat odpovědi serverů z internetu, potřebuji sledovat komunikaci procházející bránou do lokální sítě na aplikační úrovni a to prostřednictvím Proxy serveru. 1.1 Proxy Server Proxy je počítačový proces často používaný jako firewall nebo jeho součást, který navazuje spojení mezi klientem a serverovým počítačovým systémem tím, že se klientu jeví jako cílový server a serveru jako klient. Proxy není striktně určen pro serverové stanice a tak může být spuštěn i na osobním počítači [4]. Firewall Internetová brána, která omezuje provoz datové komunikace z jedné sítě do druhé. Firewall typicky chrání menší vnitřní sít nebo i jen jednoho uživatele před větší sítí jako je internet. Firewall aplikuje pravidla bezpečnostní politiky a řídí provoz mezi sítěmi [5]. Brána (anglicky Gateway) Mechanismus spojující dvě nebo více po- 3

11 1. MOTIVACE čítačových sítí s podobnou funkcionalitou ale odlišnou implementací a umožňující komunikaci dvěma zařízením z různých sítí. Brána je rozhraní mezi dvěma počítačovými sítěmi. V teorii uvažujeme bránu na jakékoli vrstvě OSI referenčního modelu. V praxi brána pracuje na třetí vrstvě jako router a sedmé jako Proxy server. Pokud dvě sítě poskytují zařízením své služby pomocí jiných protokolů, může brána přeložit jeden protokol do druhého nebo jinak usnadnit komunikaci [4]. OSI (anglicky Open Systems Interconnection) Sedmi vrstevný referenční model standardu ISO-ITU-T I7498. Architektura komunikace různých vrstev v počítačových sítích. Vrstvy od nejvyšší po nejnižší jsou Aplikační, Prezenční, Relační, Transportní, Sít ová, Datového spoje a Fyzická [4] Typy Proxy Forward Proxy - Tento typ Proxy vykonává v lokální síti funkci brány. Uživatel posílá své požadavky Proxy serveru, který požadavek přeposílá cílovému serveru. Odpověd pak podle zaměření zpracuje a posílá klientovi (obrázek 1.1). Obrázek 1.1: Forward Proxy 1. Open Proxy Proxy server přístupný všem v internetu, jehož cílem je většinou zabezpečená komunikace s klientem a jeho anonymizace (obrázek 1.2). Reverse Proxy Vykonává funkci brány pro serverová pole. Klientovi se reverse Proxy jeví jako cílový server, ale jeho požadavek 1. proxy_servers.htm 4

12 1. MOTIVACE Obrázek 1.2: Open Proxy 2. je přeposílán dál ke skutečnému serveru. Reverse Proxy často mívá i jiné funkcionality například šifrování, komprese a vyvažování zátěže(obrázek 1.3). Obrázek 1.3: Reverse Proxy Význam Proxy Proxy server komunikuje s koncovými uzly na aplikační úrovni a díky tomu může provést detailní rozbor každé přijaté informace a rozhodnout se co s informací udělá dál. Některé funkcionality, které mohou Proxy implementovat: Autentizace Proces ověřování identity uživatele za účelem zpřístupnění systémových zdrojů. Proxy může rozlišovat mezi uživatelskými účty i příslušnost ke skupině, na jejichž základě pak zpřístupnit sít ové služby a komunikace proxy_servers.htm 3. proxy_servers.htm 5

13 1. MOTIVACE Filtrování Součástí firewallu bývá podpora filtrování, díky níž je možné implementovat pravidla bezpečnostní politiky i politiky přístupu. Příklad některých běžných metod pro filtrování obsahu: URL, DNS blacklist, URL regex filtering, MIME filtering nebo filtering založený na klíčových slovech v obsahu 4. Šifrování Podpora šifrovaného spojení mezi klientem a Proxy. Kešování Kešovací Proxy urychluje spojení mezi klientem a Proxy tím, že lokálně ukládá odpovědi serverů na časté dotazy klientů. Kvůli této funkcionalitě vznikly Proxy servery. Komprese Pomáhá urychlit přenos dat po síti mezi klientem a serverem. Komprese může snížit velikost přenášených dat až desetinásobně. Anonymita - Proxy modifikuje hlavičky dotazu odeslané klientem tak, aby nikdo z vnější strany sítě nemohl identifikovat uživatele ani zařízení, ze kterého dotaz odeslal. Logování Zaznamenává informace o požadavcích klienta i odpovědi serveru, zpravidla čas přijetí požadavku i odpovědi, metoda HTTP požadavku, požadované URL nebo množství přenesených dat. 1.2 Možnosti dostupné analýzy Při delším čase stráveném prací na počítači je člověk snadno rozptýlen, zaujme jej chytrá reklama, vyhledá si své oblíbené internetové stránky a než se vzpamatuje, ztratí mnoho času. Detailní analýza času, který uživatel stráví na internetu, poskytuje spoustu informací o tom, kdy byl uživatel rozptýlen, čím a jak dlouho. Ze záznamů navštívených URL je možné určit zájmy uživatele i jeho pohyb na stránkách. Z většího množství informací o jedné stránce můžeme vyčíst čím je atraktivní a čím naopak zcela nezajímavá. Dlouho

14 1. MOTIVACE dobější analýza ukazuje informace o návycích uživatelů a změnách jejich osobních zájmů. Existuje celá řada nástrojů pomocí níž lze provádět takovou analýzu času. Dovolil jsem si je rozdělit do tří kategorií podle zaměření Analýza času na webové stránce Měřící skript je součástí zdrojového kódu webové stránky, měření je prováděno v prohlížeči uživatele, ale data jsou asociována pouze s jednou konkrétní stránkou. Pro analytiky je v tomto případě důležitější zajímavost webu a struktura stránky. Naopak konkretizace uživatele je prováděna na úrovni států a relací. Z průzkumů 5 vychází, že více jak 50% webových stránek, které používají nástroj pro analýzu, používá právě Google Analytics. Google Analytics 6 Statistický nástroj, který umožňuje majitelům webových stránek sledovat pohyb návštěvníků na jejich stránkách, jejich demografické údaje i jimi provedené konverze. Majitel webových stránek musí jen vložit službou vygenerovaný skript na každou stránku, ze které chce získat nějaké informace. A v účtu Google Analytics určí jaké statistiky chce sledováním získat. Google Analytics má opravdu bohatou nabídku možného nastavení sledování. Mimo sledování času a pohybu, který uživatel strávil na stránce, umí Google Analytics zjistit i několik stránek, které uživatel navštívil před sledovaným webem a tím zjistit z kterých webů přichází návštěvníci a kde se vyplatí mít reklamy a kde ne. Umí rozlišit mezi návštěvníkem a zákazníkem, který splnil nějaký z předem určených cílů nákup zboží, stažení souboru, použití aplikace a zjistit o něm i demografické údaje jazyk, země, zařízení, prohlížeče, operační systém Analýza času jednoho uživatele Analýzu provádí aplikace běžně instalována na osobním počítači uživatele, kde měření neovlivní výpadek sítě ani nepředvídané 5. analysis/all 6. index.html 7

15 1. MOTIVACE ukončení prohlížeče. Takový nástroj bývá často rozšířen i o analýzu času, který uživatel tráví v rámci počítače mimo webový prohlížeč. Tyto nástroje jsou vynikající pro analýzy vlastního času, nicméně v globálním měřítku nemají reálné využití. Pro tuto kategorii jsem vybral dva zástupce ResqueTime a Manic Time. RescueTime 7 Mobilní i počítačová aplikace, která sbírá informace o čase stráveném v rámci operačního systému a tyto informace posílá ke zpracování na web RescueTime. Tato aplikace kategorizuje každý spuštěný program i každou webovou stránku aby mohla později rozhodnout, zda byl čas strávený na počítači využit k zábavě nebo práci. RescueTime umožňuje uživateli změnit některá standardní nastavení, která se týkají kategorií. Například pokud je uživatel správce webu se zábavou, nebude chtít, aby jeho čas strávený na tomto webu byl řazen do kategorie zábavy a následně vyhodnocen jako neproduktivní. RescueTime zobrazuje naměřené informace v souhrnných statistikách za měřené období jednoho dne, týdne, měsíce nebo roku s pohledy na webové stránky a aplikace, kategorie, produktivitu uživatele nebo stanovené cíle. ManicTime 8 Aplikace je spustitelná pouze na platformě.net, má vlastní databázi a na rozdíl od RescueTime neposílá žádná data po síti a vše vyhodnocuje lokálně. ManicTime zobrazuje informace pouze na časové ose jednoho dne, kde uživatel vidí, kolik času strávil s konkrétní aplikací a v případě webového prohlížeče, kterého stránky navštívil. Do této časové osy může uživatel označit, kdy pracoval například na firemním projektu i offline aktivity jako konference a firemní hovory. A na základě těchto značek vygeneruje ManicTime report, který je tou nejzajímavější statistikou této aplikace. Ostatní statistiky zobrazují pouze nejpoužívanější aplikace a nejnavštěvovanější webové stránky

16 1. MOTIVACE Analýza času na bráně V předchozích dvou kategoriích jsem uvedl analýzu prováděnou přímo na webové stránce, která zahrnovala mnoho uživatelů, ale pouze jednu konkrétní stránku a analýzu prováděnou na počítači uživatele, která zahrnovala analýzu více stránek, ale pouze jednoho konkrétního uživatele. V tomto případě analýza zahrnuje všechna zařízení internetového provozu schované za jednou konkrétní bránou a všechny jejich požadavky na webové stránky. Do této kategorie patří opravdu málo použitelných nástrojů, většinou jde o aplikace třetích stran pro aplikační Proxy a to je jeden z důvodů, proč vznikla tato práce. Zde uvedu pouze Squint, aplikaci určenou pro kešovací Proxy Squid (více o Squid v kapitole 2.2 Uvažované Proxy servery). Squint 9 Squint periodicky analyzuje záznamy Squid proxy a generuje záznam o uživatelých komunikujících prostřednictvím proxy. Vygenerovaná zpráva obsahuje detailní historii návštěv webových stránek každého uživatele spolu s přibližným časem, který uživatel trávil na zmíněných stránkách. Squint předpokládá, že uživatel aktivně prohlíží webový obsah maximálně 2 minuty po načtení stránky a že uživatel ukončil relaci, pokud se o něm v proxy záznamu nenachází žádná zpráva po dobu 5 minut. 1.3 Měřící skript V motivaci jsem zmínil, že měření času stráveného na webových stránkách musím provádět na stroji každého uživatele v rámci lokální sítě. Proto musí být měřící skript spustitelný nejlépe v každém webovém prohlížeči. Všechny majoritní webové prohlížeče mají implementovaný interpreter javascriptového kódu, ale složitější konstrukce v různých interpreterech mohou končit s odlišnými výsledky. Zároveň se v různých prohlížečích liší práce s událostmi a objektovým modelem dokumentu (anglicky Document Object Model 10, dále jen DOM)

17 Kapitola 2 Návrh Celý systém na měření času stráveného uživatelem na webových stránkách se skládá ze čtyř komponent: 1. Měřící skript implementovaný v jazyce Javascript. 2. Proxy server který vkládá tento skript do html dokumentu. 3. Databáze na ukládání naměřených dat. 4. Webový server který přijímá a ukládá data poslaná skriptem do databáze a zprostředkovává data uživateli. 2.1 Architektura řešení Komunikaci všech komponent od uživatelova poslaného požadavku jsem zobrazil v následujícím sekvenčním diagramu (obrázek 2.1). Proxy přepošle uživatelův požadavek cílovému serveru a až proxy obdrží odpověd, vloží měřící skript do přijatého html dokumentu. Javascript se do html dokumentu vkládá dvěma způsoby. Přímo vložením javascriptu mezi otvírající a zavírající script tag nebo URL adresou v atributu src vloženého script elementu. Zvolil jsem druhý způsob, abych oddělil správu měřícího skriptu od proxy a nezatěžoval proxy vkládáním celého kódu. Samotný skript se stáhne a spustí až po načtení patřičného script elementu Návrh Měřícího algoritmu Nejdříve skript po načtení zjistí, zdali je stránka aktivní a viditelná. Potom už jen využívám událostí DOM, abych detekoval akti- 10

18 2. NÁVRH Obrázek 2.1: Komunikace všech komponent. vitu uživatele a posílal data v pravidelném časovém intervalu. Algoritmus detekce aktivity a posílání naměřených dat webovému serveru jsem vyjádřil následujícím diagramem (obrázek 2.2). Naměřená data webový server načte z query řetězce dotazu a vloží do databáze. Obrázek 2.2: Diagram aktivit měřícího skriptu. 2.2 Uvažované Proxy servery Existuje několik proxy serverů s otevřenými zdrojovými kódy, sám jsem ale uvažoval pouze nad třemi z nich. Prioritou pro mě byla 11

19 2. NÁVRH snadná modifikovatelnost, aby proxy server nebyl příliš velký a systémově náročný. Node.js 1 Platforma postavená na javascript engine V8 2 společnosti Google. Stejný engine používá Google ve svém prohlížeči Chrome 3. Tato platforma slouží pro jednoduché a rychlé vytváření škálujících webových aplikací. NodeJS používá událostmi řízený, neblokující I/O model, který z něj dělá systémově nenáročnou a efektivní platformu. Tento model je kontrastem k současným modelům založených na vláknech. Uživatelé se nemusí obávat uváznutí (anglicky deadlock), protože rozhraní, které Node poskytuje, nemá žádné zámky a téměř žádné funkce nepracují přímo se vstupy ani s výstupy. Proto nejsou procesy nikdy blokovány a i nezkušení vývojáři jsou schopni vytvářet vysoce škálovatelné webové aplikace. Node byl ovlivněn a podobně designován jako EventMachine 4 pro Ruby nebo Twisted 5 pro Python. Node je licencován pod MIT 6. Samotný Node.js není webový proxy server, k tomuto účelu bych musel použít jeden z modulů implementovaných pro tuto platformu. Na výběr existuje několik variant, které by pro jednotlivce nebo malou sít byly ideální, ale nebyl jsem přesvědčen, že by byl proxy server na runtime platformě ideální pro větší sít. Squid 7 Squid je plně funkční kešovací webproxy podporující HTTP, HTTPS, FTP a jiné protokoly. Proxy šetří šířku pásma a vylepšuje reakční dobu ukládáním lokálních kopií často dotazovaných webových stránek a jejich znovupoužíváním. Squid spíše kopíruje často používaný obsah než neefektivně vše. Zároveň může směrovat obsah dotazů na servery mnoha různými způsoby a tím vytvořit hierarchii kešovacího serveru, který optimalizuje průtok, značně redukuje zátěž serveru a zlepšuje čas doručení ke klientu. Squid nabízí bohaté řízení přístupu, autorizace, logovací prostředí pro vývoj

20 2. NÁVRH webové proxy i bohatou nabídku možností optimalizace provozu. Většina optimalizace je v základním nastavení pro jednodušší instalaci a vyšší výkon. Squid je multiplatformní proxy server a je licencován pod GNU GPLv2 8. Rozhodl jsem se neimplementovat svoji práci do tohoto proxy serveru, protože má velké množství zdrojových kódů a funkcí, kterých bych nevyužil. Tinyproxy 9 Tinyproxy je systémově nenáročný HTTP a HTTPS proxy démon pro POSIX 10 kompatibilní operační systémy. Navržený od základu aby byl rychlý a přesto malý. Je to ideální řešení pro vestavěné systémy, kde je požadována plně funkční proxy, ale systémové zdroje pro větší proxy nejsou dostupné. Tinyproxy je licencována pod GNU GPLv2. Tinyproxy vyžaduje velmi málo systémových zdrojů. S použitím knihovny glibc 11 zabírá pouze 2MB v operační paměti. Zátěž CPU roste lineárně s počtem souběžných spojení, proto může Tinyproxy běžet i na starších strojích, nebo na sít ových zařízeních s vestavěným UNIXovým systémem. Tinyproxy podporuje pomocí connect metody dopředné HTTPS spojení bez modifikace provozu, transparentní proxy i reverse proxy. Pro svoji práci jsem zvolil Tinyproxy, protože má malé systémové nároky, je snadno modifikovatelný a je implementován v jazyce C. 2.3 Uvažované Web servery Už při hledání proxy serveru mě zaujal javascriptový interpreter a framework v jednom NodeJS. Zároveň mě zaujalo, s jakou jednoduchostí v něm jde vytvořit webový server a jeden takový prezentuji v následující ukázce. Zde jsem příliš neuvažoval nad jinými alternativami. Našel jsem modul Express 12, který nad platformou generuje základní kostru webového serveru s jednou jednoduchou stránkou. Součástí Express je i html preprocesor Jade

21 var http = require( http ); http.createserver(function (req, res) { res.writehead(200, { Content-Type : text/plain }); res.end( Simple site\n ); }).listen(80, ); 2. NÁVRH Express Malý a flexibilní framework pro platformu NodeJS. Middleware s mnoha užitečnými metodami poskytuje robustní základ pro webové i mobilní aplikace a zároveň nijak neomezuje funkce platformy. Jade Zjednodušující jazyk pro psaní html šablon. Produkuje html kód, podporuje dynamické kódování a znovu používání kódu. 2.4 Uvažované databáze Mongodb 14 Dokumentově orientovaná NoSQL 15 databáze, která ukládá data do dokumentů ve formátu binární JSON 16. Oproti relačním databázím používá dynamické schéma, které nemusí být vůbec definováno. Proto přidání atributu do jednoho dokumentu nevyžaduje změnu ostatních dokumentů ani samotného schématu. Mongodb podporuje šifrovanou komunikaci, logování, autentizaci, autorizaci a na úrovni dokumentů ACID 17 vlastnosti. Mongodb může globálně škálovat mezi několika distribuovanými datovými centry a na rozdíl od jiných NoSQL databází, není limitován pouze na dotazy typu klíč-hodnota, ale podporuje i rozsahové a prostorové dotazy, regulární výrazy a funkce v jazyce javascript. Původně jsem ve své práci použil Mongodb, ale nevyhovoval mi zápis dotazů a velikost databáze. Mongodb při instalaci vygeneruje 3 soubory pro bod obnovy, aby se v případě chyby neztratily žádné informace. Velikost každého z těchto souborů je 1.1GB a velikost programového vybavení Mongodb asi 200MB

22 2. NÁVRH PostgreSQL 18 Silný objektově relační databázový systém s otevřenými zdrojovými kódy. Tato databáze je 15 let pod aktivním vývojem a za tu dobu si získala silnou reputaci pro spolehlivost, integritu a správnost. Databáze je licencována pod PostgreSQL licencí 19 a pustitelná na většině operačních systémů, včetně Linux, UNIX (BSD, Mac) i Windows. Rozhodl jsem se pro tuto databázi, protože jsem lépe obeznámen s dotazovacím jazykem SQL 20 a protože čistá instalace databáze PostgreSQL zabírá na disku pouze 62MB, z toho 20.6MB je samotný software PostgreSQL licence je podobná BSD nebo MIT licenses/postgresql

23 Kapitola 3 Řešení Jak jsem zmínil v návrhu, tato práce se skládá ze tří částí a v této kapitole se budu postupně věnovat všem. Nejdříve popíši měřící skript, který bude spouštěn v prohlížeči uživatele a bude posílat naměřená data webovému serveru. V další části se budu věnovat všem důležitým modifikacím v Tinyproxy, konfiguraci i instalaci. Poté provedu instalaci databáze PostgreSQL, webového serveru Express, nastavím spojení s touto databází a objasním funkce obsluhující databázi ze sítě prostřednictvím protokolu HTTP [2]. Ke konci zmíním ještě možné úpravy a dodatečné konfigurace. 3.1 Popis navrženého měřícího scriptu Vzhledem k existenci vícero prohlížečů jsem uvažoval měřící skript co nejuniverzálnější. Každý prohlížeč může mít odlišně implementovaný javascriptový interpreter, což při použití složitějších konstrukcí nebo frameworků může vést k odlišným výpočetním výsledkům. Navíc mohou poskytovat nad základním javascriptem další konstrukce nebo události DOM, které by v jiných prohlížečích nefungovali Měření aktivity uživatele na stránce Nejdříve jsem řešil, jakým způsobem bude skript detekovat aktivní stránku nebo aktivitu uživatele a kdy bude posílat naměřená data serveru. DOM umožňuje skriptovacím jazykům reagovat na události vyvolané prohlížečem nebo uživatelem. 16

24 3. ŘEŠENÍ Událostmi onmousemove, onscroll a onkeypress lze detekovat přímou aktivitu uživatele. Čas bych mohl měřit nastavením časového intervalu, který by určoval maximální vzdálenost dvou událostí jednoho časového úseku. To znamená, jakmile měřící skript detekuje jednu ze zmíněných událostí, čeká maximálně po dobu intervalu na další z událostí. Pokud další z událostí detekuje, čeká znovu od poslední události, dokud nedetekuje žádnou a tím označí tento časový úsek jako uzavřený a posílá data webovému serveru. Pro detekci aktivní stránky použít události onfocus a onblur. Událost onfocus je spuštěna ve chvíli kdy se stránka stává aktivní v rámci operačního systému. Naopak událost onblur je spuštěna bud když záložka se stránkou přestává být aktivní nebo když celý prohlížeč přestává být aktivní. V ideálním případě by se čas měřil od události onfocus do onblur nebo onbeforeunload, která se spouští těsně před opuštěním nebo uzavřením stránky. Ale protože na tuto událost není možné v některých prohlížečích reagovat jinak, než potvrzujícím dialogem, je potřeba čas měřit od události onfocus v nastaveném intervalu do události onblur nebo uzavření stránky. Dalším způsobem je událost visibilitychange popsaná v dokumentu doporučovaném organizací World Wide Web Consortium 1 (dále jen W3C). Událost indikuje změnu vlastnosti hidden v dokumentu. Rozdíl oproti předchozímu řešení je, že pokud je stránka v aktivní záložce a není minimalizovaná, tak přestože je jiná aplikace aktivní a zcela zakrývá prohlížeč, má vlastnost hidden stále hodnotu false. To znamená, že měření by pokračovalo, i kdyby se uživatel věnoval jiné aplikaci. Událost visibilitychange i vlastnost hidden se v prohlížečích vyskytují pod jinými názvy. Pro svoji práci jsem zvolil druhou variantu s použitím událostí onfocus a onblur, která ale neřeší, zda je stránka aktivní v momentě načtení, proto ihned po načtení resp. v reakci na událost onload

25 3. ŘEŠENÍ zkontroluji vlastnost hidden. Navíc pokud je stránka načtena v neaktivní záložce, může první aktivace v některých prohlížečích spustit událost onfocus dvakrát. Tuto skutečnost je potřeba ošetřit například proměnnou uchovávající aktuální stav viditelnosti a při spuštění události kontrolovat zda k ní již nedošlo. Kód, který detekuje aktivní stránku a spouští měření, vypadá následovně: var hasfocus = false; window.onload = function(){ if(!document["hidden"] &&!hasfocus && windowtop === 1){ hasfocus = true; start(); } }; window.onblur = function(){ if(hasfocus){ hasfocus = false; clearinterval(sendinterval); stop(); } }; window.onfocus = function(){ if(!hasfocus){ hasfocus = true; start(); } }; Struktura html a iframe Internetová stránka je tvořena kořenovým html elementem, který má dva volitelné elementy head (hlavička dokumentu) a body (tělo dokumentu). Hlavička obsahuje metadata spjatá s celým dokumentem například název dokumentu, jméno autora, kaskádové styly nebo kódování. V těle dokumentu se pak nachází elementy, které formátují vzhled stránky a poskytují informace uživateli. Html element říká prohlížeči, kde začíná internetový dokument, ale tento element 18

26 3. ŘEŠENÍ nemusí být na stránce jedinný. Pomocí elementů object, iframe k a embed je možné vložit do jednoho dokumentu jiný i z odlišného URL. Dokumenty se pak chovají jako samostatné stránky v jedné záložce prohlížeče. Když je jeden dokument aktivní, je druhý neaktivní a naopak. To vede k implementačním otázkám: Zajímají mě v analýze vložené dokumenty? Pokud nezahrnu do analýzy tyto dokumenty, může mě uživatel obejít? Uživatel by mohl vytvořit html dokument s elementem iframe a zdrojovou adresou požadované stránky. A dokud by po načtení stránky nezacílil myší ani klávesnicí dokument uvnitř iframe, o stránce by nebyl v analýze žádný záznam, protože by zmíněný dokument uvnitř iframe nespustil událost focus. Nejideálnější by bylo, kdyby měřící skript zahrnoval URL všech zobrazených dokumentů na stránce. Problém je, že dokumenty spolu mohou komunikovat nebo si vzájemně číst obsah pouze pokud neporušují politiku stejného původu (anglicky Same-Origin Policy). Same-Origin Policy 2 (dále jen SOP) Dva dokumenty mají stejný původ, pokud jsou na webu dostupné stejným protokolem na stejném hostu i portu. SOP určuje jak dokumenty nebo skripty načtené z jednoho původu mohou ovlivňovat zdroje načtené z jiného původu a tím zabránit případným útokům Cross-Site Request Forgery 3. SOP rozlišuje mezi posílanými a přijímanými informacemi. Jeden původ může data posílat, ale nemůže je přijímat. Smysl zákazu je zabránit škodlivým webovým stránkám číst důvěrné informace jiných stránek. Z html dokumentu mohu získat elementy bezprostředních potomků vkládající html dokumenty. Ale kvůli SOP nemohu tyto dokumenty číst a v případě vícenásobného vnoření takto nezískám všechna URL. Z potomka html dokumentu získám URL bezprostředního Forgery_(CSRF) 19

27 3. ŘEŠENÍ rodiče pomocí vlastnosti dokumentu referrer, ale v případě vícenásobného zanoření nezískám nejvyššího rodiče a nezískám sourozence. Uvažujme html dokument A: <html> <head> <script> // skript dokumentu A </script> </head> <body> <iframe src= B > <html> <head> <script> // skript dokumentu B </script> </head> <body> <iframe src= D > <html> <head> <script> // skript dokumentu D </script> </head> </html> </iframe> </body> </html> </iframe> <iframe src= C > <html> <head> <script> // skript dokumentu C </script> </head> <body> </body> </html> </iframe> </body> </html> 20

28 3. ŘEŠENÍ Skript dokumentu A zná zdrojové adresy dokumentů B a C, ale nezná D. Skript dokumentu B zná zdrojové adresy dokumentů A a D, ale nezná C. Skript dokumentu C zná zdrojovou adresu dokumentu A, ale nezná B a D. Skript dokumentu D zná zdrojovou adresu dokumentu B, ale nezná A a C. Ve své práci jsem se toto rozhodl řešit tak, že ihned po načtení dokumentu posílá skript webovému serveru echo zprávu (oznámení že stránka byla načtena), jež součástí je i informace zda se jedná o nejvyšší html dokument. Po načtení dokumentu A v prohlížeči by databáze obdržela 4 echo zprávy, ale pouze u zprávy z dokumentu A by byla informace, že se jedná o nejvyšší html dokument. Pokud by analytiky zajímala hierarchie potomků je potřeba upravit měřící skript, aby posílal i informaci o rodiči a upravit webový server s databází aby tuto informaci byli schopni přijmout. Během analýzy by pak bylo možné zrekonstruovat, které dokumenty spolu byly na jedné stránce a dobu strávenou v dokumentech potomků případně zahrnout pod nejvyšší rodičovský dokument Posílání dat webovému serveru Posílání nebo příjímání dat ze serveru spadá do problematiky SOP s několika výjimkami: <script> element na skripty <link> element na kaskádové styly <img> element na obrázky <audio> a <video> na zvuková a video média <object>, <embed> a <applet> na plug-iny vše co přijde s <frame> a <iframe> 21

29 3. ŘEŠENÍ Každý z těchto elementů vytvoří zprávu GET protokolu HTTP s URL obsaženou v atributu src. Součástí URL může být tzv. query řetězec, který nespadá do hierarchické struktury unikátních cest URL. Query řetězec začíná znakem? a obsahuje páry: jméno=hodnota oddělené znakem &. Webový server na základě hodnot takového řetězce posílá odlišné odpovědi. Tento způsob byl původně určen pro specifikaci uživatelova požadavku, nicméně na straně serveru mohu například tyto specifické údaje vkládat do databáze. Naměřená data měřícím skriptem posílám webovému serveru právě tak, že do aktuálního html dokumentu vkládám script element s adresou webového serveru v atributu src a naměřenými informacemi v query řetězci. Ze dvou důvodů posílám zprávy webovému serveru dvojího typu echo a data. Pokud bych posílal pouze zprávy s naměřenými daty, unikala by mi informace o kratší návštěvě stránky, než je délka přednastaveného intervalu. Proto ihned po načtení webové stránky posílám webovému serveru echo zprávu oznamující návštěvu stránky. Vzhledem k struktuře databáze bych musel před vložením každé informace zkontrolovat, zdali existuje záznam o vkládaném uživateli i navštívené stránce a pokud ne, vložit nejdříve do databáze tyto informace. Tímto způsobem kontrolu provádím na straně serveru pouze po přijetí echo zprávy. Zároveň se vnitřní čas každého stroje v lokální síti může lišit, a abych naměřená data sjednotil, nechávám si v reakci na echo zprávu od serveru na klienta posílat rozdíl serverového času a času odeslání echo zprávy. Následně měřící skript přičítá tento rozdíl k hodnotě start každé data zprávy. Informace v query řetězci jsou v následujícím tvaru. 22

30 3. ŘEŠENÍ jméno typ popis type řetězec "echo"nebo "data" start celé číslo Počátek tohoto intervalu v milisekundách od epochy span celé číslo Délka tohoto intervalu v milisekundách domain řetězec Hostname upravený funkcí: encodeuri() url řetězec Pathname upravený funkcí: encodeuri() top 0 nebo 1 Bool hodnota zda jsou naměřená data asociována s nejvyšším html dokumentem Příklad script elementu: <script type= text/javascript src= start= &span=10000&domain= > 3.2 Modifikace Tinyproxy Dalším významným krokem v této práci bylo vložit měřící skript do každého html dokumentu, který směřuje z internetu do lokální sítě. Kvůli snížení objemu posílaných dat po síti mohou být html dokumenty po internetu posílány v komprimované podobě. V této kapitole se proto věnuji kompresi resp. dekompresi a vložení měřícího skriptu na vhodné místo v html dokumentu. K Tinyproxy neexistuje žádná dokumentace pouze komentované zdrojové kódy. Zdrojové kódy Tinyproxy jsou rozděleny do několika souborů podle obsluhovaných modulů. Hlavní změny jsem prováděl v souboru req.c, ve kterém se nachází funkce obsluhující spojení mezi klientem a serverem. Rozsah změn se týká souborů: req.c, conn.c, conn.h, buff.h, conf.c a conf.h. Nejdříve jsem pomocí kontrolních výpisů analyzoval komunikaci mezi klientem a serverem v Tinyproxy, která vypadá následovně: 1. proxy detekuje spojení s klientem a jeho požadavek. 2. alokuje strukturu conn_s, která uchovává informace o spojení jako filedescriptory, buffery apod. A vytvoří spojení se serverem. 3. (ve funkci process_client_headers) přečte hlavičky klientova požadavku, zapíše na server a hlavičku smaže. 23

31 3. ŘEŠENÍ 4. (ve funkci relay_connection) přečte data, zapíše na server a data smaže. 5. (ve funkci process_server_headers) přečte hlavičky odpovědi na požadavek, zapíše na klienta a hlavičku smaže. 6. proxy detekuje spojení se serverem a jeho odpověd. 7. (ve funkci relay_connection) Dokud proxy nedetekuje uzavřené spojení ze strany serveru nebo konec čtení, zvolí připravený filedescriptor bud pro čtení ze serveru, zápis na klienta, nebo oba a podle zvoleného filedescriptoru provede: (a) Přečte až 2048 znaků ze serveru a uloží do bufferu. (b) Odstraní až 2048 znaků z bufferu a zapíše je na klienta. 8. uzavře s klientem spojení a dealokuje conn_s. Obrázek 3.1: Komunikace klienta se serverem prostřednictvím proxy. 24

32 3. ŘEŠENÍ Komprese/Decomprese html dokumentu Servery mohou posílat data komprimovaná, aby spojení bylo rychlejší. Komprimace může v ideálním případě zmenšit velikost posílaných dat až 10x avšak běžněji se setkáme až s čtyřnásobným zmenšením. Všechny dostupné prohlížeče akceptují kompresi html dokumentu v deflate anebo gzip. Pro oba typy komprese resp. dekomprese mi posloužila knihovna zlib [3] od Mark Adler a Jean-loup Gailly a stejně jako Tinyproxy ani zlib nemá žádnou dokumentaci, ale pouze okomentované deklarace funkcí v hlavičkovém souboru zlib.h. Základní komprese resp. dekomprese, kterou bývají html dokumenty kódovány má zcela jednoduché použití: 1. Inicializace struktury z_stream_s funkcí inflateinit resp. deflateinit. 2. inflate resp. deflate. 3. Dokud není zpracováno vše: (a) Aktualizace struktury z_stream_s. (b) inflate resp. deflate. 4. Ukončení komprese resp. dekomprese a dealokace struktury z_stream_s funkcí inflateend resp. deflateend. Dekompresi, vložení script elementu a případnou zpětnou kompresi provádím ve funkci relay_connection (viz. Bod 7 komunikace mezi klientem a serverem v Tinyproxy), kde dochází k přečtení dat ze serveru a zápis na klienta. Ale v tomto bodě jsou již ztraceny obě hlavičky jak požadavku, tak odpovědi na požadavek. Bez informace, jestli je obsah komprimován či nikoli a pokud komprimován je, tak jakým způsobem, nemohu provést dekompresi. Stejně nemohu provést kompresi, když nevím jaké kódování klient akceptuje. Proto jsem do struktury conn_s přidal 3 ukazatele na řetězce. Jeden na hlavičku Accept-Encoding posílanou v požadavku a další na Content-Encoding a Content-Type posílané v odpovědi. Hlavičky kopíruji před jejich smazáním ve funkcích process_server_headers a process_client_headers (viz. 25

33 3. ŘEŠENÍ Bod 3 a 5). (Zároveň nepotřebuji provést dekompresi, pokud se nejedná o html dokument) Na základě těchto informací pokud je Content-Type roven text/html mohu ve funkci relay_connection inicializovat struktury komprese i dekomprese. A hledat v otevřeném textovém html dokumentu správné místo vložení script elementu. static int process_client_headers (struct conn_s *connptr, hashmap_t hashofheaders) {... int ret = 0; char *data, *header;... /* * If there is a "Accept-Encoding" header, * retrieve the information for later use. * And swap the information for encoding * that proxy accepts. * - Kamil specific - */ connptr->accept_encoding = get_header_value (hashofheaders,"accept-encoding"); hashmap_remove (hashofheaders, "accept-encoding"); add_header_to_connection (hashofheaders, acceptencoding,strlen(acceptencoding));... } return ret; static int process_server_headers (struct conn_s *connptr) {... hashmap_t hashofheaders; 26

34 3. ŘEŠENÍ... /* * If there is a "Content-Encoding" and/or * "Content-Type" header, * retrieve the information for later use. * - Kamil specific - */ connptr->content_encoding = get_header_value (hashofheaders,"content-encoding"); connptr->content_type = get_header_value (hashofheaders,"content-type"); processencodingheaders(connptr,&hashofheaders);... return 0; ERROR_EXIT: hashmap_delete (hashofheaders); return -1; } Místo vložení měřícího skriptu Element script se může v dokumentu nacházet bud v elementu head nebo kdekoli v elementu body. Zvolil jsem vkládání do elementu head a protože i element head může mít atributy jako každý element, bylo by ideální vkládat skript těsně před koncový tag head resp. </head>. Ale jak jsem zmínil v popisu komunikace mezi klientem a serverem v Tinyproxy, proxy přečte až 2048 znaků a tím by mohlo dojít k rozdělení koncového head tagu. Ve chvíli kdy bych jej detekoval, nemusel bych mít přistup k předchozímu řetězci, protože by mohl být již odeslán. Příklad: 1. Tinyproxy přečte řetězec končící znaky </he, pošle jej klientovi a smaže. 2. Tinyproxy přečte řetězec začínající znaky ad>, detekuje koncový head tag, ale řetězec s místem vložení je už na cestě ke klientovi. 27

35 3. ŘEŠENÍ Element script tedy vkládám těsně za koncový znak > otvírajícího head tagu. Přestože nevěřím, že by mi server Tinyproxy mohl na znaku rozdělit otvírající head tag, implementoval jsem algoritmus na vyhledání koncového znaku tohoto tagu pomocí stavového automatu (obrázek 3.2). int getinsertionpointer(char* buffer, int size, int* state){ char* ptr = buffer; char* last = ptr; char* endofstring = ptr + size; int tmp = 0 - *state; if(*state < 0){ return 0; }else if(*state > 0 && *state < (int)strlen(head)){ while( *(ptr + *state + tmp) == head[*state] && (ptr + (*state)++ + tmp < endofstring)); if(ptr + *state + tmp < endofstring){ if( *(ptr + *state + tmp) == *(ptr + *state + tmp) == > ) (*state)++; else (*state) = 0; }else return 0; last = ptr++; } if(*state == (int)strlen(head) && ptr + *state < endofstring){ if( *(ptr + *state) == *(ptr + *state) == > ) (*state)++; else (*state) = 0; } while( (ptr = strchr(ptr, < ))!= NULL && *state!= (int)strlen(head) +1 ){ while( *(ptr + (++(*state))) == head[*state] && (ptr + *state < endofstring)); if(ptr + *state < endofstring){ if(*state == (int)strlen(head)){ if(*(ptr + *state) == *(ptr + *state) == > ) (*state)++; } else (*state) = 0; } last = ptr++; 28

36 3. ŘEŠENÍ } } if(*state == (int)strlen(head) +1 && (ptr = strchr(last, > ))){ *state = -1; return ++ptr - buffer; } return 0; Obrázek 3.2: Automat. Javascriptový kód se do html dokumentu vkládá dvěma způsoby. Přímo vložením javascriptu mezi otvírající a zavírající script tag. Nebo URL adresou v atributu src vloženého script elementu. Druhý způsob mi umožní oddělit javascript od proxy serveru a spravovat jej jinde. Vhodné rozšíření k této funkcionalitě je možnost měnit src atribut bez nutnosti znovu kompilovat zdrojové kódy Tinyproxy. K tomuto účelu slouží soubor tinyproxy.conf, jehož parsování a aplikaci konfiguračních hodnot mají na starosti funkce souborů conf.c a conf.h. Rozhodl jsem se je pozměnit, abych mohl snadno měnit nastavení mnou provedených změn v Tinyproxy. Do souboru Tinyproxy jsem přidal dva odstavce. # # This allows you to insert script element into HTML # document with specific attributes. # Format: Script "src" "dst" "interval" # src - mandatory attribute, source address of the Tracing # script. # dst - mandatory attribute, destination address where the # data will be sent. # interval - optional attribute, sets the value of interval # in seconds. Default is

37 3. ŘEŠENÍ # # - Kamil # Script " " "10" # # If it s set to Yes, then data will be compressed again # after decompression. # This can reduce bandwidth of intranet. # If it s set to No, then data won t be compressed after # decompression. # This can speed up proxy processing. # # - Kamil # Compress Yes První odstavec nastavuje atributy vkládaného script elementu. Řádek začínající slovem Script má dva povinné parametry a jeden volitelný. Oba povinné parametry mají formát URL i s komunikačním protokolem. První určuje hodnotu atributu src (adresa, kde se nachází měřící javascript) a druhý atributu dst (adresa, kam budou posílána naměřená data). Třetí a zároveň volitelný určuje hodnotu atributu interval, je typu celé číslo a definuje, v jakých intervalech bude měřící javascript posílat naměřená data webovému serveru. V druhém odstavci je řádek začínající slovem Compress, který má pouze jeden povinný parametr, je typu boolean a určuje, jestli budou data po dekompresi znovu kompresována. Po všech důležitých úpravách zbývá jen instalace sekvencí následujících příkazů: env LIBS= -lz./configure -prefix=/usr -localstatedir=/var -sysconfdir=/etc -enable-xtinyproxy -enable-upstream - enable-transparent -program-prefix="" -program-suffix="" make make install 30

38 3. ŘEŠENÍ 3.3 Webový server Express nad platformou Node.js a databáze PostgreSQL Instalace platformy NodeJS nainstaluje zároveň balíčkového správce (anglicky Node Package Manager 4, dále jen NPM) pro snadnější instalaci balíčků do systému. Tohoto správce použiji pro instalaci balíčku express a pomocného balíčku express-generator 5, který nainstaluje a prováže všechny závislosti potřebné pro správný chod balíčku express. npm install express -g npm install express-generator -g Samotný webový server nainstaluji příkazy: express /home/user/this_webserver/ cd /home/user/this_webserver/ npm install V tuto chvíli zde stále chybí logika přijímání dat i vizualizace. Tu přidáme aplikací patche: patch -p0 < webserver.patch Instalace vygeneruje pět hlavních adresářů s důležitými soubory pro běh základní webové stránky. 1. bin - uvnitř se nachází spouštěcí skript 2. node_module složka pro moduly, na kterých je Express závislý. 3. public složka určená pro dokumenty posílané klientu obrázky, css, javascriptové kódy. 4. route - složka pro javascriptové směrovací kódy jádro webové stránky. 5. view složka pro pohledové soubory psané pro modul Jade html pre-procesor umožňuje vytvářet bohaté hierarchie html dokumentů a tak snížit opakování kódu

39 3. ŘEŠENÍ Použití Node.js Vedle vygenerovaných adresářů vygeneruje instalace i soubor app.js, který bych přirovnal k funkci main imperativních programovacích jazyků. Nachází se v něm obsluha klientů, připojení k databázi nebo zpracování a posílání chybového stavu při nedosažení požadované stránky. Pro vytváření webových stránek mi stačí přidávat nové pohledy do složky view a vše pak provázat ve směrovacích javascriptech. Po spuštění stránky následujícím příkazem se na localhostu s portem 3000 spustí základní stránka s jedním pohledem. node /home/user/this_webserver/bin/ Logiku URL, které přijímá a zpracovává naměřená data, jsem umístil do cesty /adddata a slouží jak pro příjem echo zpráv tak data zpráv. V této práci jsem již zmínil některé informace, které jsem označil za důležité pro analýzu. Nyní je zopakuji i s těmi, které jsem nezmiňoval. Za základní čtyři považuji: 1. ip adresa uživatele 2. url navštívené stránky 3. čas zobrazení stránky 4. čas strávený na stránce Jako identifikace uživatele na stránce mi v této práci postačí ip adresa příchozího dotazu na stránku obsluhující databázi. Pokud je ale požadavek vyslán na webový server s databází z jiné sítě než se nachází tento server, pak je ip adresa uživatele schována za ip adresu směrovače a mé řešení je potřeba nahradit vhodnějším. Například v případě autentizací proxy by bylo vhodnější asociovat dotaz přímo s účtem uživatele. K rozšiřujícím informacím patří booleovská hodnota, zda se jedná o nejvyšší html dokument či nikoli a URL adresa z které uživatel přešel na aktuální html dokument. Tato informace mi poslouží k analýze hierarchického členění vnořených stránek (více v kapitole Struktura html a iframe). 32

40 3. ŘEŠENÍ PostgreSQL a Tabulky databáze PostgreSQL po instalaci vytvoří uživatele postgres k jehož účtu se z bezpečnostních důvodů nelze přihlásit pomocí hesla, ale pouze přes účet superuživatele. Následující sekvence příkazů vytvoří databázi. su su postgres createdb dbname V účtu postgres se přihlásíme k databázi příkazem: psql dbname Heslo databáze nastaví příkaz: alter user postgres with password dbpassword Zakládací skript spustí příkaz: \i /some_path/psql.sql Nakonec je potřeba ještě upravit heslo a název databáze v souboru webového serveru /home/user/this_webserver/app.js. pg.defaults.database= dbname ; pg.defaults.password= dbpassword ; Měřené informace jsem rozdělil do 4 tabulek následovně: Server, Path, Client, Chunk (obrázek 3.3) Vizualizace naměřených dat Na rozdíl od měřícího skriptu jsem neváhal použít různých knihoven. Například jquery a Widget Factory pro snadnější práci s DOM a Ajax a k vizualizaci využívám grafů společnosti Google Google Charts 6. Grafy jsou vykreslovány s použitím technologie HTML5/SVG (a VML v případě starších prohlížečů Internet Explorer), aby byla zajištěna kompatibilita mezi prohlížeči i mobilními zařízeními. Naměřené informace zobrazuji na stránce /data a veškeré zpracování dat provádím v javascriptu na straně klienta. Funkce javascriptu jsem rozdělil do tří souborů index 33

41 3. ŘEŠENÍ Obrázek 3.3: Diagram Entit. Plug widget k obsluze tlačítek clients a domains a k nim přidružených seznamů s klienty a domény. Data funkce určeny k obsluze požadavků klienta a získání dat z databáze. Charts - funkce, které formátují a vykreslují data z databáze. Vytvořil jsem jednoduchou strukturu pohledů s přímočarou navigací. Existují pouze dvě cesty a obě končí pohledem na stejný graf. První cesta začíná koláčovým grafem, který zobrazuje všechny uživatele ve zvoleném časovém období a v procentech čas, který strávili uživatelé na internetu (obrázek 3.4). Tato cesta je výchozí (zobrazí se ihned po načtení stránky /data). Volbou uživatele se zúží výběr na další koláčový graf, který zobrazí všechny domény navštívené uživatelem a v procentech čas, který na nich strávil (obrázek 3.5). 34

42 3. ŘEŠENÍ Obrázek 3.4: Klienti. Obrázek 3.5: Klient

43 3. ŘEŠENÍ Volba domény zúží výběr na pár uživatel-doména a zobrazí poslední graf histogram. Tento graf zobrazuje, v kterých hodinách uživatel trávil na stránce nejvíc času (obrázek 3.6). Obrázek 3.6: Histogram. Druhá cesta je analogická k první. První graf zobrazí navštívené domény všemi uživateli a v procentech čas, který na nich strávili. Druhý graf zobrazí všechny uživatele a v procentech čas, který na zvolené doméně strávili. Třetí graf je stejný jako v první cestě (obrázek 3.6). 3.4 Úprava dat v databázi Měřící skript posílá zprávy webovému serveru v pravidelném intervalu. Pokud je interval příliš krátký a v síti mnoho uživatelů, mohly by zprávy posílané skriptem zaplavit sít. Na druhou stranu, čím delší je interval, tím delší může být doba mezi poslední odeslanou zprávou a uzavřením stránky. Tato doba nebude, vzhledem k návrhu měřícího skriptu, odeslána a proto o ní nebude záznam v databázi. Při pořízení následujícího výpisu z databáze byl interval nastaven na 10 vteřin. Z ukázky (obrázek 3.7) je patrné, že mezi echo zprávy 15:25:36, 15:25:43 a 15:25:43, 15:25:49 není doba strávená na tomto webu zaznamenána. Vhodným doplňkem této práce by byl skript, který by v pravidelných časových intervalech dopočítával chybějící záznam o stráveném čase a databázi upravoval. Spouštět skript v pravidelných in- 36

44 3. ŘEŠENÍ Obrázek 3.7: Výpis z databáze. tervalech lze například pomocí programu Cron [1]. Zároveň by Cron mohl upravovat záznamy, které vznikly, když uživatel dlouho prohlížel jednu webovou stránku. Touto úpravou je možné výrazně snížit objem databáze. Například záznamy z obrázku 3.8 by mohly být redukovány na jeden řádek. Obrázek 3.8: Výpis z databáze. 37

Formuláře. Internetové publikování

Formuláře. Internetové publikování Formuláře Internetové publikování Formuláře - příklad Formuláře - použití Odeslání dat od uživatele Možnosti zpracování dat Webová aplikace na serveru (ASP, PHP) Odeslání e-mailem Lokální script Formuláře

Více

Minebot manuál (v 1.2)

Minebot manuál (v 1.2) Minebot manuál (v 1.2) Pro Váš rychlý start s nástrojem Minebot jsme připravili tohoto stručného průvodce, který by Vám měl být pomocníkem při spuštění a používání služby. Tento stručný průvodce by vám

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Jako příklady typicky ch hrozeb pro IT lze uvést: Útok

Jako příklady typicky ch hrozeb pro IT lze uvést: Útok Bezpečnost - úvod Zranitelné místo Slabinu IS využitelnou ke způsobení škod nebo ztrát útokem na IS nazýváme zranitelné místo. Existence zranitelných míst je důsledek chyb, selhání v analýze, v návrhu

Více

BankKlient. FAQs. verze 9.50

BankKlient. FAQs. verze 9.50 BankKlient FAQs verze 9.50 2 BankKlient Obsah: Úvod... 3 Instalace BankKlient možné problémy... 3 1. Nejsou instalovány požadované aktualizace systému Windows... 3 2. Instalační program hlásí, že nemáte

Více

Statistica, kdo je kdo?

Statistica, kdo je kdo? Statistica, kdo je kdo? Newsletter Statistica ACADEMY Téma: Typy instalací Typ článku: Teorie Někteří z vás používají univerzitní licence, někteří síťové, podnikové atd. V tomto článku Vám představíme,

Více

UŽIVATELSKÁ DOKUMENTACE PRO DODAVATELE. Stav ke dni 1. 8. 2013 v. 2.0

UŽIVATELSKÁ DOKUMENTACE PRO DODAVATELE. Stav ke dni 1. 8. 2013 v. 2.0 UŽIVATELSKÁ DOKUMENTACE PRO DODAVATELE Stav ke dni 1. 8. 2013 v. 2.0 Obsah: 1 Úvod... 3 1.1 Definice a zkratky... 4 1.2 Podmínky provozu... 4 1.3 Pokyny k užívání dokumentu... 4 1.4 Obecné informace o

Více

Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015

Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015 Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015 Stránka 1 z 5 Datová velikost HTML 5 bannerů Záleží na formátu banneru. Dle specifikace SPIR, má každý formát banneru

Více

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek. PUZZLE POČÍTAČE Hra Puzzle počítače je psána pomocí příkazů Javascriptu, skriptovacího jazyka PHP a standardních příkazů HTML. Před vlastním spuštěním hry je možné seznámit se s nejznámějšími komponenty

Více

Site - Zapich. Varianta 1

Site - Zapich. Varianta 1 Site - Zapich Varianta 1 1. Koncovy uzel PC1 overuje pres PING konektivitu uzlu PC3. Jaky bude obsah ethernetoveho ramce nesouciho ICMP zpravu od PC1 na portu Fa0/3 SW1? SRC address: MAC_PC1 DST address:

Více

Strana 27-6. Strana 27-7

Strana 27-6. Strana 27-7 Strana -6 SOFTWARE PRO DOHLED A SPRÁVU ENERGETICKÝCH SÍTÍ Struktura a aplikace založená na relačním databázovém systému MS SQL Prohlížení dat prostřednictvím běžných internetových prohlížečů Vysoce univerzální

Více

Uživatelský manuál. Kerio Technologies

Uživatelský manuál. Kerio Technologies Uživatelský manuál Kerio Technologies C 1997-2003 Kerio Technologies. Všechna práva vyhrazena. Datum vydání: 24. listopadu 2003 Aktuální verze produktu: Kerio Personal Firewall 4.0.8. Změny vyhrazeny.

Více

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl Šablonovací systém htmltmpl 1 Představení šablonovacích systémů Každý, kdo se zabývá tvorbou webových aplikací dříve nebo později zjistí, že je vhodné oddělovat obsah aplikace od jejího vzhledu. Pokud

Více

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015 Knot DNS Resolver Modulární rekurzivní resolver Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je KNOT Resolver Části resolveru Funkce a konfigurace Integrační testování Co je Knot DNS Resolver Minimalistický

Více

Univerzita Palackého v Olomouci. Služby spojené s Active Directory

Univerzita Palackého v Olomouci. Služby spojené s Active Directory Moderní učitel CZ.1.07/1.3.00/51.0041 Univerzita Palackého v Olomouci Pedagogická fakulta Služby spojené s Active Directory doc. PhDr. Milan Klement, Ph.D. Olomouc 2015 Publikace vznikla v rámci ESF projektu

Více

Proč Angular JS framework?

Proč Angular JS framework? Angular JS Proč Angular JS framework? Open Source vytvořený a spravovaný Googlem Vhodný pro tvorbu formulářových aplikací Dodá aplikaci základní architekturu a udržovatelnost Deklarativní způsob práce

Více

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Od CGI k FastCGI Ondřej Caletka 5. října 2013 Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Ondřej Caletka (CESNET, z.s.p.o.) Od CGI k FastCGI 5. října 2013 1 / 18 Obsah 1 Common

Více

Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora

Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora UŽIVATELSKÁ TECHNICKÁ DOKUMENTACE ANKETA : Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora [2ITa] [sk1] 1 Obsah DŮLEŽITÉ UPOZORNĚNÍ!!!... 3 PROHLÁŠENÍ O AUTORSTVÍ:... 3 ANOTACE:...

Více

Příloha č. 18. Specifikace bloku PŘÍPRAVA. Příloha k zadávací dokumentaci veřejné zakázky Integrační nástroje, vstupní a výstupní subsystém

Příloha č. 18. Specifikace bloku PŘÍPRAVA. Příloha k zadávací dokumentaci veřejné zakázky Integrační nástroje, vstupní a výstupní subsystém Název projektu: Redesign Statistického informačního systému v návaznosti na zavádění egovernmentu v ČR Příjemce: Česká republika Český statistický úřad Registrační číslo projektu: CZ.1.06/1.1.00/07.06396

Více

Obsah. Část I Začínáme s jazykem AppleScript

Obsah. Část I Začínáme s jazykem AppleScript Obsah Úvod... 13 Je tato kniha pro vás?...13 Jaká témata kniha pokrývá?...13 Proč je text vytištěný tolika různými druhy písma a k čemu jsou všechny ty podivné značky?...15 Zpětná vazba od čtenářů...16

Více

Popis licencování, nastavení a ovládání replikací - přenosů dat

Popis licencování, nastavení a ovládání replikací - přenosů dat Popis licencování, nastavení a ovládání replikací - přenosů dat Ing. Martin Klinger 1.6.2016 Co jsou replikace? Sdílení dat, tzv. replikace najdou své uplatnění všude tam, kde je potřeba výměna dat v online

Více

PRG036 Technologie XML

PRG036 Technologie XML PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu

Více

Sem vložte zadání Vaší práce.

Sem vložte zadání Vaší práce. Sem vložte zadání Vaší práce. České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Rezervační komponenta pro informační systém sportovního

Více

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY Dušan Kajzar Slezská univerzita v Opavě, Filozoficko-přírodovědecká fakulta, Bezručovo nám. 13, 746 00 Opava, e-mail: d.kajzar@c-box.cz Česká pošta, s.p.,

Více

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web, Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web, v doslovném překladu "světová rozsáhlá síť neboli celosvětová síť, je označení

Více

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz Zranitelnosti webových aplikací Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz Terminologie Zranitelnost (vulnerability) Slabina, která umožní utočníkovi snížit/obejít ochranu dat a informací Security

Více

Zajištění kvality služby (QoS) v operačním systému Windows

Zajištění kvality služby (QoS) v operačním systému Windows VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows

Více

Interpret jazyka IFJ2011

Interpret jazyka IFJ2011 Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:

Více

Databázový systém Matylda

Databázový systém Matylda Databázový systém Matylda Návrh softwarového projektu Vývojový tým Předpokládaný počet řešitelů: 5 Vedoucí: Mgr. Martin Nečaský Ph.D. Motivace V současné době se mnoho nákupů odehrává v internetových obchodech.

Více

Malý průvodce Internetem

Malý průvodce Internetem Malý průvodce Internetem Úvod Toto povídání by mělo sloužit jako užitečný zdroj informací pro ty, co o Internetu zatím mnoho neví nebo o něm jen slyšeli a neví, co si pod tím slovem představit. Klade si

Více

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou Maturitní témata předmět Informační a komunikační technologie Dominik Janák 2015 třída 4I Dominik Janák Maturitní otázky Výpočetní

Více

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz HTTP protokol Zpracoval : Petr Novotný novotny0@students.zcu.cz HTTP protokol - úvod zkratka z Hyper-Text Transfer Protocol možnost přenášet jakákoliv data (soubor, obrázek, výsledek dotazu) obvykle provozován

Více

Uživatelská příručka. Chráníme více lidí před více online hrozbami než kdokoli jiný na světě.

Uživatelská příručka. Chráníme více lidí před více online hrozbami než kdokoli jiný na světě. Uživatelská příručka Chráníme více lidí před více online hrozbami než kdokoli jiný na světě. Chraňte své životní prostředí. Je to správné. Společnost Symantec odstranila z tohoto návodu obálku, aby snížla

Více

DATA ARTICLE. AiP Beroun s.r.o.

DATA ARTICLE. AiP Beroun s.r.o. DATA ARTICLE AiP Beroun s.r.o. OBSAH 1 Úvod... 1 2 Vlastnosti Data Article... 1 2.1 Požadavky koncových uživatelů... 1 2.2 Požadavky na zajištění bezpečnosti a důvěryhodnosti obsahu... 1 3 Implementace

Více

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17 Obsah ÚVODEM..............................................11 Co v této knize najdete................................... 12 Co budete v této knize potřebovat.......................... 13 Pro koho je tato

Více

Microsoft Office 2003 Souhrnný technický dokument white paper

Microsoft Office 2003 Souhrnný technický dokument white paper Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti

Více

Vladimír Mach. @vladimirmach 2. 1. 2013

Vladimír Mach. @vladimirmach 2. 1. 2013 Vladimír Mach @vladimirmach 2. 1. 2013 SQL Server Compact Edition Jednoduchá relační databáze Použití i v malých zařízeních s omezenými zdroji Dříve pod názvem SQL Server Mobile Časté využití při programování

Více

Content Security Policy

Content Security Policy Content Security Policy Nový přístup v boji proti XSS 2011.cCuMiNn. Cross Site Scripting (XSS) XSS je všudypřítomné výskyt cca v 80% webových aplikací Webový browser nevidí rozdíl mezi legitimním skriptem

Více

Manuál pro administrátory. Manuál. Verze 1.0.11. pro administrátory

Manuál pro administrátory. Manuál. Verze 1.0.11. pro administrátory Manuál Verze 1.0.11 pro administrátory Obsah 1 Přihlášení do administračního rozhraní... 3 2 Administrační rozhraní... 5 2.1. Hlavní stránka... 5 2.2. Společnost... 6 2.2.1 Stav online... 6 2.2.2 Uživatelé...

Více

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26)

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26) Technik PC a periferií (kód: 26-023-H) Autorizující orgán: Ministerstvo vnitra Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26) Týká se povolání: Technik PC a periférií Kvalifikační

Více

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média - 10.1 - Kapitola 10: Diskové a souborové struktury Přehled fyzických ukládacích médií Magnetické disky RAID (Redundant Array of Inexpensive Disks) Terciární úložiště Přístup k médiu Souborové organizace

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL SYSTEM FOR CONFIGURATION OF COMMUNICATION TERMINALS AND VISUALIZATION OF STATE INFORMATION FROM RAIL VEHICLES

Více

Počítačové sítě. Miloš Hrdý. 21. října 2007

Počítačové sítě. Miloš Hrdý. 21. října 2007 Počítačové sítě Miloš Hrdý 21. října 2007 Obsah 1 Pojmy 2 2 Rozdělení sítí 2 2.1 Podle rozlehlosti........................... 2 2.2 Podle topologie............................ 2 2.3 Podle přístupové metody.......................

Více

Databáze Caché CSP Custom Tags

Databáze Caché CSP Custom Tags CSP custom tags Databáze Caché CSP Custom Tags vlastní značky vývoj vlastních tagů pro CSP stránky možnost přidat novou funkcionalitu, ale zachovat stejnou syntaxi možnost vyvíjet znovupoužitelné komponenty

Více

Poznámky k vydání. pro Kerio Control 7.2.1

Poznámky k vydání. pro Kerio Control 7.2.1 Poznámky k vydání pro Kerio Control 7.2.1 2011 Kerio Technologies s.r.o. Všechna práva vyhrazena. Datum: 11. října 2011 1 Představujeme Kerio Control 7.2 Řízení šířky pásma a QoS Napřed malá revoluce a

Více

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database. 11 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Tvorba webových aplikací. Active Server Pages. Activex Data Objects.

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

Monitor zátěže serverů

Monitor zátěže serverů České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Monitor zátěže serverů Marek Fiala Vedoucí práce: Ing. Michal Šoch, Ph.D. Studijní program: Elektrotechnika a informatika,

Více

Filr 2.0 Uživatelská příručka k aplikaci Filr Web. Únor 2016

Filr 2.0 Uživatelská příručka k aplikaci Filr Web. Únor 2016 Filr 2.0 Uživatelská příručka k aplikaci Filr Web Únor 2016 Právní vyrozumění Informace o právních upozorněních, ochranných známkách, prohlášeních o omezení odpovědnosti, zárukách, omezeních exportu a

Více

IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA

IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA 20. 12. 2013 ÚVOD S penetrací IT do fungování společnosti roste důraz na zabezpečení důvěrnosti a opravdovosti (autenticity) informací a potvrzení (autorizaci) přístupu

Více

Firewall, IDS a jak dále? Flow monitoring a NBA, případové studie. Jiří Tobola INVEA-TECH

Firewall, IDS a jak dále? Flow monitoring a NBA, případové studie. Jiří Tobola INVEA-TECH Firewall, IDS a jak dále? Flow monitoring a NBA, případové studie Jiří Tobola INVEA-TECH INVEA-TECH Český výrobce řešení FlowMon pro monitorování a bezpečnost síťového provozu Desítky referencí na českém

Více

HP JetAdvantage Management. Oficiální zpráva o zabezpečení

HP JetAdvantage Management. Oficiální zpráva o zabezpečení HP JetAdvantage Management Oficiální zpráva o zabezpečení Copyright a licence 2015 Copyright HP Development Company, L.P. Kopírování, úpravy nebo překlad bez předchozího písemného souhlasu jsou zakázány,

Více

4. POČÍTAČOVÉ CVIČENÍ

4. POČÍTAČOVÉ CVIČENÍ 4. POČÍTAČOVÉ CVIČENÍ Cílem dnešního cvičení je vytvořit formuláře obsahující zaškrtávací pole a přepínací tlačítka. Vstupní pole pro zadání hesla

Více

Instalace a konfigurace web serveru. WA1 Martin Klíma

Instalace a konfigurace web serveru. WA1 Martin Klíma Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/

Více

Koordinační středisko pro resortní zdravotnické informační systémy. Závěrečný test Základy informační bezpečnosti pro uživatele. Verze: 1.

Koordinační středisko pro resortní zdravotnické informační systémy. Závěrečný test Základy informační bezpečnosti pro uživatele. Verze: 1. Koordinační středisko pro resortní zdravotnické informační systémy Závěrečný test Základy informační bezpečnosti pro uživatele Verze: 1.2 Test - Základy informační bezpečnosti pro uživatele Stránka 2 z

Více

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33 Programování v C# Síťová komunikace Petr Vaněček 1 / 33 Obsah přednášky Jednoduchá komunikace Sockety 2 / 33 System.Net Namespace poskytuje jednoduché rozhraní ke standardním protokolům Třída WebClient

Více

Název Popis Lhůta. dne Odmítnuté platby Zobrazení, tisk a export seznamu odmítnutých plateb. Informace připraveny k vyzvednutí z bankovního

Název Popis Lhůta. dne Odmítnuté platby Zobrazení, tisk a export seznamu odmítnutých plateb. Informace připraveny k vyzvednutí z bankovního PŘEHLED SLUŽEB A PARAMETRŮ ELEKTRONICKÉHO BANKOVNICTVÍ A) PŘEHLED SLUŽEB A PARAMETRŮ - ELTRANS 2000 Přehled pasivních služeb Eltrans 2000 Informace o zůstatcích Zobrazení, tisk a export Informací o zůstatcích

Více

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s.

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s. Open Free & Open o.p.s. 3. 10. 2006 Obsah prezentace Open 1 2 3 Open 4 5 6 o.p.s. Open Naše obecně prospěšná společnost se zabývá propagací a podporou svobodných informačních technologií. Jde především

Více

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n podpůrná knihovna Egonex.lib program CA4EGNsetup MICROPEL s.r.o Tomáš Navrátil 10 / 2010 1 propojení systému MICROPEL a Ego-n 1 2 propojení

Více

Formuláře. Internetové publikování. Formuláře - příklad

Formuláře. Internetové publikování. Formuláře - příklad Formuláře Internetové publikování Formuláře - příklad 1 Formuláře - použití Odeslání dat od uživatele Možnosti zpracování dat Webová aplikace na serveru (ASP, PHP) Odeslání e-mailem Lokální script Formuláře

Více

Zpřístupnění korporátního webu

Zpřístupnění korporátního webu [AVG#WEB] Zpřístupnění korporátního webu Vypracovali: Lukáš Kosina Jan Dvořák Zadání Cílem projektu je zpřístupnění korporátních stránek společnosti AVG ( http://www.avg.com) osobám postiženým úplnou ztrátou

Více

12. Základy HTML a formuláře v HTML

12. Základy HTML a formuláře v HTML 12. Základy HTML a formuláře v HTML 1) Co je to HTML a historie HTML 2) Termíny v HTML a. tag b. značka c. element d. atribut e. entita 3) specifikace a. html, xhtmll b. rozdíly xhtml a html 4) struktura

Více

Vývojařská Plzeň AngularJS

Vývojařská Plzeň AngularJS Vývojařská Plzeň AngularJS Milan Lempera @milanlempera Víťa Plšek @winsik PHP -> Javascript PHP -> Java -> Javascript www.angular.cz ? Psal se rok 2009 ano 2009... Jak se tehdy tvořili webové aplikace?

Více

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity (NAKI) (DF11P01OVV023) Zpracovali: Marie

Více

Nový Node Monitor. 13. prosince 2008. Lukáš Turek Praha12.Net

Nový Node Monitor. 13. prosince 2008. Lukáš Turek Praha12.Net Nový Node Monitor 13. prosince 2008 Lukáš Turek Praha12.Net Nový Node Monitor http://mapa.praha12.net 2 O čem to bude Proč je potřeba nová mapa Jak je implementována Další plány Integrace s IS sítí 3 Proč?

Více

Mobilní aplikace Novell Filr Stručný úvod

Mobilní aplikace Novell Filr Stručný úvod Mobilní aplikace Novell Filr Stručný úvod Únor 2016 Podporovaná mobilní zařízení Aplikace Novell Filr je podporována v následujících mobilních zařízeních: Telefony a tablety se systémem ios 8 novějším

Více

NSWI096 - INTERNET JavaScript

NSWI096 - INTERNET JavaScript NSWI096 - INTERNET JavaScript Mgr. Petr Lasák JAVASCRIPT JAK SE DNES POUŽÍVÁ Skriptovací (interpretovaný) jazyk Umožňuje interaktivitu Použití: Dialogy Kontrola dat ve formulářích Změny v (X)HTML dokumentu

Více

Uživatelská příručka

Uživatelská příručka OM-Link Uživatelská příručka Verze: 2.1 Prosinec 2006 Copyright 2005, 2006 ORBIT MERRET, s r.o. I Nápověda k programu OM-Link Obsah Část I Úvod 3 Část II Základní pojmy a informace 3 1 Připojení... 3 2

Více

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele M I S Y S - W E B Intranet řešení systému MISYS Verze 9.00 Příručka uživatele GEPRO s.r.o. Září 2008 Copyright GEPRO s.r.o. 2008 Ochranné známky GEPRO spol. s r.o. KOKEŠ, MISYS Ochranné známky Microsoft

Více

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky Tvorba jednoduchých WWW stránek RNDr. Daniela Ďuráková VŠB - Technická univerzita Ostrava Katedra informatiky Vznik WWW technologie Vznik - CERN 1989-90, vedoucí projektu Tim Berners-Lee cíl - infrastruktura

Více

Manuál administrátora FMS...2

Manuál administrátora FMS...2 Manuál administrátora Manuál administrátora FMS...2 Úvod... 2 Schéma aplikace Form Management System... 2 Úvod do správy FMS... 3 Správa uživatelů... 3 Práva uživatelů a skupin... 3 Zástupci... 4 Avíza

Více

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1 Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz

Více

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny 1 TXV 003 28.01 Historie změn Datum Vydání Popis změn Únor 2009 1 První verze (odpovídá stavu nástroje ve verzi 1.6.2) Obsah 1 Úvod...3

Více

Odůvodnění veřejné zakázky dle 156 zákona

Odůvodnění veřejné zakázky dle 156 zákona Odůvodnění veřejné zakázky dle 156 zákona Identifikační údaje zadavatele: Úplný název: ČESKÁ REPUBLIKA - ÚŘAD VLÁDY ČESKÉ REPUBLIKY Sídlo: nábř. Edvarda Beneše 128/4, 118 01 Praha 1 - Malá Strana IČO:

Více

Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek shimi@quick.cz jan.simonek@quick.cz http://www.shimi.webz.cz/

Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek shimi@quick.cz jan.simonek@quick.cz http://www.shimi.webz.cz/ Redakční systém SimpleAdmin Beta Jan Shimi Šimonek shimi@quick.cz jan.simonek@quick.cz http://www.shimi.webz.cz/ Obsah Obsah... 2 Co je to SimpleAdmin Beta?... 3 Ovládání Administrace... 3 Články... 3

Více

Ant aneb Ferda Mravenec, práce všeho druhu

Ant aneb Ferda Mravenec, práce všeho druhu Ant aneb Ferda Mravenec, práce všeho druhu Nástroj na sestavování projektů (aplikací) podobný programu make, který se používá u programů v C či C++. Program Ant je volně k dispozici (tzv. The Apache Software

Více

Úvod do tvorby internetových aplikací

Úvod do tvorby internetových aplikací CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software

Více

Úvod do aplikací internetu a přehled možností při tvorbě webu

Úvod do aplikací internetu a přehled možností při tvorbě webu CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games

Více

Mediální komunikace. Vysoká škola mezinárodních a veřejných vztahů PhDr. Peter Jan Kosmály, Ph.D. 4. 11. 2015

Mediální komunikace. Vysoká škola mezinárodních a veřejných vztahů PhDr. Peter Jan Kosmály, Ph.D. 4. 11. 2015 Mediální komunikace Vysoká škola mezinárodních a veřejných vztahů PhDr. Peter Jan Kosmály, Ph.D. 4. 11. 2015 Public relations, žurnalistika a komunikační kanály Základní prvky přenosu sdělení (lineární

Více

Technická dokumentace

Technická dokumentace Příloha č. 1 k veřejné zakázce malého rozsahu Technická dokumentace Obsah 1 Předpoklady... 3 1.1 Účel... 3 1.2 Přínosy pro uživatele... 3 2 Popis předmětu plnění... 3 2.1 Funkční specifikace řešení...

Více

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče. KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná

Více

Distribuovaný SSH honeypot

Distribuovaný SSH honeypot Distribuovaný SSH honeypot přepad časoprostorovou dírou 10 let zpět Ondrej Mikle ondrej.mikle@nic.cz 14. 11. 2015 Co je Turris SSH honeypot uživatel si dobrovolně v nastavení může zapnout SSH port 22 zvenku

Více

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton PHP Best Practices Please try to fit your code to 80 columns. That's decimal 80. A. Morton Koncepce větších aplikací Front Controller Design Pattern Celý web má jeden přístupový bod, přes který se posílají

Více

UŽIVATELSKÁ PŘÍRUČKA

UŽIVATELSKÁ PŘÍRUČKA UŽIVATELSKÁ PŘÍRUČKA OBSAH BALENÍ Poznámka: Některé modely nemají samostatnou anténu POSTUP INSTALACE Poznámka: Před prvním použitím IP kamery postupujte podle výše uvedeného schématu. Připojte kameru

Více

Standardní operační postup (SOP) ČNRDD/M02/verze 02. Elektronické záznamy

Standardní operační postup (SOP) ČNRDD/M02/verze 02. Elektronické záznamy Standardní operační postup (SOP) ČNRDD/M02/verze 02 Elektronické záznamy 1. Cíl Koordinační centrum využívá pro zpracování a uchování dat počítačový databázový systém. Na elektronických záznamech je postavena

Více

Management procesu II Mgr. Josef Horálek

Management procesu II Mgr. Josef Horálek Management procesu II Mgr. Josef Horálek Vlákna = Vlákna (Threads) = proces je definován množinou zdrojů výpočetního systému, které používá a umístěním, kde je spuštěn; = vlákno (thread) nazýváme lehký

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty ESET Server Security... 2 Webové rozhraní... 3 ESET Mail Security... 4 ESET File Security... 4 ESET Gateway Security...

Více

Systémová příručka. Autor: Marek Klimša Verze dokumentu: 1/2013 Poslední aktualizace: 2. Ledna 2013

Systémová příručka. Autor: Marek Klimša Verze dokumentu: 1/2013 Poslední aktualizace: 2. Ledna 2013 Autor: Marek Klimša Verze dokumentu: 1/2013 Poslední aktualizace: 2. Ledna 2013 Obsah 1. První pohled 3 1.1 Seznamte se 3 1.2 Co je Daňová kancelář? 3 2. Nároky na systém, změny systémových součástí při

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE 0101 0314

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE 0101 0314 Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace Šablona 14 VY 32 INOVACE 0101 0314 VÝUKOVÝ MATERIÁL Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor

Více

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.2.2015 Webové aplikace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.2.2015 Webové aplikace Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.2.2015 Webové aplikace Úvod strana 2 Vyučující Ing. Jiří Lýsek, Ph.D. Ing. Oldřich Faldík https://akela.mendelu.cz/~lysek/ https://akela.mendelu.cz/~xfaldik/wa/

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

Více

Domino 10 nové komponenty a související témata (node.js, ES )

Domino 10 nové komponenty a související témata (node.js, ES ) Domino 10 nové komponenty a související témata (node.js, ES ) David Marko TCL DigiTrade - 19.4.2018 Domino 10 Use of OpenSource components ( Java Script, ) Great focus on integration of Mobiles and Chat

Více

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy Konvence Další prvky Požadavky na systém Ukázkové databáze Ukázky kódu Použití ukázek kódu Další

Více

Ruby a webové aplikace 19.1 CGI programování v Ruby

Ruby a webové aplikace 19.1 CGI programování v Ruby KAPITOLA 19 Ruby a webové aplikace Ó, jak zamotanou síť jsme to upředli...! Sir Walter Scott, Píseň posledního skotského barda Ruby je univerzální jazyk; nemůže být nazýván "jazykem webu". Webové aplikace

Více

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů BM Software, Němčičky 84, 69107 Němčičky u Břeclavi Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů Tel: 519430765, Mobil: 608447546, e-mail: bmsoft@seznam.cz, web: http://www.dochazka.eu

Více

Telekomunikační sítě Protokolové modely

Telekomunikační sítě Protokolové modely Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava Telekomunikační sítě Protokolové modely Datum: 14.2.2012 Autor: Ing. Petr Machník, Ph.D. Kontakt: petr.machnik@vsb.cz Předmět: Telekomunikační sítě

Více