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

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       14 469×

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...

Reklama
Reklama

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 NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Reklama
Reklama
Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý