Webové aplikace - 2. díl - Webová struktura blíže
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Webové aplikace - 2. díl - Webová struktura blížeWebové aplikace - 2. díl - Webová struktura blíže

 

Webové aplikace - 2. díl - Webová struktura blíže

Google       Google       9. 12. 2005       18 826×

Podíváme se na zoubek stavbě webu, probereme blíže každou jeho část. Navíc si u každé komponenty ukážeme její největší slabiny a nedostatky...

Základní model sítě

Nejprve si povíme něco o tom, jak ten systém vlastně schématicky vypadá.

Tak tohle je přibližné schéma standardní aplikace. Jak vidíte, komunikace mezi dvěma servery musí projít sítí pomocí protokolů Ethernet nebo TCP/IP, dále pak systémem, jenž složí pakety dohromady a poté musí projít vrstvou takzvaných služeb, ve kterých se nacházejí servery. Přes takzvanou aplikační logiku (vysvětlíme) se dostáváme k vytouženým datům. Přitom každé místo na tomto schématu skrývá nedostatky a tím dává možnost k útoku. Nyní si probereme všechny komponenty této stavby. Dostáváme se k předmětu tohoto seriálu.

Klient neboli webový prohlížeč a jeho imitace

Jak jsme již poznamenali, do jazyka HTML, jenž je sám o sobě statický, je možno přidávat nejrůznější nadstavby a vylepšení, které jazyk zdynamizují, aby vyhovoval dnešní poptávce. Pro příklad uvedeme aktivní obsah ActiveX od Microsoftu nebo Java od firmy Sun Microsystems.

Když se prvek ActiveX zobrazuje v prohlížeči, je ovladač pro jeho zobrazení buď stažen ze serveru, jenž prvek prezentuje, nebo je přímo v našem počítači. To je velmi pravděpodobné, protože se sám instaluje při zavádění Windows nebo jiných aplikací. Poté se pomocí technologie Authenticode zkontroluje jeho samotná pravost pomocí zprávy o původu prvku a uživateli se nabízí možnost prvek přijmout či nikoli. Pokud uživatel považuje zdroj za důvěryhodný, skript se zobrazí.

Webový prohlížeč je velká zbraň hackerů. Je schopen komunikovat nejen pomocí HTTP, ale poradí si i s již zmíněným SSL nebo FTP. V této publikaci nahradíme váš prohlížeč (tj. MS Internet Explorer, Mozilla Firefox, Opera atd.) nástroji, jež provádějí jednoduché požadavky pomocí HTTP, a v nichž tyto požadavky sami definujete a sami vyhodnotíte odpověď serveru. Máte tak možnost zobrazení výsledků ještě před jejich případnou úpravou vaším prohlížečem, který se snaží případné nedostatky skrýt a maskovat. Tyto primitivní nástroje, jež pracují většinou pouze v příkazovém řádku, se dají posoudit jako imitace prohlížeče.

Server

Je to služba HTTP, která přijímá požadavky klientů, odevzdává je aplikaci, ta vrátí odpověď a server ji vrací klientovi. Servery mohou být IIS (Internet Information Server) od Microsoftu, Apache od ASF (Apache Software Foundation), iPlanet od Sun Microsystems nebo například NES (Netscape Enterprise Server) od AOL (America OnLine) & Netscape.

Aplikace

Aplikace se běžně skládá ze tří základních vrstev: prezentační, logická a datová.

Prezenční vrstva zaznamenává vstup uživatele a ukazuje mu výsledky.
Logická vrstva přebírá hodnoty zadané do prezentační vrstvy a dále je zpracovává. Pošle dotazy do "skladu" dat jménem datová vrstva. Logická vrstva je opět předá prezentační vrstvě pro zobrazení klientovi.

Nyní si představte, že na vašem webu je například telefonní seznam reprezentovaný formulářem, do nějž zapíšete vstupní data. Logickou vrstvu zde představuje spustitelný program, který vaše údaje zkontroluje (zda neobsahují nepovolené znaky) a použije konektor pro připojení k datové vrstvě. Pak zadá dotaz pomocí vstupního řetězce. Datová vrstva obsahuje názvy všech souborů uložených na disku. Databáze vrátí seznam vyhovujících záznamů logické vrstvě a ta jej po odstranění přebytečných dat vrátí prezentační vrstvě. Existují v tomto systému však i výjimky. Například technologie ASP (Active Server Pages) umožňuje vkládat serverovou logiku do webových stránek v prezentační vrstvě. Zde jsou vypsány některé technologie používané pro tvorbu webové logiky:

ASP, ASP.NET, ISAPI, COM (Common Object Model), JavaScript od Microsoftu, Java 2 Enterprise Edition (J2EE) od Sun Microsystems, PHP (Hypertext PreProcessor) a Jakarta (=serverová Java) od Apache Software Foundation. Společné těmto technologiím je to, že pracují více jako "nativní" formy, než jako statické stránky jako např. HTML.

Takto vypadá například požadavek na skript PHP:


http://www.nejaka-domena.cz/neco.php?id=43&format=html

V tomto příkladu je soubor neco.php spustitelným souborem. Znaky dále za otazníkem jsou dodatečné argumenty. Tohle je veliká výzva pro hackery, protože tento fakt dává vzdáleným uživatelům zadávat na serveru kód s uživatelsky definovaným vstupem.

Databáze

Datové vrstvě se jinak říká také "back end". Dodavateli jsou SQL a Oracle. Tato vrstva je s logikou spojena datovými konektory, např. ODBC (Open DataBase Connectivity).

Servery proxy

Cílem a důvodem jejich zavedení je snaha o zprostředkování společné brány všem uživatelům, kteří se k Internetu chtějí připojit. Tento mechanizmus umožňuje, aby byl internetový obsah ukládán do jakési mezipaměti, tím pádem zvýšit rychlost a šetřit šířku pásma. Z hlediska hackerů jsou tito dnes již velmi hojně využívaní prostředníci ale nevítaným problémem. Průchodem přes server proxy se totiž naruší IP adresa uživatele a za zdrojovou se považuje adresa serveru proxy, přes níž požadavek prošel. Na tomto principu také fungují anonymizéry. Na stránce s anonymizérem zadáte požadovanou internetovou adresu a vaše připojení běží přes server proxy, tzn. na oné stránce se zobrazí IP anonymizéru. Pozor tedy na zobrazované IP, jsou velmi zavádějící. Dva požadavky od stejné IP neznamenají ještě stejného klienta.

Zařízení pro vyrovnávání zátěže

Algoritmy pro vyrovnávání zátěže se dají opět rozdělit na statické, u nichž jsou požadavky zpracovávány předem daným způsobem, a dymnamické, které předávají požadavky klientů serverům s přídavnými informacemi, jako je minimum požadavků nebo nejrychlejší spojení. Nejznámějšími typy jsou CLD (Cisco Local Director), NLB (Network Load Balancing) nebo Big-IP od společnosti F5.

Postup vypadá následovně: Váš požadavek je vyrovnávacím zařízením doručen všem serverům. Podle vnitřního algoritmu však odpoví pouze jeden server. Zbytek požadavků je pak směrován na něj, dle vnitřního algoritmu pro vyrovnávání zátěže. Vyrovnávací zátěže dělají hackerům také značné problémy. Scanování portů zde přináší klamné výsledky.

Webové služby

Jsou to jakési samostatné modulární webové aplikace. Jsou založeny na webovách standartech WSDL (Web Service Definition Language), XML formátu pro popis síťových služeb. Dále na specifikaci UDDI (Universal Description, Discovery and Integration), na sadě protokolů XML a infrastruktuře pro popis síťových služeb. Dále je zde SOAP (Simple Object Access Protocol), jenž zajišťuje komunikaci mezi síťovými službami.

Souhrn slabin jednotlivých částí struktury

Klient: Spouštění aktivního obsahu, zneužití chyb klientského softwaru, chyby umožňující cross-site scripting.
Přenos: Odposlech komunikace klient-server, přesměrování SSL.
Server: Slabá místa jednotlivých softwarů webových serverů (budeme probírat později).
Aplikace: Útoky na ověřování, autorizaci, strukturu webu, validaci vstupních údajů a aplikační logiku.
Databáze: Spouštění požadovaných příkazů prostřednictvím databázových dotazů. Manipulace s daty tak, aby byla vrácena citlivá data.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor se zajímá o bezpečnost sítí a systémů a o hacking.

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý