Webové aplikace - 1. díl - HTML, HTTP a základ stavby webu
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Webové aplikace - 1. díl - HTML, HTTP a základ stavby webuWebové aplikace - 1. díl - HTML, HTTP a základ stavby webu

 

Webové aplikace - 1. díl - HTML, HTTP a základ stavby webu

Google       Google       21. 11. 2005       16 287×

První kapitola vám popíše základní jazyk a transportní protokol na webu a také vás v rychlosti seznámí se systémem, jímž jsou webové aplikace stavěny...

Základním údajem je fakt, že web je založen na jazyku HTML (a jeho nadstavbách DHTML, XHTML), dále na jazycích jako XML, CSS stylech (Cascading Style Sheets) a dynamickém programovacím jazyku přizpůsobeném pro web, PHP (Hypertext PreProcessor). Všechny tyto jazyky mají však něco, co je spojuje - pracují na bázi protokolu HTTP (HyperText Transfer Protocol).

Jazyk HTML


Tento vyjadřovací prostředek slouží hlavně pro prezentaci dat vaší aplikace. Ukazuje návštěvníkům vše, co chcete, aby viděli. Tento jazyk však skrývá i jisté nedostatky, na které nyní upozorním:
Existují tagy, jež mohou být při nesprávném použití zneužity. Ty jsou definovány tagem <INPUT>, což je uživatelský vstup. Nejčastěji zneužívaným druhem vstupu je takzvané "skryté pole", <INPUT TYPE=HIDDEN> které je mylně považováno za bezpečnou úschovnu informací, které nechcete klientům ukázat. Obsah této značky se sice v prohlížeči nezobrazí, ale je přenášena s ostatními INPUTY na jednom formuláři. Obsah může tedy jakýkoli klient jednoduše upravit a poslat upravený zpět na váš server.
Jazyku HTML, alespoň v jeho základní podobě, už však takřka "odzvonilo" a do popředí se dostávají jeho mutace, zejména pak XML (eXtensible Markup Language), jenž je na nejlepší cestě svého tatínka definitivně odstranit. Navíc obrovskou výhodou na webu je možnost jazyka PHP, jenž umožňuje dodávat na web plnohodnotné a velmi kvalitně zabezpečené programy.

Transportní protokol HTTP


K jeho základní charakteristice poznamenáme, že na vašem počítači pracuje nejraději na portu TCP 80, ale umí se přepojit na kterýkoli jiný. Využívá primitivního systému požadavek - odpověď. HTTP udává způsob vyslání požadavku na zdroj a ten jej vrací zpět, pokud je dostupný. Prostředkem k této komunikaci je URI, neboli Uniorm Resource Identifiers.
Ukážeme si příklad požadavku pomocí nástroje NetCat, jenž se nejdříve připojí na server a na jeho port TCP 80. Pak zadá primitivní požadavek "neco.html", který potvrdíme dvojím stisknutím Enteru. Server odpoví způsobem, který představuje úspěšné vrácení požadavku a předá data klientovi.

c:>nc -vv www.nejaka-domena.cz 80
www.nejaka-domena.cz [185.14.123.56] 80 (http) open
GET /nejaka-stranka.html HTTP/1.0
HTTP/1.1 200 OK Date: Thu, 17 Nov 2005 15:25:45 Server: Apache/1.3.22 (Unix) Connection: close Connect-type: text/html
Jak vidíte, spuštění jednoho dotazu na server je primitivní, ale odhalí poměrně cenné informace. Odpověď odkryla přesný typ serveru, který doména používá a používaný operační systém.
Další důležitou vlastností protokolu HTTP je, že je bezstavový, tzv. není zde udržován "stav relace". Pokud vyšlete několik požadavků na stejný zdroj, server považuje každý z nich za samostatný a jedinečný.
Tato chyba je upravena pomocí souborů cookie. Ty upravují HTTP, téměř jako by byl stavový. Cookies však nejsou naprosto dokonalé, zvláště jsou-li špatně implementovány. Navíc dochází k problémům a sporům v osobním soukromí uživatelů, kteří jsou pomocí Cookies identifikováni. Pak je protokol HTTP založen na ASCII kódování, které je zaznamenáváno formou textu, takže není problém kód přečíst bez nutnosti dekódování.
Vyjímkou je použití protokolu SSL/TLS(Secure Socket Layer/Transport Layer Security). Ten šifruje transportní vrstvu. Nedělá však již nic jiného, než že zabraňuje, nebo spíše znesnadňuje odposlouchávání komunikace klient - server.
TLS je verzí SSl a používá port TCP 443.
Zvláštním typem protokolu je tzv. ověřování. HTTP využívá k ověřování nejčastěji tyto protokoly:

Basic - Jméno uživatele a heslo jsou zapsány ve snadno dekódovatelné šifře zvané Basic-64, která je zapsána v podobě textu.
Digest - Narozdíl od Basicu nelze hesla získat ve formě psaného textu.
Pomocí formuláře- Formulář je zpracováván na straně serveru a využívá souboru cookie pro sledování stavu "přihlášen".
Klientské certifikáty - Málo používaný. Protokol SSL/TLS kontroluje pravost digitálního certifikátu.

Ověřovací protokoly od Microsoftu
NTLM- Implementováno v hlavičkách HTTP, kde se používá již zmíněného systému požadavek - odpověď.
Microsoft Passport - Mechanizmus využívá klíč sdílený mezi firmou Microsoft a partnerským serverem.
Negotiate neboli vyjednávání - Klient a server se dynamicky dohodnou na kterémkoli protokolu ze seznamu Basic, Digest, ověřovací formulář, NTLM a Kerberos pro MS IE 5 a vyšší.

Další protokoly


Kromě nebezpečně jednoduchého HTTP, který je schopen komunikace pouze na bázi ASCII se používá protokol MIME (Multipart Internet Mail Extensions) pro přenos binárních dat. Webové aplikace dále používají protokol SMTP pro el. poštu nebo FTP pro přenos souborů. Dalším protokolem je pak WebDAV (Web Distributed Authoring and Versioning). Ten však využívá zápisu dat přímo na server, což, dle mnoha odborníků, není dobrý nápad.

Základ webové stavby


Nyní si představte svoji webovou aplikaci jako obrovský dům, jenž má libovolné množství pater. Představte si hackera jako zloděje, jenž se snaží ukrást drahocenný obraz ze svrchního patra domu. Zloděj samotný zde představuje požadavek na váš web. Nejdříve ho k vám vyšle jeho šéf, jenž představuje webového klienta. Cestě, kterou zloděj urazí, než se k vám dostane, říkáme přenos požadavku. Dorazí k bráně vaší parcely. To je první překážka. V tomto světě se nazývá webový server. V případě, že je zamčená, pokusí se ji přelézt, obejít. Vy však už při stavbě máte možnost předejít tomu, aby se zloděj vůbec dostal za bránu, za první zeď. Stačí bránu opatřit kvalitním zámkem a zeď postavit dostatečně vysokou a stabilní, případně její vrchol opatřit ostnatým drátem :-) K tomu se však ještě dostaneme.
Pokud se zloděj dostane na váš pozemek, dojde ke dveřím domu. Ty musí být v každém případě zamčené na dva západy! Váš samotný dům představuje webovou aplikaci, která už je velmi citlivá. Jak si později řekneme, musíte si dát obrovský pozor na všechna okna v přízemí. Musí být zavřená a zajištěná. V takovém případě se nemůže nic stát. Pokud však máte aplikaci nezajištěnou, zloděj má téměř vyhráno. Vyjde do patra, v němž je onen obraz, který je uložen v galerii se spoustou dalších drahých obrazů. Této pomyslné galerii zde říkáme databáze a obrazy jsou data.
Pokud se zloděj napojí na databázi, dílo je dokonáno. Má přístup k datům uloženým na server, mnohdy velmi citlivým. Pokud máte například na svém webu přihlašovací mechanismus, hacker vidí data, jež jsou přístupná pouze autorizovaným osobám, jako jsou telefonní čísla přihlášených nebo dokonce, v nějaké firmě, mnohem choulostivější typy informací.

Další upozornění: Buďte opatrní na takzvané "sociotechnické inženýrství". Zloděj přijde k domu, zazvoní, řekne, že je od pojišťovny a vy ho pustíte do galerie. Ošidně jednoduchý způsob hackingu, ale překvapivě účinný. Dávejte si pozor a nevěřte nikomu, u koho nemáte stoprocentní jistotu, že je to opravdu správce hostingu, opravář HW a tak dále. Správně provedený sociotechnický útok dokáže být stejně účinný jako ten technický.
To je k první kapitole vše. V té další se podíváme výrazně blíže na svůj "dům".

×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ý