Anda di halaman 1dari 93

6 Web

World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata sainjenih od povezanih Web stranica napisanih u HTML-u (Sl. 6-1). Stranice su raspoloive korisnicima Web-a u vidu datoteka smetenih na milionima raunara distribuiranih po Internetu. Svaka stranica moe sadrati pokazivae (tzv. linkove ili hiperveze) na druge stranice koje mogu biti smetene na istom ili na nekom drugom raunaru (ili, u terminologiji Web-a, Web sajtu). Klikom na link, korisnik prelazi na sledeu stranicu, a ovaj proces se moe nastaviti u nedogled. Koncept stranica koja sadri pokazivae na druge srodne stranice naziva se hipertekstom. Stranica moe sadrati i delove koji nisu tekstualni (npr. slike).

Sl. 6-1 Web - distribuirana kolekcija povezanih dokumenata.

Da bi se Web implementirao na Internetu koriste se dve glavne komponente: Web pretraiva i Web server. Web pretraiva (browser) je aplikacioni program koji korisnik poziva da bi pristupio stranici i prikazao je. Najpoznatiji Web pretraivai su Internet Explorer i Natscape Navigator. Web pretraiva ima ulogu klijenta koji stupa u vezu sa odgovarajuim Web serverom da bi dobio primerak navedene stranice. Pretraiva pribavlja traenu stranicu, interpretira tekst zajedno sa sadranim komandama za formatiranje, i prikazuje ga na ekranu monitora. Primer stranice prikazan je na Sl. 6-2. Kao i mnoge sline Web stranice, stranica sa Sl. 6-2 sadri naslov i izvesne informacije. Konkretno stranica sadri spisak predmeta i predavaa iz grupe za Embedded sisteme Elektronskog fakulteta u Niu. Delovi teksta koji sadre linkove na druge stranice su obino naglaeni (podvueni ili prikazani u odgovarajuoj bolji). Klikom na tekst Internet and Web technologies korisnik moe da dobije dodatne informacije o istoimenom predmetu. Pretraiva pribavlja i prikazuje stranicu na koju ukazuje izabrani link. Pretraiva pribavlja stranicu bez ikakve pomoi korisnika, a nova stanica moe biti uzeta sa istog raunaru sa kojeg je pribavljena i prva ili sa nekog drugog raunaru.

(a)

(b)

Sl. 6-2 (a) Primer Web stranice; (b) Stranica koja se uitava u pretraiva klikom na link Internet and Web Technologies.

147

Osnovni model rada Web-a prikazan je na Sl. 6-3. Na Sl. 6-3 vidimo pretraiva koji na klijentskom raunaru prikazuje Web stranicu. Kada korisnik klikne na liniju teksta koja je povezana sa stranicom sa servera abcd.com, pretraiva sledi link tako to serveru abcd.com alje poruku kojom od njega trai zahtevanu stranicu. Kada dobije traenu stranicu, pretraiva je prikazuje. Ako ova nova stranica sadri link na stranicu sa servera xyzw.com, klikom na ovaj link, pretraiva e poslati zahtev ovom raunaru, i tako do u nedogled.

6.1 Web pretraiva


Razmotrimo sa vie detalja rad klijenta sa Sl. 6-3. U osnovi, pretraiva je program koji moe da prikazuje Web stranice i reaguje kada se miem klikne neki objekat na stranici. Kada je objekat izabran, pretraiva prati hipervezu pridruen objektu i pribavlja izabranu stranicu. Jasno je da je za implementaciju hiperveze neophodan nain za imenovanje stranica na Web-u. Za imenovanje stranica koriste se ema poznata pod nazivom URL (uniformni lokator resursa). Tipian URL je oblika: http://www.abcd.com/products.html Detaljnije objanjenje URL-ova sledi kasnije u ovom poglavlju. Za sada, dovoljno je znati da se URL sastoji iz tri dela: ime protokola (http), simboliko (DNS) ime raunara na kome je stranica locirana (www.abcd.com), i ime datoteke koja sadri stranicu (products.html). Kada korisnik klikne na hipervezu, pretraiva obavlja niz aktivnosti kako bi pribavio traenu stranicu. Pretpostavimo da je korisnik pretraujui Web pronaao link na Elektronski fakultet u Niu: http://www.elfak.ni.ac.yu/home/index.html. Sledi niz koraka koje obavlja pretraiva nakon izbora ovog linka: 1. 2. 3. 4. 5. 6. 7. 8. 9. Pretraiva odreuje URL (Na stranici, URL obino nije vidljiv ve je sakriven iza teksta hiperveze) Pretraiva se obraa DNS serveru traei od njega IP adresu hosta www.elfak.ni.ac.yu. DNS server odgovara sa 160.99.1.1 Pretraiva uspostavlja TCP konekciju sa hostom 160.99.1.1 na portu 80. Preko otvorene TCP konekcije, pretraiva alje zahtev traei fajl /home/index.html. Server www.elfak.ni.ac.yu odgovara slanjem fajla /home/index.html. TCP konekcija se zatvara. Pretraiva prikazuje tekst sadran u falju /home/index.html. Pretraiva pribavlja i prikazuje sve slike iz ovog fajla.
Trenutno prikazana stranica u pretraivau Klijent Server abcd.com Server xyzw.com

Ljk kjls fsf Dfsaf f adf Fafadf fadfaf

Hiperlink na abcd.com

Sde f Dfsaf f adf Fafad Disk

Hiperlink na xyzw.com

kjls fsf Dfsaf f adf Fafad Disk

TCP konekcija

Web pretraiva

Web server

Web server

INTERNET

Sl. 6-3 Komponente Web modela.

Da bi bio u mogunosti da prikae stranicu, pretraiva mora da razume njen format. Kako bi se obezbedilo da svi pretraivai razumeju sve Web stranice, Web stranice se piu u standardnom jeziku koji se zove HTML. Iako su pretraivai u osnovi HTML interpretatori, veina pretraivaa poseduje brojne dodatne funkcije koji olakavaju navigaciju na Web-u. Tipino, pretraivai imaju dugme za povratak na prethodnu stranicu, dugme za prelazak na sledeu stranicu i dugme za direktno uitavanje stranice koju je korisnik oznaio kao svoju poetnu stranicu. Po pravilu, pretraivai poseduju podrku za bookmark-e, tj. kreiranje liste esto poseivanih stranica. Takoe, uitane stranice se mogu tampati ili snimiti na hard disk. Pored toga, obino su dostupne brojne opcije za podeavanje izgleda stranice.

148

Pomone aplikacije i plug-in-ovi Ne sadre sve stranice samo HTML. Stranica se moe sastojati od dokumenta formatiranog u PDF formatu, ikone u GIF formatu, fotografije u JPEG formatu, muzike u MP3 formatu, videa u MPEG formatu, odnosno bilo kojeg sadraja u jednom od stotina razliitih tipova fajlova i formata. Pretraiva mora biti u stanju da prepozna i pravilno interpretira sve ove formate. Meutim, umesto neprekidnog proirivanja i prilagoenja interpretatora sve obimnijem skupu razliitih tipova fajlova, kod veine pretraivaa koristi se jedno optije reenje. Kada server vrati stranici, on zajedno sa stranicom alje i dodatne informacije o stranici, kao to je MIME tip stranice. Stranice tipa text/html se prikazuju direktno, a to vai i za jo nekoliko drugih ugraenih tipova. Meutim, ako MIME tip stranice nije jedan od ugraenih, pretraiva konsultuje svoju tabelu MIME tipova u kojoj pronalazi informaciju o tome kako prikazati stranicu datog tipa. Ova tabela pridruuje MIME tip odgovarajuem programu za prikazivanje. Postoje dve mogunosti: plug-in-ovi (dodaci programu) i pomone (halper) aplikacije. Plug-in je programski modul kojeg pretraiva dobavlja iz jednog posebnog direktorijuma na hard disku i instalira kao svoje sopstveno, privremeno proirenje (kao to je ilustrovano na Sl. 6-4(a)). Plug-in nije program za sebe, ve se izvrava kao deo pretraivaa i na taj nain ima pravo pristupa tekuoj stranici i moe je procesirati. Nakon to je plug-in obavio svoj zadatak, on se odstranjuje iz memorije pretraivaa.

(a) (b) Sl. 6-4 Koncept proirenja pretraivaa: (a) plug-in; (b) pomona aplikacija

Da bi pretraiva i plug-in mogli da se poveu, svi plug-in-ovi predvieni za odreeni pretraiva moraju posedovati identian interfejs. Interfejs plug-in-a ini skup procedura koje pretraiva moe da poziva. Na primer, svaki plug-in poseduje proceduru putem koje je pretraiva u mogunosti da plug-in-u prenese podatke za procesiranje. Slino, i pretraiva poseduje interfejs koji je dostupan plug-in-ovima, a putem kojeg oni mogu da zahtevaju izvesne usluge od pretraivaa. Na primer, tipina procedura ovog interfejsa je ona putem koje je plug-in-u omogueno da ispie poruku u statusnoj liniji pretraivaa ili da zatrai od pretraivaa vrednosti izvesnih parametara. Postojanje unapred definisanih interfejsa omoguava da pretraiva koristi sve plug-in-ove na identian nain. To praktino znai da pojava novog tipa fajla (tj. formata) zahteva kreiranje odgovarajueg plug-in-a, ali ne zahteva bilo kakvu izmenu u pretraivau. Meutim, pre nego to moe da se koristi, plug-in mora biti instaliran u sistem. Uobiajeni scenario je taj da korisnik download-uje instalacioni fajl plug-in-a sa Web sajta plug-in-a. Kod Wnidnows sistema, instalacioni fajl je tipino samo-ekstrahujui zip fajl sa nastavkom .exe. Duplim klikom na zip fajl, pokree se program sadran u zip fajlu. Ovaj program ekstrahuje plug-in iz fajla i kopira ga u direktorijum predvien za plug-in-ove. Takoe, program registruje plug-in-ov MIME tip i pridruuje plug-in ovom novom MIME tipu. Drugi nain za proirenje pretraivaa je zasnovan na pomonim aplikacijama. Pomone aplikacije su kompletni programi koji se izvravaju nezavisno od pretraivaa (Sl. 6-4(b)). Poto se radi o zasebnom programu, komunikacija izmeu pretraivaa i pomone aplikacije se ne ostvaruje putem interfejsa. Obino, pomonoj aplikaciji se prilikom pokretanja prosleuje ime fajla u koji je smeten sadraj koji treba obraditi. Pomona aplikacija otvara naznaeni fajl i prikazuje njegov sadraj. Tipino, pomone aplikacije su obimni programi koji egzistiraju nezavisno od pretraivaa, kao to je Adobe Acrobat Reader, program za prikazivanje PDF fajlova, ili Microsoft Word. Veina pomonih aplikacija koristi MIME tip application. Definisan je veliki broj podtipova. Na primer, application/pdf za PDF fajlove ili application/msword za Word fajlove. Na ovaj nain URL moe direktno da ukazuje na PDF ili Word fajl (npr. http://es.elfak.ni.ac.yu/iw/Materijal/lab1.pdf), a kada korisnik klinke na URL, Acrobat ili Word se automatski startuje i preuzima na sebe obradu preuzetog fajla. Na ovaj nain, pretraiva moe biti konfigurisan za praktino neogranieni broj tipova dokumenata, a da to, slino kao kod plug-in-ova, ne zahteva bilo kakve promene u samom pretraivau. Web pretraiva na raunaru tipinog korisnika konfigurisan je sa tipino vie desetina kombinacija tip/podtip, a novi tipovi i podtipovi se obino dodaju uvek kada se instalira neki novi program. Naime, u Windows sistemu, program koji se instalira na raunar ujedno i
149

registruje MIME tipove koje eli da obrauje. Meutim, ovakav mehanizam vodi do koflikta kada u sistemu postoji vie prikazivaa za isti MIME podtip (npr. video/mpg). U takvim situacijama, poslednji program koji je registrovan prepisuje postojeu asocijaciju MIME tip - pomona aplikacija i dati MIME tip/podtip vezuje za sebe. Zbog toga, instalacija novog programa moe kao posledicu imati promenu naina na koji pretraiva obrauje postojee tipove dokumenata. Pretraivai mogu otvarati i lokalne fajlove (sa hard diska), a ne samo one preuzete sa udaljenih Web servera. Poto lokalnim fajlovima nisu pridrueni MIME tipovi, neophodan je nain kako e pretraiva odrediti koji plug-in ili pomonu aplikaciju upotrebiti za obradu konkretnog lokalnog fajla. Ovaj problem se prevazilazi na sledei nain. Pomone aplikacije, pored toga to su u sistemu registrovane za obradu MIME tipa, mogu takoe biti registrovane i za obradu fajlova sa nekim specifinim nastavkom (ekstenzijom). U tipinoj konfiguraciji, dupli klik na fajl nesto.pdf, pokrenue Acrobat u kome e sadraj fajla biti prikazan. Slino, dupli klik na fajl neto.doc dovee do otvaranja ovog fajla u programu Word. Pojedini pretraivai koriste MIME tipove, ekstenzije fajlova, pa ak i informacije uzete iz samog fajla kako bi odredili o kom tipu fajla se radi i pozvali odgovarajuu pomonu aplikaciju ili uitali odgovarajui plug-in. Slino kao kod asocijacija za MIME tipove, i kod asocijacija za ekstenzije fajlova moe doi do konflikta izmeu programa koji su voljni da obrauju fajlove sa istim nastavkom. Na primer, u sistemu moe postojati vie programa koji su u mogunosti da procesiraju .mpg fajlove. Tipino, u toku instalacije novog programa, korisniku se postavlja pitanje da li eli da program kojeg instalira registruje za ponuene ekstenzije. Ukoliko je odgovor potvrdan, postojee asocijacije e biti prepisani novim. Mogunost proirenja pretraivaa velikim brojem novih tipova znaajno olakava korienje Web-a, ali s druge strane, moe da dovede i do problema koji se tiu sigurnosti. Na primer, kada Internet Explorer pribavlja fajl sa nastavkom .exe, on zakljuuje da se radi o izvrnom programa kome zbog toga nije potreba pomona aplikacija. Normalna akcija u ovakvoj situaciji je pokretanje preuzetog programa. Meutim, to moe biti ozbiljna pretnja sigurnosti sistema jer preuzeti program moe sadrati virus. Da bi se predupredile ovakve situacije, Internet Explorer moe biti podeen da ne startuje automatski nepoznate programe ili da konsultuje korisnika pre nego to pokrene preuzeti program.

6.2 Web server


Kao to je objanjeno u prethodnoj sekciji, kada korisnik ukuca URL ili klikne na hipervezu, pretraiva analizira URL i deo izmeu http:// i sledee kose crte tumai kao DNS ime iju IP adresu trai od DNS servera. Sa IP adresom na raspolaganju, pretraiva uspostavlja TCP konekciju na portu 80 odgovarajueg servera. Kroz otvorenu konekciju, pretraiva alje komandu koja sadri preostali deo URL-a, tj. ime fajla na kontaktiranom serveru. Server vraa nazad fajl i pretraiva ga prikazuje. Web server moemo zamisliti kao program koji neprekidno, u petlji, obavlja sledei niz aktivnosti: 1. 2. 3. 4. 5. Prihvata TCP konekciju od klijenta (pretraivaa). Preuzima ime zahtevanog fajla. Pronalazi fajl (na svom hard disku). alje fajl klijentu. Zatvara TCP konekciju.

Savremeni Web serveri poseduju brojne dodatne mogunosti, ali u osnovi, rad Web servera se svodi na prethodnu proceduru. Uoimo da svaki zahtev upuen od strane klijenta, podrazumeva pristup hard disku radi uzimanja traenog fajla. Kao posledica toga, broj zahteva koje Web server moe da opslui u sekundi direktno je odreen vremenom pristupa hard disku. Proseno vreme pristupa hard diskova velike brzine rada iznosi oko 5 ms, to postavlja ogranienje na najvie 200 zahteva/s (i manje ako se esto itaju veliki fajlovi). Za Web sajtove sa velikom brojem istovremenih posetioca 200 zahteva/s je isuvie malo. Jedno poboljanje koje se koristi kod svih Web servera podrazumeva da se u operativnoj memoriji raunara kreira ke sa n najskorije korienim fajlovima. Pre nego to fajl potrai na disku, server proverava ke. Ako je fajl u keu, tada nije potrebno pristupati hard disku jer se fajl moe uzet direktno iz memorije. Iako je za efikasno keiranje potrebno rezervisati relativno veliku koliinu operativne memorije kao i dodatno CPU vreme radi provere da li se fajl nalazi u keu, uteda u vremenu obrade jednog zahteva je obino dovoljno velika da kompenzuje dodatni troak.

150

Sledei nain za ubrzanje rada Web servera predvia uvoenje multithreading1. Kod takvog reenja, server se sastoji iz jednog front-end (isturenog) pristupna modula koji prihvata sve dolazne zahteve i k pozadinskih modula koji obrauju zahteve (Sl. 6-5). Svih k+1 thread-ova pripada istom procesu i imaju pristup keu. Kada zahtev stigne, pristupni modul ga prihvata i kreira jedan kratak zapis sa podacima o zahtevu kojeg predaje jednom od trenutno raspoloivih pozadinskih procesa. Pozadinski modul najpre proverava da je fajl koji trai prisutan u keu i ako jeste, u zapis upisuje pokaziva na fajl. Ako fajl nije u keu, pozadinski modul zapoinje operaciju prenosa fajla sa diska u ke (uz eventualno izbacivanje nekih keiranih fajlova, ako u keu nema dovoljno prostora). Nakon to je fajl prebaen u ke, zapis sa upisanim pokazivaem se vraa pristupnom moduli koji preuzima fajl iz kea i prosleuje ga klijentu koji je uputio zahtev.

Sl. 6-5 Multithread Web server sa pristupnim modulom i pozadinskim modulima.

Prednost opisanog mehanizma je u tome to za vreme dok su jedan ili vie pozadinskih modula blokirani ekajui na zavretak operacije itanja fajla sa diska (i zbog toga ne troe CPU vreme), ostali moduli mogu biti aktivno upoljeni na obradi novih zahteva. Naravno, da bi se ostvarilo bilo kakvo poboljanje performansi u odnosu na single-thread (jednonitni) model, neophodno je da sistem poseduje vie od jednog hard diska (kako bi vie diskova bili istovremeno upoljeni). U idealnom sluaju, propusna mo multithread Web severa sa k pozadinskih modula u sistemu sa k diskova, moe biti k puta vea u odnosu na single-thread server i jedan disk. Savremeni Web serveri, osim vraanja klijentu traenog fajla, obavljaju i niz dodatnih operacija. Konkretno, u zavisnosti od tipa pristiglog zahteva, pozadinski modul obavlja neki podskup sledeeg niza aktivnosti: 1. 2. 3. 4. 5. 6. 7. 8. 9. Odreivanje imena zahtevane Web stranice iz URL-a. Provera autentinosti klijenta Provera prava pristupa klijenta. Provera prava pristupa Web stranici. Provera kea. Pribavljanje zahtevane stranice sa diska. Odreivanje MIME tipa koji e biti sadran u odgovoru koji se vraa klijentu. Slanje odgovora klijentu. Kreiranje zapisa u log fajlu.

Korak 1 je neophodan zato to primljeni zahtev ne mora sadrati stvarno ime fajla. Na primer, razmotrimo URL http://www.elfak.ni.ac.yu, kod kojeg ne postoji ime fajla. U takvim sluajevima, zahtev se odnosi na podrazumevani fajl (ije je ime obino default.html ili index.html). Takoe, pretraiva moe u zahtevu da navede podrazumevani jezik korisnika (npr. Srpski ili Engleski), a da server izabere verziju stranice na tom jeziku. Korak 2 podrazumeva proveru identiteta klijenta. Ovaj korak je neophodan za stranice koje nisu dostupne svim korisnicima. U koraku 3 proverava se da li je datom klijentu dozvoljen pristup traenoj stranici. U koraku 4 proverava se da li je postoji neko ogranienje koje se odnosi na pristup samoj stranica. Na primer, pristup stranici moe biti dozvoljen samo ako zahtev potie iz odreenih domena (npr. stranici moe biti dostupna samo lokalnim korisnicima). U koracima 5 i 6 vri se uzimanje stranice. Korak 7 podrazumeva odreivanje MIME tipa stranice (na osnovu ekstenzije fajla, prvih nekoliko rei samog fajla ili na neki drugi
Engleska re thread se prevodi kao nit, a pojam multithreading kao vienitni rad ili rad sa vie niti u isto vreme. Procesi i niti su dva osnovna mehanizma za paralelno (konkurentno) izvravanje programa. Programi koji imaju potrebu da istovremeno obavljaju vie poslova u isto vreme mogu za svaki takav zadatak da kreiraju jedan proces koji e se izvravti uporedo sa drugim procesima. Svaki proces poseduje svoju memoriju za uvanje svojih podataka. Nit je u osnovi slian procesu, s tom razlikom da ne poseduje svoju spostvenu memoriju ve je deli sa svim ostalim nitima kreiranim u istom programu.
1

151

nain). U koraku 9, formira se odgovor koji se vraa klijentu. U koraku 9, formira se zapis o obraenom zahtevu i upisuje u jednom posebnu datoteku za voenje evidencije o pristupima Web severu (tzv. log fajl). Zapis sadri informaciju o identitetu klijenta, domenu iz kojeg zahtev poslat, vreme prijema zahteva, ime zahtevane stranice itd. U sluajevima kada je broj zahteva koji se upuuje Web serveru u jednoj sekundi veoma veliki, jedan CPU nee biti u stanju da obradi sve zahteve, bez obzira na broj hard diskova koji se koriste u paraleli. U takvim situacijama koristi se model farme servera. Kod ovog modela, umesto jednog koristi se vie vorova (raunara), od kojih svaki eventualno poseduje vie diskova (Sl. 6-6). Pretpostavka je da svi raunari ukljueni u farmu servera poseduju sve Web stranice. Pristupni modul i dalje prihvata zahteve, ali ih sad distribuira razliitim raunarima, a ne nitima u okviru jednog raunara. Na ovaj nain, smanjuje se optereenje pojedinanih raunara.

Sl. 6-6 Farma servera

Jedan problem koji se javlja kod farme servera posledica je nepostojanja zajednikog kea, jer svaki vor poseduje svoju sopstvenu memoriju. Naime, moe se desiti da je traeni fajl prisutan u keu nekog vora, a da je zahtev prosleen voru kod kojeg se fajl mora proitati sa diska. U takvoj situaciji, vreme obrade zahteva je due nego to je to neophodno. Takoe, nakon obraenog zahteva isti fajl e se nai u dva kea. Jedan nain za ublaavanje gubitka u performansama zbog nepostojanja zajednikog kea sastoji se u tome da pristupni modul vodi evidenciju o tome kome je poslao svaki zahtev, a da naredne zahteve koji odnose na istu stranicu alje istom voru. Na taj nain, pojedinani vorovi se specijalizuju za pojedine stranice tako da se ukupni raspoloivi prostor u keu ne troi neracionalno za uvanje svakog fajla u svakom keu.

6.3 URL
Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih hipervezama, a zapamenih u fajlovima koji su locirani na hiljadama servera distribuiranim po globalnom Internetu. Imajui to u vidu, kljuna pretpostavka Web-a je postojanje mehanizma za imenovanje i lako lociranje stranica. Konkretno, pre nego to izabrana stranica moe biti pribavljena i prikazana u pretraivau, neophodno je odgovoriti na sledea tri pitanja: 1. 2. 3. Koje je ime stranice? Gde se stranica nalazi? Kako se stranici moe pristupiti?

Odgovor na ova tri pitanja sadran je u URL-u (Uniform Resource Locator - uniformni lokator resursa) stranice. Naime, svakoj stranici na Web-u dodeljen je URL koji se koristi kao njeno svetski jedinstveno ime. URL se sastoji iz tri dela: (a) protokol (ili ema); (b) DNS ime raunara na kome je stranica locirana i (a) lokalno ime koje na jedinstveni nain ukazuje na konkretnu stranicu (najee ime fajla na hard disku u kome je stranica zapamena). Na primer, URL Web stanica kursa Internet i Web tehnologije na Elektronskom fakultetu u Niu je http://es.elfak.ni.ac.yu/iw/iw.htm i sastoji se iz tri dela razdvojenih kosim crtama: protokol (http), DNS ime hosta (se.elfak.ni.ac.yu) i ime fajla (iw/iw.htm). Deo za ime fajla se sastoji od relativna putanja u odnosu na podrazumevani Web direktorijum na serveru es.elfak.ni.ac.yu (iw/) i imena samog fajla (iw.htm). Deo za ime fajla moe biti izostavljen iz URL-a (npr. samo http://es.elfak.ni.ac.yu). U tom sluaju, Web server zahtev se preusmerava na glavnu (podrazumevanu) stranicu Web sajta. Takoe, deo za ime fajla moe da sadri putanju do direktorijuma, ali ne i samo ime fajla (npr. http://es.elfak.ni.ac.yu/iw/). U takvim sluajevima, Web server preusmerava zahtev na podrazumevani fajl u tom direktorijumu (npr. http://es.elfak.ni.ac.yu/iw/index.htm). Kod mnogih Web sajtova uvedene su skraenice za imena fajlova, koje poinju znakom ~. Na primer, ime oblika ~ana/ zamenjuje kompletnu putanju do direktorijuma korisnika ana na lokalnom raunaru.

152

Kao to je ve reeno, za komunikaciju izmeu Web klijenta (pretraivaa) i Web servera koristi se TCP protokol. Pretraiva otvara TCP konekciju sa Web serverom, koja se potom koristi za prenos zahteva od pretraivaa ka serveru, a onda i za prenos odgovora (koji sadri traenu stranicu) od servera do pretraivaa. Meutim, TCP protoko se koristi samo za transport zahteva i odgovora, dok su pravila konverzacije i formati poruka koje se razmenjuju izmeu pretraivaa i Web servera regulisana posebnim aplikacionim protokolom. ta vie, ne postoji samo jedan, ve se za ovu namenu mogu koristi razliitih aplikacionih protokola koji su specijalizovani za prenos specifinih tipova resursa. Ime protokola koji se koristi za pristup stranici navedeno u poetnom delu URL-a. Delimian spisak protokola koji se mogu koristiti kao deo URL-a, naveden je u tabeli sa Sl. 6-7. Protokol HTTP je osnovni protokola Web-a i koristi se za komunikaciju Web klijenta i Web servera. Vie detalja o ovom protokolu bie dato u sledeoj sekciji. Protokol FTP, koji se koristi za pristup fajlovima, bio je u irokoj upotrebi i pre nastanka Web-a. I danas na Internetu postoj veliki broj FTP servera sa kojih zainteresovani korisnici mogu preuzimati najrazliitije fajlove. ta vie Web je olakao korienje FTP-a, s obzirom na to da je pristup FTP serveru preko Web pretraivaa laki, od pristupa putem osnovnog FTP korisnikog interfejsa. Takoe, FTP, za razliku od HTTP, omoguava prenos fajlova u oba smera, kako od servera do klijenta, tako i od klijenta do servera.
Ime http ftp file news gopher mailto telnet Koristi se za Hipertekst (HTML) FTP Lokalni fajl Newsgroup Gopher slanje elektronske pote Udaljeni login Primer http://es.elfak.ni.ac.yu ftp://ftp.elfak.ni.ac.yu file:// C:\Documents and Settings\Goran\My Documents\Courses\IWT\iwt.doc news:comp.os.minix gopher://gopher.tc.umn.edu/11/Libraries mailto:ppetrovic@elfak.ni.ac.yu telnet://www.w3.org:80 Sl. 6-7 Protokoli koji se mogu korisiti u URL-u.

Protokol file omoguava pristup lokalnim fajlovima i prikazivanje njihovog sadraja u pretraivau, na isto nain kao Web stranica. Ovaj pristup je slian FTP-u, ali ne zahteva FTP server. Naravno, primenljiv je samo na fajlove koji se nalaze na lokalnom hard disku raunara. Sistem vesti USENET, postojao je mnogo pre nastanka Interneta. Danas ga ini oko 30.000 grupa za razmenu vesti u kojima milioni ljudi diskutuju na najrazliitije teme tako to postavljaju i itaju lanke koji se odnose na temu konkretne grupe. Protokol news omoguava da se lanku iz grupe za razmenu vesti pristupa na isti nain kao i Web stranici. Gopher je protokol koji se nekada koristio u istoimenom sistemu za pronalaenje informacija na Internetu, koji se smatra preteom Web-a. Konceptualno, Gopher je slian Web-u, ali podrava samo tekst, a ne i slike. Danas se smatra zastarelim i nije vie u upotrebi. Protokol mailto omoguava korisnicima da putem Web pretraivaa alju elektronsku potu. Dovoljno je u polje za unos hiperlinka upisati mailto: i e-mail adresu primaoca. Veina Web pretraivaa, u ovakvoj situaciji, otvara program za slanje elektronske pote sa popunjenim poljima za e-mail adresu. Protokol telnet, kao to znamo, koristi se za uspostavljanje konekcije sa udaljenim hostom. Slino kao u sluaju mailto protokola, upisivanjem telnet: zajedno sa IP adresom udaljenog hosta u polje za unos hipelinka, otvara program za rad TELNET protokolom. U zakljuku, URL je osmiljen ne samo da omogui korisnicima navigaciju na Web-u, ve i korienje drugih mrenih servisa (FTP, news, Gopher, e-mai i telent) na uniforman nain, posredstvom Web pretraivaa.

6.4 Cookie
Kod Web-a ne postoji sesija. Pretraiva alje zahtev, a server vraa nazad traeni fajl. Nakon obavljene transakcije, server zaboravlja da je ikada komunicirao sa tim konkretnim klijentom. (Kae se da je Web stateless (bez stanja) ili bez memorije). U prvom periodu razvoja Web-a, kada se Web gotovo iskljuivo koristio za pribavljanje javno dostupnih dokumenata, ovakav (stateless) nain rada bio je u potpunosti zadovoljavajui. Meutim, sa naglim irenjem Web i porastom njegove popularnosti, model zasnovan na nezavisnim transakcijama vie nije mogao da zadovolji sve potrebe novih primena. Na primer, neki Web sajtovi zahtevaju od korisnika da se registruju pre nego to im se dozvoli korienje dostupnih usluga sajta. Postavlja se pitanje, kako e Web server znati da li
153

zahtev potie od registrovanog ili neregistrovanog korisnika, pa da na osnovu toga dozvoli ili zabrani pristup nekim svojim stranicama. Drugi primer su Web portali (npr. Yahoo) kod kojih svaki registrovani korisnik moe da konfigurie sadraj poetne stranice birajui informacije koje e biti prikazane uvek kada uita stranicu (npr. vremenska prognoza, kurs, sportski rezultati...). Meutim, kako e Web server znati kako da prilagodi stranicu korisniku, ako ne zna koji korisnik je uputio zahtev. Slian problem se javlja kod Web sajtova elektronskih prodavnica koje omoguavaju korisniku da pregleda ponuene artikle, izabere one koje eli da kupi i stavi ih u elektronsku korpu i na kraju kupovine plati raun kreditnom karticom. Na prvi pogled, ini se da je dovoljno da server vodi evidenciju o IP adresama sa kojih se upuuju zahtevi za stranicama. Meutim, ova ideja nije dobra. Pre svega, mnogi korisnici koriste raunare koje dele sa drugim korisnicima. IP adrese moe da identifikuje raunara, ali ne i korisnika koji trenutno radi na raunaru. Drugo, mnogi korisnici (pre svega kuni) Internetu pristupaju putem provajdera Internet usluga (npr. pomou modema) od kojih, nakon konektovanja, dobijaju IP adresu na privremeno korienje, koja ne mora biti ista kao IP adresa koju su koristili prilikom prethodnog konektovanja. Da bi se opisani problem reio, razvijena je tehnika pod nazivom cookies (kolaii). U nastavku e biti objanjen nain kreiranja, uvanja i korienja cookie-a. Kreiranje i uvanje Cookie-a. Iako kreiranje i uvanje cookie-a zavisi od konkretne realizacije, osnovni princip je uvek isti. Cookie je mali fajl (ne vei od 4KB) ili string koji se pridodaje svakom zahtevu ili odzivu koji se razmenjuju izmeu klijenta i servera. Cookie pravi server i, zajedno sa traenom Web stranicom, alje ga klijentu. Cookie sadri ime domena servera zajedno sa podacima koje je server prikupio od klijenta (korisniko ime, registracioni broj) kao i dodatne podatke koje imaju znaaj u konkretnoj situaciji. Na strani klijenta, pretraiva automatski izdvaja cookie iz primljenog odziva i smeta ga na hard disk u direktorijum predvien za uvanje cookie-a. Kada klijent alje zahtev serveru, pretraiva proverava da li u direktorijum za cookie, postoji cookie kojeg je poslao dati server. Ako takav cookie postoji, pretraiva ga pridodaje zahevu i ale serveru. Server, kada primi zahtev, zna da se radi o starom, prepoznatljivom korisniku, a ne o nekom novom. Dakle, cookie pravi i koristi (konzumira) server. Pretraiva uva cookie do sledeeg obraanja serveru, ali nikada ne ita sadraj cookie-a, niti njegov sadraj otkriva korisniku. Korienje cookie-a Jedan mogui scenario korienja cookie-ja je sledei. Prilikom prve posete sajtu za on-line prodaju knjiga, od korisnika se zahteva da izabere jednu ili vie oblasti za koje je zainteresovan (tehnika, beletristika, ).. Nakon obavljene registracije server kreira cookie sa sadrajem oblast1=tehnika, oblast2=naucna_fantastika, ..., i alje ga klijentu. Pretraiva izdvaja cookie iz odgovora i smeta ga u odgovarajui direktorijum. Kad god kasnije korisnik pristupi ovom sajtu, pretraiva zajedno sa zahtevom alje serveru i odgovarajui cookie. Na osnovu sadraja cookie-a, server saznaje ime korisnika i koristi ga kao klju za pretragu baze podataka iz koje ita i ostale podatke tog korisnika. Na osnovu ovih podataka, Web server kreira, i vraa nazad stranicu koja sadri spisak novih knjiga iz oblasti za koje je korisnik zainteresovan. Jo jedan tipian scenari okorienja cookie-a sreemo kod elektronskih prodavnica. Kada klijent (kupac) izabere artikal i stavi ga u korpu, kreira se cookie koji sadri informacije o artiklu (npr. cena i koliina) i alje pretraivau. Ako klijent izabere drugi artikl, cookie se aurira novim podacima. Kada klijent zavri kupovinu i eli da se odjavi, server preuzima poslednji cookie i izraunava ukpunu cenu. Format cookie-a Cookie moe sadrati do pet polja: (Domain, Path, Content, Expires, Secure) Domain (Domen). Ovo polje sadri ime domena iz koga cookie potie (domen servera). Path (putanja). Ovo polje sadri putanju u strukturi direktorijuma servera koja ukazuje na deo njegovog stabla direktorijuma unutar kojeg sve stranice mogu koristiti cookie. Kosa crta / u ovom polju znai celokupno stablo. Content (sadraj). Sadraj ovog polja je oblika ime = vrednost. Ime i vrednost mogu biti bilo koja informacija koju server eli da uvrsti u cookie. Expires (rok vaenja). Ovo polje sadri datum i vreme kada prestaje vanost cookie-ja. Ako ovo polje ne postoji, pretraiva unitava cookie prilikom svog zatvaranja. Ovakav cookie se zove neperzistentni cookie. Ukoliko su

154

datum i vreme sadrani u cookie-ju, za cookie se kae da je perzistentan i da e ostati na klijentu sve do isteka navedenog roka. Secure (Sigurnost). Ako je postavljeno na Yes, nalae pretraivau da cookie moe da se vrati serveru samo u ifrovanom obliku. Ova mogunost se koristi kod aplikacija za elektronsko poslovanje u bankovnim transakcijama i drugim aplikacijama koje zahtevaju zatitu informacija.

6.5 Statiki Web dokumenti


Osnova Web-a jeste prenos Web stranica od servera do klijenta. U svom najjednostavnijem obliku, Web stranice su statike, tj. datoteke smetene na nekom serveru koje ekaju da budu zatraene i koje se, bez bilo kakvih izmena, dostavljaju klijentu. Posmatrano na ovaj nain, i za sadraje kakvi su video i audio se moe rei da predstavljaju statike Web stranice jer se preuzimaju kao datoteke. HTML Web stranice se piu u jeziku koji se zove HTML (HyperText Markap Language hipertekstualni markerski jezik). Pomou HTML-a projektant (dizajner) Web stranica moe da kreira Web stranice koje sadre tekst, grafiku i hiperveze ka drugim Web stranicama. Pojam markap language (markerski jezik) znai da HTML slui za opis naina na koji su dokumenti formatirani, odnosno kako e biti prikazani u Web pretraivau. HTML definie skup komandi za formatiranje koje, ugraene u prvobitni tekst dokumenta, daju uputstva za prikazivanje sadraja dokumenta. Komande se nazivaju oznakama ili tagovima (od eng. tag) i uokvirene su znakovima manje od i vee od. Neki tagovi se javljaju u parovima, a odnose se na sve stavke koje se nalaze izmeu uparenih oznaka. Na primer, u HTML-u, <b> znai poetak, a </b> kraj teksta napisanog masnim slovima. Svaka Web stranica se sastoji iz dva dela: zaglavlje i telo. Oba ova dela uokvirena su tagovima <html> i </html>. Zaglavlje poinje tagom <head>, a zavrava se tagom </head>, dok telo poinje tagom <body> i zavrava se tagom </body>. Tekst unutar taga se naziva direktivom. Veina HTML tagova ima identian format; koriste <neto> da oznae poetak neega i </neto> da oznae njegov kraj. Veina pretraivaa poseduje opciju, obino nazvanu View Source. Izborom ove opcije, prikazuje se izvorna verzija tekue HTML stranice, umesto njenog formatiranog izgleda. Tagovi se mogu pisati bilo malim bilo velikim slovima. Tako, <head> i <HEAD> znae isto. Formatiranje samog HTML dokumenta je irelevantno. HTML parser (deo pretraivaa koji interpretira HTML) ignorie dodatne blanko znake (razmake) i prelaske u novi red. To znai da se razmaci mogu slobodno koristiti kako bi se HTML dokument uinio itljivijim. Meutim, prazne linije, s obzirom na to da se ignoriu, ne mogu se koristiti za razdvajanje paragrafa, ve se za tu namenu moraju koristiti posebni tagovi. Pojedini tagovi imaju parametre, koji se nazivaju atributima. Na primer, <img src=abc alt=slika> je tag, <img>, sa parametrima src i alt. Vrednost parametra src je postavljena na abc, a parametra alt na slika. Za svaki tag, postoji definisani skup dozvoljenih parametara. S obzirom na to da su parametri imenovani, redosled navoenja parametara u tagu nije od znaaja. Za pisanje specijalnih karaktera (koji ne pripadaju ASCII skupu karaktera), u HTML se koristi posebna sintaksa. Specijalni znak poinje znakom &, zavrava se znakom ;. Na primer, &nbsp; oznaava blanko znak, &egrave; oznaava , a &egrave; . Za predstavljanje znakova <, > i &, koji imaju posebno znaenje u HTML-u, koristi se: &lt, &gt i &amp, respektivno. Glavna stavka u zaglavlju HTML dokumenta je naslov, omeen tagovima <title> i </title>. Naslov se ne prikazuju na stranici, mada se kod nekih pretraivaa prikazuje kao naslov prozora stranice. U tabeli sa Sl. 6-8 navedeni su tagovi definisani HTML jezikom. Za ispisivanje naslova koristi se tag <h n>, gde je n ceo iz opsega 1 - 6. Tako, tag <h1> oznaava glavni naslov, a <h6> naslov namanje vanosti. Oblik u kojem e naslovi biti prikazani, shodno nihovom nivou, zavisi od pretraivaa. Tipino, tekst naslova vieg nivoa (sa manjom brojnom vrednou) ispisuju se veim i teim fontom. Takoe, pretraiva moe da koristi razliite boje za prikaz naslova razliitih nivo. Obino, naslovi oznaeni tagom <h1> ispisuje se veim i masnim slovima i sa barem jednom praznom linijom iznad i ispod naslova. Naslovi omeeni tagom <h2> ispisuju se manim fontom sa manjim razmakom iznad i ispod teksta naslova, itd. Tagovi <b> i <i> se koriste za oznaavanje teksta koji treba ispisati masnim (bold) i iskoenim (italic) slovima, respektivno.

155

Tag <html> ... </html> <head> ... </head> <title> ... </title> <body> ... </body> <h n> ... </h n> <b> ... </b> <i> ... </i> <center> ... </center> <ul> ... </ul> <ol> ... </ol> <il> ... </il> <br> <p> <hr> <img src = ...> <a href=...> ... </a>

Opis Deklarie da je Web stranica pisana u HTML-u Omeuje zaglavlje stranice Definie naslov stranice (ne prikazuje se na stranici) Omeuje telo stranice Omeuje naslov nivoa n Postavlja ... u bold Postavlja ... u italik Horizontalno centrira ... na stranici Omeuje neureenu listu Omeuje ureenu listu Omeuje jednu stavku ureene liste Umee novi red (prelom linije) Zapoinje novi paragraf Umee horizonalnu liniju po celoj duini stranice Prikazuje sliku Definie hipervezu

Sl. 6-8 Spisak najznaajnijih HTML tagova.

HTML prua vie razliitih naina za kreiranje listi, ukljuujui i ugnjedene liste. Liste se zapoinju tagom <ul> ili <ol>, a tag <il> se, u oba sluaja, koristi za oznaavanje poetka stavki u listi. Tag <ul> oznaava poetak nenumerisane liste. Pojedinane stavke ovakve liste (omeene tagovima <il> i </il>) prikazuju se sa znakom na poetku. Za numerisane liste (omeene tagom <ol>), umesto simbolom , stavke se prilikom ispisivanja u pretraivau oznaavaju rednim brojevima. Tagovi <br>, <p> i <hr> se koriste za ragranienje delova teksta. Tag <br> lomi liniju teksta (prelazak u novi red). Tag <p> oznaava poetak novog paragrafa, to moe znaiti umetanje jedne prazne linije ili uvlaenje prve linije novog paragrafa. Konano, tag <hr> prekida tekuu liniju teksta i u novoj liniji crta horizontalnu liniju celom duinom stranice. Osim teksta, Web stranice pisane u HTML-u mogu sadrati i slike. Za umetanje slika na tekuu poziciju ne stranici koristi se tag <img>. Ovaj tag moe imati vie parametara. Parametar src sadri URL slike. HTML ne propisuje dozvoljene grafike formate slika. U praksi, svi pretraivai podravaju grafike formate GIF i JPEG. Stranica moe sadrati i sliku u nekom drugom formatu (npr. BMP), da li e takva slika biti i prikazana u pretraivau zavisi od sposobnosti pretraivaa da barata konkretnim formatom. Parametar taga <img>, align, definie poravnanje slike u odnosu na tekst (top, middle, bottom). Parametar alt omoguava da se umesto slike moe prikazati tekst, ukoliko korisnik zabrani pretraivau da prikazuje slike. Konano, parametar ismap, ukazuje da se radi o aktivnoj slici, tj. slici mapi. Za oznaavanje hiperveza koristi se tagovi <a> i </a>. Slino tagu <img>, tag <a> moe sadrati vie parametara, kao to su href (za URL) i name (za ime hiperveze). Tekst uokviren tagovima <a> i </a> se prikazuje, a klikom na tekst pretraiva prelazi na novu stranicu iji je URL naveden u parametru href. Takoe, dozvoljeno je umesto teksta navesti sliku (tag <img>). U tom sluaju, hiperveza se aktivira klikom na sliku. Na primer, razmotrimo sledei fragment HTML teksta: <a href="http://www.nasa.gov"> NASA's home page </a> koji se u pretraivau prikazuje kao: NASA's home page Ako korisnik klikne na ovaj tekst, pretraiva e pribaviti i prikazati stranicu iji je URL http://www.nasa.gov. U sledeem primeru: <a href="http://www.nasa.gov"> <img src="shuttle.gif" alt="NASA"> </a> na stranici e biti prikazana slika (npr. slika spejs atla). Klik na ovu sliku imae isti efekat kao klik na podvueni tekst iz prethodnog primera. Ukoliko korisnik zabrani prikazivanje slika u pretraivau, na mestu na stranici, gde bi inae bila prikazana slika, bie ispisan tekst NASA. Parametar name tag <a> se koristi za hiperveze koje ukazuju na pojedine sekcije same stranice. Na primer, na poetku mnogih Web stranica nalazi se sadraj stranice (slino sadraju knjige). Klikom na stavku iz sadraja, korisnik ima mogunost da se brzo pozicionira na odgovarajuu sekciju stranice.

156

HTML je jezik koji evoluira. Starije verzije HTML-a, 1.0 i 2.0, nisu predviale tabele. Podrka za tabele uvedena je u veziji HTML 3.0. HTML tabela se sastoji iz jedne ili vie vrsta od kojih svaka sadri jednu ili vie elija. elije mogu sadrati tekst, slike, ikone, fotografije, pa ak i cele tabele. elije se mogu spajati u vee elije koje zauzimaju vie kolona i/ili vrsta. Iako autor stranice ima mogunost izvesne kontrole nad izgledom tabele (definie poravnanje sadraja elija, stil okvira tabele, margine teksta u eliji), konani izgled tabele zavisi od naina na koji pretraiva interpretira HTML opis tabele. Na Sl. 6-9(a) je dat primer HTML-a koji ilustruje osnovne karakteristike HTML tabela, a na Sl. 6-9(b) odgovarajui prikaz u pretraivau. Kao to se moe videti celokupna tabela je omeena tagovima <table> i </table>. Tag <caption> sadri tekst naslova tabele. Svaka vrsta poinje tagom <tr>, dok su pojedinane elije oznaene tagom <th> ili <td>. elije oznaene tagom <th> (Table Header) odgovaraju nslovnim elijama kolona, dok one oznane tagom <td> (TableData) predstavljaju unutranje elije tabele, tj. one koje sadre podatke. Prilikom kreiranja tabela dozvoljeno je koristiti brojne atribute, kako bi se definisalo horizonalno i vertikalno poravnanje elija, poravnanje unutar elije, nain crtanja okvira, grupisanje elija itd.
<html> <head><title> Primer stranice sa tabelom </title></head> <body> <table border=1 rules=all> <caption> Razlike izmedju verzija HTML-a </caption> <col align = left> <col align = center> <col align = center> <col align = center> <col align = center> <tr><th>Stavka<th>HTML 1.0<th>HTML 2.0<th>HTML 3.0 <th>HTML 4.0</tr> <tr><th>Hiperveze <td> x <td> x <td> x <td> x </tr> <tr><th>Slike <td> x <td> x <td> x <td> x </tr> <tr><th>Liste <td> x <td> x <td> x <td> x </tr> <tr><th>Aktivne mape i slike<td>&nbsp<td>x<td>x<td>x</tr> <tr><th>Forme<td> &nbsp <td> x <td> x <td> x </tr> <tr><th>Formule<td> &nbsp <td> &nbsp <td> x <td> x </tr> <tr><th>Tulbarovi<td> &nbsp <td>&nbsp<td> x <td> x </tr> <tr><th>Tabele<td>&nbsp<td>&nbsp<td>x<td>x</tr> <tr><th>Ugradnja objekata<td>&nbsp<td>&nbsp<td>&nbsp<td>x </tr> <tr><th>Skripte<td>&nbsp<td>&nbsp<td>&nbsp<td>x</tr> </table> </body> </html>

(a) Sl. 6-9 (a) HTML tabela; (b) prikaz tabele.

(b)

U verziji HTML 4.0 uvedene u dodatne mogunosti, kao to su podrka za olakano korienje Web stranica osobama sa hendikepom, ugradnja objekata (optenje taga <img> tako da i druge vrste objekata mogu biti sadrani na stranici), podrka za skript jezike (koja omoguava kreiranje dinamikog sadraja stranice) i druge. U sluajevima kada je Web sajt sloen i sadri veliki broj stranica koje kreiraju razliiti autori koji rade za istu kompaniju, poeljno je da postoji nain za unifikaciju izgleda (stila) razliitih stranica. Ovaj problem se moe reiti korienjem style sheet-ova. Stranice koje se oslanjaju na pridrueni style sheet ne moraju vie da sadre iskljuivo tzv. fizike stilove (kao to su npr. <b> za bold ili <i> za italic). Umesto toga, autori koriste logike stilove definisane u style sheet-u; npr. <nr> (za normalan tekst), <em> (za naglaen tekst), <strong> (za jako naglaen tekst). Nain prevoenja logikih stilova definisan je u style sheet-u koji se referencira na poetku svake stranice. Na ovaj nain, sve stranice imae identian stil, a da bi se promenio stil svih stranica dovoljno je promeniti definiciju stila u style sheet-u. Na primer, u style sheet-u moe biti definisano da se logiki stil <strong> prikazuje u plavoj boji u italic fontu veliine 14-point-a. Ako je potrebo promeniti stil tako da se tekst oznaen sa <strong> prikazuje u ruiastoj boji, bold fontom veliine 18, dovoljno je izmeniti samo jednu definiciju u style sheet-u i automatski, promena e biti vidljiva na svim stranicama, svuda tamo gde se koristi ovaj stil.

157

Forme HTML 1.0 je omoguavo samo jednosmernu komunikaciju. Korisnik je mogao da dobije traenu stranicu od servera, ali je teko mogao da vrati nazad povratnu informaciju. Kako je sve vei broj komercijalnih organizacija poinjalo da korisni Web, tako su rasli zahtevi za dvosmernim saobraajem. Na primer, javila se potreba za popunjavanjem narudbenica preko Web-a, registracijom korisnika, postavljanjem upita za predraivanje baze podataka itd. Ovi i slini zahtevi doveli su do uvoenja formi, ve u verziji HTML 2.0. Forme sadre box polja (ili dugmad) koja korisnik moe da popuni traenim podacima ili uini izbor izmeu vie ponuenih opcija i unetu informaciju vrati vlasniku stranice. Za ovu namenu koristi se tag <input>. Ovaj tag poseduje vei broj parametara uz pomo kojih se regulie veliina, priroda i upotreba polja. Nejee se koriste polja za unos teksta, kvadrati za tikliranje, aktivne mape i dugme Submit. Na Sl. 6-10(a) je dat primer HTML koda koji ilustruje osnovne mogunosti formi. Odgovarajui prikaz u pretraivau dat je na Sl. 6-10(b). Forma je uokvirena tagovima <form> i </form>. Obuhvaeni tekst, koji nije deo nekog taga, se prikazuje kao i takst sadran u telu stranice. Pri tome, dozvoljeno je korienje svih uobiajenih tagova (npr. <b>). Forma sa Sl. 6-10(a) sadri tri vrste <input> box polja: polja za unos teksta, kvadrate za tikliranje i nekoliko radio dugmadi. Prvo polje u formi definie polje za unos teksta veliine (size) 46 karaktera predvieno za upis imena korisnika. Uneti string se pamti u promenljivoj kupac radi kasnije obrade. Tag <p> nalae pretraivau da tekst i box polja koja slede prikae u novoj linij. Uz pomo tag <p> i slinih, autor forme moe da kontrolie raspored polja i teksta na formi.
<html> <head><title> FORMA ZA NARUCIVANJE KNJIZARE CENTAR</title></head> <body> <h1> Forma za narucivanje knjiga </h1> <form ACTION="http://www.centar-knjiga.com/cgi-bin/narudzba" method=POST> <p> Ime <input name="kupac" size=46></p> <p> Ulica<input name="ulica" size=20> Mesto <input name="mesto" size=14></p> <p> Br. kreditne kartice <input name="cardno" size=10> Istice <input name="istice" size=4> MASTER <input name="cc" type=radio value="mastercard"> VISA <input name="cc" type=radio value="visacard"></p> <p>Narucujem knjigu <input name="knjiga" size=46></p> <p>Povez Tvrdi <input name="povez" type=radio value="tvrdi"> Meki <input name="povez" type=radio value="meki"> Dostava preko brze poste <input name="express" type=checkbox></p> <p><input type=submit value="narucivanje"></p> Hvala na poverenju. </form> </body> </html>

(a)

(b) Sl. 6-10 (a) HTML kod forme; (b) prikaz forme

Sledea linija forme definie polja za unos adrese i mesta stanovanja kupca. Prvo polje je veliine 40, a drugo 14 karaktera. Naredna linija predviena je za unos podataka o kreditnoj kartici koju kupac koristi za plaanje. Za broj kartice i datum kada istie vaenje kartice koriste se polja za unos teksta, dok se tip kartice bira pomou novog tipa polja, tzv. radio dugmeta. Radio dugmad se koriste kada treba obaviti izbor izmeu dve ili vie alternativnih opcija. U pretraivau, radio dugme se prikazuju na nain koji omoguava korisniku da klikom na dugme moe da izabere ili poniti izbor odgovarajue opcije. Klik na jedno dugme iskljuuje sva ostala iz iste grupe. Radio dugmad se koriste i za izbor tipa poveza. Sva radio dugmad sa istim imenom pripadaju istoj grupi. Tako, sva radio dugmad za izbor tipa kreditne kartce imaju ime cc, a ona za tip poveza ime povez. Parametar

158

value (vrednost) se koristi za indikaciju koje radio dugme je izabrano. Na primer, zavisno od toga koji tip kreditne kartice je izabran, promenljiva cc dobie jednu od dve vrednosti mastercard ili visacard. Posle grupe radio dugmadi za izbor poveza, sledi opcija za isporuku brzom potom, predstavljena tzv. kvadratom za tikliranje (checkbox). Kvadrat za tikliranje moe biti ukljuen ili iskljuen. Za razliku od radio dugadi gde samo jedno dugme iz grupe moe biti izabrano, svaki kvadrat za tikliranje se postavljaju nezavisno od ostlih. Polje za unos teksta, radio dugme i kvadrat za tikliranje su tri tipa taga <input>. Tip se navodi kao vrednost parametra type, npr. type=radio ili type=checkbox. Polje za unos teksta je podrazumevani tip i zbog toga nije nepohodo navoditi parametar type. Postoje jo dva tipa taga <input>, tipovi password i textarea. Tip password, koji se obino koristi za unos lozinke, identian je polju za unost teksta, osim to se ne ispisuju karakteri koji se kucaju, ve se svaki uneti karakter predstavlja istim znakom, npr. *. Tip textarea je takoe varijanta polja za unos teksta, koja, za razliku od osnovnog tipa moe sadrati vie linija teksta. Poslednje <input> polje na formi sa slike je Submit dugme sa natpisom narucivanje. Klikom na ovo dugme, informacije unete na formu se alju nazad na server od kojeg je Web stranica dobijena. Submit dugme se definie vrednou submit parametra type. Vrednost parametra value predstavlja tekst koji se prikazuje kao natpis dugmeta. Kada korisnik klikne na Submit dugme, pretraiva pakuje informacije prikuljene sa forme u jednu dugaku liniju i alje je serveru na obradu. Znak & se koristi za razdvajanje polja, a znak + predstavlja razmak. Na primer, za formu sa slike, linija koja se alje serveru moe biti oblika:
kupac=Petar+Petrovic&ulica=Beogradska+14&mesto=Nis&cardno=1234567890&istice=9/07&cc =mastercard&povez=tvrdi&express=on

Na serveru je da protumai dobijeni string i preduzme odgovarajue akcije. XML i XSL HTML, sa ili bez formi, ne bavi se struktuiranjem podataka na Web stranici niti razdvaja sadraj od formatiranja. Sa pojavom naprednih Web aplikacija, kao to su aplikacije za elektronsku trgovinu (e-commerce), javila se potreba za struktuiranjem Web stranica i jasnim razdvajanjem sadraja od naina prikazivanja (formatiranja). Na primer, zamislimo program koji pretrauje Web u potrazi za najjeftinijom knjigom ili CDom. Jedan takav program bi morao da analizira veliki broj Web stranica raznih sajtova za elektronsku trgovinu i da iz svake izdvoji naslove i cene knjiga ili CD-ova. Ako su Web stranice napisane u HTML-u, program e veoma teko moi da zakljui gde se na stranici nalazi traena informacija. Iz ovog i slinih razloga, organizacija W3C, koja se bavi razvojem Web-a i standardizacijom protokola za Web, razvila je poboljanje HTML-a koje omoguava struktuiranje Web stranice na nain koji olakava automatsku obradu njenog sadraja. Konkretno, uvedena su dva nova jezika. Prvi, XML (eXtesible Markup Language) opisuje Web sadraj na struktuirani nain, dok drugi, XSL (eXtensible Style Language) opisuje formatiranje Web stranice nezavisno od njenog sadraja. Budui da se radi o obimnim i sloenim jezicima, u nastavku e biti izloena samo njihova osnovna ideja.
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="book_list.xsl"?> <book_list> <book> <title> Computer Networks, 4/e </title> <author> Andrew S. Tanenbaum </author> <year> 2001 </year> </book> <book> <title> Internetworking with TCP/IP, Vol I</title> <author> Douglas E. Comer </author> <year> 2000 </year> </book> <book> <title> Data Communications and Networking</title> <author> Behrouz A. Forouzan, 2/e </author> <year> 2001 </year> </book> </book_list> Sl. 6-11 Primer Web stranice u XML-u.

159

Razmotrimo XML dokument sa Sl. 6-11. Dokument opisuje strukturu nazvanu book_list, koja predstavlja spisak knjiga. Za svaku knjigu u strukturi postoje tri polja: naslov (title), autor (author) i godina izdavanja (year). Napomenimo da XML omoguava kreiranje mnogo sloenijih struktura od one prikazane na Sl. 6-11. Na primer, dozvoljeno je da struktura sadri viestruka polja (npr. vie od jednog autora knjige), opciona polja (npr. naslov prateeg CD-ROM-a), alternativna polja (npr. URL knjiare, ako knjiga nije rasprodata ili URL sajta za aukcijsku prodaju, ako je knjiga rasprodata). S obzirom na to da XML tagovi ukazuju na smisao informacije koje sadre, XML dokument se moe lako pretraivati, npr. da bi se pronale sve knjige datog autora. U primeru sa Sl. 6-11, sadraj svakog od tri polja, autor, naslov i godina, se tretira kao nedeljiva informacija. Meutim, ako je potrebno, recimo radi preciznije pretrage, polja je dozvoljeno razloiti na podpolja. Na primer, polje za ime autora, se moe podeliti na dva podpolja, jedno za ime a drugo za prezime autora:
<author> <first_name> Andrew </first_name> <last_name> Tanenbaum </last_name> </author>

Uvedena podela polja author omoguava pretraivanje samo po imenu ili samo po prezimenu autora. U optem sluaju dubina podele moe biti proizvoljna. Dokument sa Sl. 6-11 sadri spisak od tri knjige. Meutim, sam dokument na govori nita o tome kako jednu ovakvu Web stranicu treba prikazati u pretraivau. Da bi se definisao nain formatiranja dokumenta, neophodan je jo jedan fajl, book_list.xsl, napisan u jeziku XSL, koji e objasniti pretraivau kako da prikae podatke iz XML dokumenta. Na Sl. 6-12 je prikazan primer XSL fajla za formatiranje XML dokumenta sa Sl. 6-11. Nakon neophodnih deklaracija, koje izmeu ostalog sadre URL na XSL standarda, slede tagovi <html> i <body>, koji, slino kao kod HTML-a dokumenta, definiu poetak Web stranice. Zatim sledi definicija tabele, koja sadri naslove i tri kolone.
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <body> <table border="2"> <tr> <th> Title </th> <th> Author </th> <th> Year </th> </tr> <xsl:for-each select="book_list/book"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="year"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Sl. 6-12 Primer XSL fajla.

U primeru sa Sl. 6-12, sekcija:


<xsl:for-each select="book_list/book"> <tr> <td><xsl:value-of select=title/></td> <td><xsl:value-of select=author/></td> <td><xsl:value-of select=year/></td> </tr> </xsl:for-each>

160

je analogna for naredbi iz C-a, gde prva linija odgovara zaglavlju, pet unutranjih linija telu, a poslednja oznaci za kraj for petlje. Kada pretraiva, koji interpretira dati XSL fajl, on prolazi jedanput kroz petlju za svaku knjigu iz pridruenog XML dokumenta i u svakom prolasku generie pet linija oblika: <tr> naslov, autor, godina </tr>. Drugim reima, pretraiva generie HTML tabelu popunjenu podacima o svim knjigama iz XML dokumenta. Krajnji rezultat je isti kao da se prikazuje HTML stranica koja sadri tabelu popunjenu podacima o tri knjige. Meutim, XML/XSL predstavlja daleko fleksibilnije reenje. Na primer, ako je potrebno u spisak uvrstiti nove knjige, dovoljno je u XML dokument dopisati nova <book> polja; XSL ostaje neizmenjen. (U HTML varijanti, bilo bi neophodno proiriti definiciju tabele novim vrstama). S druge strane, ako treba promeniti nain prikazivanja potrebno je modifikovati XSL fajl, ali ne i XML dokument. Drugo, program koji na Web stranici trai informacije o nekoj knjizi, analizira XML dokument. S obzirom na to da XML dokument sadri tagove koji ukazuju na smisao podataka i nije optereen tagovima za formatiranje, njega je mnogo jednostavnije analizirati od odgovarajueg HTML dokumenta. Treba napomenuti da iako XSL fajl sadri neku vrstu programskih konstrukcija, Web stranice napisane u XML i XSL su i dalje statike. Naima, kao i HTML, XSL daje samo instrukcije Web pretraivau kako da prikae stranicu. Naravno, upotreba XML/XSL-a podrazumeva da je pretraiva u stanju da interpretira XML i XSL, to je danas sluaj sa gotovo svim pretraivaima.

6.6 Dinamiki i aktivni Web dokumenti


Model Web-a opisan u prethodnim sekcijama podrazumeva da klijent alje serveru ime fajla, a server odgovara slanjem klijentu sadraja traenog fajla. U poetnom periodu razvoja Web-a celokupan sadraj dostupan na Web-u bio je statiki (sadran u fajlovima koji se bez bilo kakve modifikacije transportuju do klijenta). Meutim, u novije vreme, sadraj koji se moe preuzeti sa Web-a postaje u sve veoj meri dinamiki, tj. ne postoji u unapred definisanom obliku, ve se kreira na zahtev. Generisanje sadraja Web stranica moe se obaviti bilo na strani servera bilo na strani klijenta. U prvom sluaju, tzv. dinamiki dokumenti, Web server, po prijemu zahteva, pokree odgovarajui aplikacioni program koji kreira dinamiki dokument, a klijentu vraa izlaz programa (Sl. 6-13(a)). Drugim reima, kao odgovor na svaki zahtev klijenta, na strani severa se kreira nova verzija HTML dokumenta. Krajnje jednostavan primer dinamikog dokumenta je preuzimanje tekueg vremena i datuma od servera. Vreme i datum su primer dinamike (promenljive) informacije koja se menja iz momenta u moment. Na primer, klijent moe da zahteva od servera da izvri program koji ita sistemsko vreme serverskog raunara. Program konvertuje informaciju o vremenu u tekst, formatira tekst pomou HTML tagova i generisani HTML dokument predaje Web serveru koji ga vraa nazad klijentu.
1. Klijent alje zahtev serveru 1. Klijent alje zahtev serveru

2. Na strani servera se izvrava program koji kreira dokument


Program

2. Server vraa klijentu kopiju programa

Dokument

Klijent

Server

3. Server vraa klijentu kreirani dokument

3. Program se izvrava na strani klijenta i kreira dokument.

(a) Sl. 6-13 (a) dinamiki dokument; (b) aktivni dokument.

(b)

161

U drugom sluaju, tzv. aktivni dokumenti, Web stranica osim statikog sadraja (HTML, slike i sl.) sadri i program koji se nakon uitavanja stranice izvrava na strani klijenta (u pretraivau). Na primer, zamislimo da elimo da kreiramo Web stranicu koja sadri animiranu grafiku ili interaktivni grafiki interfejs. S obzirom na to da HTML regulie samo prikaz sadraja stranice na ekranu pretraivaa, neophodan je poseban program koji e kreirati animacije ili omoguiti neku specifinu interakciju sa korisnikom. Takoe, jasno je da se takav jedan program mora izvravati na raunaru klijenta, tj. tamo gde se odvija interakcija sa korisnikom. Uvek kada klijent zahteva aktivni dokument od servera, server alje kopiju dokumenta sa sadranim program koji se po uitavanju izvrava u pretraivau (Sl. 6-13(b)). Dinamiki dokumenti Potreba za generisanjem dinamikih dokumenata na strani servera najlake se moe se sagledati ako razmotrimo korienje HTML formi na ranije opisani nain. Kada korisnik popuni formu i klikne na dugme Submit, pretraiva alje serveru poruku sa sadrajem forme zajedno sa poljima koje je korisnik popunio. Oigledno, ova poruka nije ime fajla koji treba vratiti klijentu, ve se sadraj poruke prosleuje odgovarajuem programu radi procesiranja. Obino, obrada na strani servera podrazumeva pristup bazi podataka (smetenoj na hard disku servera) radi upisa dostavljenih podataka ili itanja zapisa koji odgovaraju dostavljenim podacima i generisanje HTML stranice koja sadri odgovor koji se vraa klijentu. Na primer, poto je na Web stranici neke elektronske prodavnice, korisnik izabrao stavke koje eli da kupi i kliknuo na dugme Submit, podaci uneti na formi se alju serveru gde se pokree program iji je zadatak da kreira HTML stranicu narudbenice, koja e osim naziva i cene izabranih stavki sadrati i ukupnu cenu, PDV, ime i adresu korisnika i sl. Uz to, od programa se oekuje i da podatke o izdatoj narudbi upie u bazu podataka. Na Sl. 6-14 su prikazani koraci koji su potrebni za obradu podataka unetih u HTML formu.

Sl. 6-14 Obrada HTML forme. Korisnik popunjava formu (1). Forma se vraa serveru (2) i predaje CGI-u (3). CGI postavlja upit bazi podataka (4). Iz baze se preuzimaju traeni podaci (5). CGI kreira HTML stranicu (6). Stranica se vraa klijentu (7) i prikazuje u pretraivau (8).

Tradicionalni, i danas ve zastareli nain za procesiranje HTML formi i drugih interaktivnih Web stranica zasnovan je na sistemu koji se zove CGI (Common Gateway Interface - opti interfejs pristupa). CGI predstavlja standardizovani interfejs koji omoguava Web serveru da razgovara sa pozadinskim programima. Po pravilu, pozadinski programi su skripte napisane u jeziku Perl. Drugi uobiajeni nain za generisanje dinamikog sadraja podrazumeva umetanje skripti unutar same HTML stranice. Kada server dobije zahtev za ovakvom stranicom, on izdvaja skript iz stranice i izvrava ga. Primer jezika koji se koristi za pisanje ovakvih skripti je PHP (Hypertext Processor). Da bi PHP mogao da se koristi, server mora da razume PHP jezik (slino kao to pretraiva mora da razume XML da bi bio u stanju da interpretira Web stranicu napisanu u XML-u). Obino, server oekuje da Web stranice koje sadre PHP imaju nastavak .php umesto .html ili .htm. Na Sl. 6-15 je prikazana HTML stranica sa ugraenim jednostavnim PHP skriptom. Osim standardnog HTML-a, stranica sadri jo i PHP skript unutar taga <?php . . . ?> . Efekat ovog skirpta je generisane Web stranice koja sadri opte podatke o klijentu koji je zatraio stranicu. Pretraivai, uz svaki zahtev upuen serveru obino alju i neke dodatne informacije o sebi (tip pretraivaa, jezik, operativni sistem, tip klijentskog raunara, ...), koje se prenose kao vrednost promenljive HTTP_USER_AGENT (deo poruke zahteva). Pretpostavimo da je listing sa Sl. 6-15 smeten u fajlu test.php koji se nalazi na WWW direktorijumu kompanije ABCD. Kada se korisnik obrati URL-u www.abcd.com/test.php, server kompanije ABCD otvara fajl test.php, pronalazi u njemu PHP skript, zamenjuje ga vrednou promenljive HTTP_USER_AGENT iz pristiglog zahteva i tako modifikovanu stranicu vraa klijentu.
<html> <body> <h2>Ovo je sve sta znam o tebi:</h2> <?php echo $HTTP_USER_AGENT?> </body> </html> Sl. 6-15 HTML stranica sa ugraenim PHP-om.

162

PHP je naroito pogodan za procesiranje formi. Razmotrimo primer HTML stranice sa Sl. 6-16(a) koja sadri formu. jedina specifinost ove stranice je sadraj prve linije koja definie da radi obrade podataka unetih u formu i vraenih serveru treba koristiti fajl action.php. Stranica prikazuje dva tekstualna polja, jedno predvieno za unos imena (name) a drugo za unos godine roenja (age) korisnika. Nakon to je korisnik popunio oba polja, klikom na dugme Submit, popunjena stranica (tanije, linija teksta koja sadri unete podatke) se vraa serveru. Server preuzima sadraje polje name i age, a zatim otvara i prolazi kroz fajl action.php (Sl. 6-16(b)) i izvrava svaki PHP skript na koji naie. Pod pretpostavkom da je korisnik u polja name i age upisao Barbara i 24, HTML fajl koji se vraa klijentu imae oblik kao na Sl. 6-16(c).
<html> <body> <form action=action.php method=post> <p>Unesi svoje ime: <input type=text name=name> </p> <p>Koliko imas godina: <input type=text name=age> </p> <input type=submit> </form> </body> </html> (a) <html> <body> <h1> Odgovor:</h1> Zdravo <?php echo $name;?>. Predvidjanje: sledece godine imaces <?php echo $age + 1;?> godina </body> </html> (b) <html> <body> <h1> Odgovor:</h1> Zdravo Barbara. Predvidjanje: sledece godine imaces 25 godina </body> </html> (c) Sl. 6-16 (a) Web stranica sa formom. (b) PHP skript za obradu podataka unetih u formu. (c) Izlaz PHP skripta za ulaze Barbara i 24.

PHP je moan programski jezik, koji se uz to i lako koristi, orijentisan na spregu izmeu Web servera i servera baze podataka. PHP poseduje promenljive, stringove, polja i veinu upravljakih struktura koje sreemo u C-u. PHP je open source i dostupan je za slobodno korienje. Posebno je projektovan za rad sa Apache web serverom (koji je takoe open source). Trea tehnika za dinamiko kreiranje Web stranica je JSP (JavaServer Pages). JSP je slina PHP-u, s tom razlikom to se dinamiki deo stranice pie u programskom jeziku Java, umesto u PHP-u. Stranice koje koriste ovu tehniku obino imaju nastavak .jsp. etvrta tehnika, ASP (Active Server Pages) je Microsoft-ova verzija PHP-a i JSP-a. Za generisane dinamikog sadraja kod ASP se koristi skript jezik Visual Basic Script (ili VB skript). Stranice koje koriste ASP, obino imaju nastavak .asp. Aktivni dokumenti Skript jezici kao to su CGI, PHP, JSP i ASP reavaju problem procesiranja formi i interakcije sa bazama podataka na serveru. Svi oni su u mogunosti da prihvate informacije unete u formu, pretrae informacije u bazi podataka i generiu HTML stranicu sa rezultatima obrade. Meutim, ni jedan od ovih skript jezika nije u stanju da reaguje na klik miem ili da direktno interaguje sa korisnikom koji koristi pretraiva. Za tu namenu, neophodan je program koji e se izvravati u samom pretraivau, na raunaru klijenta umesto na raunaru servera. Web stranica sa pridruenim programom koji se izvrava na strani klijenta naziva se aktivnim dokumentom.

163

Postoje dva naina za kreiranje aktivnih dokumenata. Prvi nain podrazumeva da se program, u obliku binarnog kda, uva na serveru, a da u HTML stranici postoji tag u kome je navedeno ime fajla koji sadri program. Kada HTML interpretator u pretraivau naie na ovakav tag, on najpre preuzima fajl programa od servera, a zatim ga izvrava. Programi ovog tipa najee se piu programskom jeziku Java. Drugi nain je zasnovan na skrip jeziku koji se, slino PHP-u, ugrauje u sam HTML. Meutim, za razliku od PHP skripta koji se izdvaja iz HTML stranice i izvrava na serverskom raunaru, skrip namenjen klijet iz HTML-a izdvaja pretraiva i izvrava ga uz pomo odgovarajueg interpretatora. Najpoznatiji skript jezik za ovu namenu je JavaScript. Java Java je objektno-orijentisan jezik zasnovan na C++. Za razliku od C++, i veine drugih viih programskih jezika, kompajlirani programi pisani u Javi su portabilni, tj. mogu se izvravati na bilo kom raunaru, nezavisno od tipa procesora i operativnog sistema. U terminologiji Jave, kompajlirani program se naziva bajtkdom (bytecode). Bajtkd ne sadri mainske instrukcije za neki konkretan procesor, ve instrukcije koje se izvravaju u interpretatoru za Java bajtkd, tj. u tzv. Java virtuelnoj maini. Bilo koji raunar na kome je instalirana Java virtuelna maina u stanju je da izvrava programe pisane u Javi. U osnovi, bajtkd predstavlja meukd, koji je po sloenosti izmeu Java izvornog kda i mainskog kda. Virtuelna maina izvrava bajtkd tako to u bajtkdu identifikuje pojedinane komande (tzv. metode) i poziva odgovarajue funkcije pisane u mainskom jeziku za ciljnu mainu. Java programi namenjeni za Web nazivaju se apletima. Apleti se uvaju na Web serveru u fajlovima sa nastavkom .class. Aplet se ukljuuje u HTML pomou odgovarajueg taga koji predstavlja instrukciju HTML interpretatoru da od Web servera zatrai .class fajl, naveden u tagu, i prosledi ga virtuelnoj maini gde e aplet biti izvren. Primer jednostavnog apleta je aplet koji reprodukuje audio fajl, kao pozadinsku muziku, za vreme dok je u pretraivau prikazana stranica. Pretpostavimo da je aplet ukljuen u Web stranicu sa URL-om http://www.elfak.ni.ac.yu/ i da je smeten u fajlu bgsound.class, koji se nalazi na URL-u http://www.elfak.ni.ac.yu/java-apps. Tag koji ukljuuje aplet u HTML je sledeeg oblika:
<OBJECT CODEBASE=http://www.elfak.ni.ac.yu/java-apps CLASSID = java:bgsound.class DATA = bgsound.data CODETYPE = audio/MP3></OBJECT>

Tag sadri vie atributa, sledeeg znaenja. Vrednost atributa CLASSID definie ime fajla u kome je smeten aplet. CODEBASE definie server i putanju na kojoj se fajl nalazi. Ime fajla, bgsound.data u kome se uvaju podaci koje aplet treba da procesira navedeno je u atributu DATA. Ovaj fajl sadri podatke tipa audio/MP3, to je navedeno u atributu CODETYPE. Nakon uitavanja, aplet i pratei audio fajl se predaju virtuelnoj maini; aplet se startuje i sadraj audio fajla, u dekodiranom obliku, alje u audio karticu gde se obavlja reprodukcija. Na slian nain, aplet moe sadrati grafiku animaciju ili video. U tom sluaju, kao atributi taga OBJECT navode se dimenzije pravougaone oblasti na ekranu pretraivaa, gde e animacija/video biti prikazani. Java apleti se mogu razumeti i kao fleksibilna zamena za pomone aplikacije i plug_in-ove. Na primer, pretpostavimo da Web stranica sadri sliku u nekom novom grafikom formatu za koji na klijentskom raunaru ne postoji podrka u vidu plug-in-a ili pomone aplikacije i da zbog toga slika ne moe biti prikazana na ekranu pretraivaa. Meutim, ako se za prikazivanje slike koristi aplet, dekoder za novi format moe biti smeten u samom apletu koji se automatski preuzima sa servera prilikom uitavanja stranice u pretraiva. ActiveX kontrole su Microsoft-ov odgovor na Java aplete. ActiveX kontrole se, kao i apleti mogu ugraditi na Web stranicu. ActiveX kontrole su programi kompilirani za Pentium procesore i izvravaju se direktno, bez posredovanja virtuelne maine, kao to je to sluaj kod apleta. Zbog toga je izvrenje ActiveX kontrola znaajno bre od izvravanja apleta, a njihove mogunosti su daleko vee, u smislu korienja raspoloivih softverskih i hardverskih resursa raunara. Kada Internet Explorer u Web stranici primeti pozivanje na ActiveX kontrolu, on je preuzima od servera, verifikuje njen identitet, registruje je na lokalnom raunaru i izvrava. Meutim, pored ograniena da se ActiveX kontrole mogu koristiti samo na Pentium PC raunarima, njihovo korienje moe biti rizino u pogledu sigurnosti. JavaScript Slina funkcionalnost kao sa Java apletima se moe dobiti i korienjem JavaScript jezika, s tom razlikom to je, slino PHP-u, JavaScript skript jezik koji se u izvornom obliku ugrauje u HTML stranicu. JavaScript program se smeta u poseban HTML tag, <script>. Kada HTML interpretator naie na tag <script> on poziva JavaScript interpretator koji izvrava sadrani skript. Uprkos slinom imenu, JavaScript, kao jezik, nema direktne veze sa Javom. Slino drugim skript jezicima, JavaScript sadri programske konstrukcije veoma visokog nivoa. Na primer, u jednoj liniji JavaScript programa

164

mogue je prikazati dijalog za unos teksta, ekati da tekst bude unesen i smestiti uneti tekst u neku promenljivu. Zahvaljujui ovakvim i slinim mogunostima, JavaScript je pogodan za lako projektovanje interaktivnih Web stranica. Takoe, JavaScript poseduje mnoge osobine viih programskih jezika, kao to su tipovi podataka, aritmetiki i logiki operatori, petlje (for(), while()), funkcije itd. Kao primer programa u JavaScript jeziku, razmotrimo listing Web stranice sa Sl. 6-17. Slino primeru sa Sl. 6-16, stranica sadri formu za unos imena i godina korisnika, a po unosu traenih podataka predvia koliko e godina osoba imati sledee godine. Sekcija <body> je gotovo identina kao u primeru za PHP. Glavna razlika je u deklaraciji Submit dugmeta i naredbe dodele sadrane u ovoj deklaraciji. Ova naredba dodele kazuje pretraivau da kao odgovor na klik dugmeta (dogaaj onclick) treba izvriti JavaScript funkciju response i kao parametar preneti joj formu.
<html> <head> <script language="javascript" type="text/javascript"> function response(test_form){ var person = test_form.name.value; var years = eval(test_form.age.value) + 1; document.open(); document.writeln("<html><body>"); document.writeln("Zdravo" + person + ".<br>"); document.writeln("Predvidjanje: sledece godine imaces" + years + "."); document.writeln("<body><html>"); document.close(); } </script> </head> <body> <form> Unesi svoje ime: <input type="text" name="name"> <p> Koliko imas godina?: <input type="text" name="age"> <p> <input type=submit value="submit" onclick="response(this.form)"></form> </body> </html> Sl. 6-17 Procesiranje forme pomou JavaScript-a.

Funkcija responese() napisana je u zaglavlju HTML fajla, na mestu koje je inae rezervisano za naslov stranice, boju pozadine i sl. Ova funkcija izdvaja iz forme vrednost polja name i pamti je kao string u promenljivoj person. Takoe, funkcija izdvaja i vrednost polja age, konvertuje je u ceo broj, korienjem funkcije eval(), dodaje 1-cu i rezultat pamti u promenljivu years. Nakon toga, funkcija otvara novi dokument za prikaz rezultata i ispisuje etiri linije teksta korienjem funkcije writeln() i, konano, zatvara dokument. Kreirani dokument je HTML fajl, kao to se lako moe zakljuiti na osnovu HTML tagova koje funkcija response zajedno sa ostalim tekstom upisuje u dokument. Sa take gledita krajnjeg korisnika, krajnji rezultat oba primera (Sl. 6-16 i Sl. 6-17) je isti. Meutim, bitno je razumeti da se naini obrade ova dva primera sutinski razlikuju. U primeru koji koristi PHP, nakon klika na dugme Submit, pretraiva izdvaja informacije iz forme i u vidu stringa ih alje nazad serveru koji je poslao stranicu. Server prepoznaje ime PHP fajla i izvrava ga. PHP skript kreira novu HTML stranicu koja se vraa pretraivau i prikazuje. S druge strane, u primeru koji koristi JavaScript, nakon klika na dugme Submiti, pretraiva interpretira JavaScript funkciju sadranu u samoj stranici. Ne postoji novi kontakt sa serverom, ve se sve e obavlja lokalno, unutar pretraivaa. Zbog toga se rezultat obrade pojavljuju gotovo trenutno, za razliku od primera sa PHP gde postoji izvesno neizbeno kanjenje (reda do nekoliko sekundi) dok rezultujui HTML fajl ne stigne nazad do pretraivaa. Na Sl. 6-18 je ilustrovana razlika izmeu procesiranja skripti na strani klijenta i strani servera. U oba sluaja, korak 1 poinje nakon to je forma uitana u pretraiva. Korak 2 iniciran je klikom na dugme Submit, a nakon toga sledi procesiranje forme, koje u ova dva sluaja tee na razliite naine.

(a) (b) Sl. 6-18 Procesiranje skripta: (a) na strani servera (PHP); (b) na strani klijenta (JavaScript)

165

Ove razlike ne znae da je JavaScript bolji od PHP-a. Namena ova dva skrip jezika je potpuno razliita. PHP (i srodni skript jezici) prevashodno se koriste za interakciju sa udaljenom bazom podataka. JavaScript se koristi za interakciju sa korisnikom na strani klijentskog raunara. Mogue je, i uobiajeno, da Web stranica sadri oba skript jezika, sa raspodeljenim zadacima.
Sl. 6-19 ilustruje razliite tehnike za kreiranje dinamikih i aktivnih Web stranica, o kojima je bilo rei u ovoj sekciji. Dinamike Web stranice se generiu na strani servera, uz pomo razliitih skript jezika (Perl, PHP, JSP ili ASP), a klijent dobija standardnu HTML stranicu koju prosto treba da prikae. Aktivne Web stranice sadre ugraene skriptove (pisane u JavaSctipt jeziku) ili hiperveze na kompletne programe (u vidu Java apleta ili ActiveX kontrola) koji se nakon uitavanja izvravaju na klijentskom raunaru, to omoguava kreiranje interaktivnih korisnikih interfejsa, pa ak i sloena procesiranja grafikih, audio ili video sadraja. Web stranice napisane u XML-u se shodno pridruenom XSL fajlu u samom pretraivau konvertuju u HTML, to takoe predstavlja neku formu aktivnog sadraja. Konano, plug-in-ovi i pomone aplikacije predstavljaju proirenja pretraivaa i koriste se za prikazivanje multimedijalnih sadraja razliitih formata.

Sl. 6-19 Razliliti naini za generisanje i prikazivanje Web sadraja.

6.7 HTTP
HTTP (HyperText Transfer Protokol - protokol za prenos hiperteksta) je protokol koji se koristi za pristup podacima na Web-u. HTTP je klijent-server protokol aplikacionog sloja TCP/IP steka, koji, slino protokolima SMTP ili FTP, za transport poruka koristi TCP. U veini sluajeva, HTTP klijent (pretraiva) zahteva Web stranicu, a HTTP server (Web server) isporuuje njenu kopiju. Meutim, HTTP dozvoljava i prenos od pretraivaa ka serveru (npr. kada korisnik serveru alje formu). HTTP je slian FTP-u, ali je mnogo jednostavniji jer koristi samo jednu TCP konekciju: ne postoji posebna kontrolna konekcija, a izmeu klijenta i servera se prenose samo podaci. Takoe, HTTP je slian SMTP-u, jer sadri koji se prenosi izmeu klijenta i servera lii na SMTP poruku. Uz to, za kontrolu formatiranja poruke se, kao i kod SMTP, koristi MIME. Za razliku od SMTP, HTTP poruke nisu direktno nemenjene ljudima, ve ih itaju i interpretiraju HTTP klijent i HTTP server. Trajanje veze Broj porta HTTP protokola je 80. Web server neprekidno oslukuje TCP port 80, ekajui da neki pretraiva zatrai otvaranje TCP konekcije. S druge strane, pretraiva koji eli da pribavi Web stranicu poznatog URL-a, inicira otvaranje TCP konekcije na portu 80 sa serverom ije je ime navedeno u URL-u. (Naravno, ovome prethodi interakcija sa DNS serverom radi konverzije DNS imena servera u IP adresu). Kada je TCP konekcija uspostavljena, pretraiva alje serveru HTTP zahtev koji sadri putanju i ime traenog fajla. Web server odgovara prenosom fajla, a po zavrenom prenosu zatvara TCP konekciju. Ako uitana Web stranica sadri slike ili neki drugi dodatni sadraj, neophodno je da pretraiva radi prenosa svakog takvog entiteta uspostavi novu TCP konekciju sa serverom. Ovakav nain rada, naziva se neperzistentnom vezom, i karakteristian je za prvobitne verzije HTTP protokola (konkretno verzije 0.9 i 1.0). Neperzistentni nain rada je izrazito neefikasan ako se prenose Web stranice koje osim HTML-a sadre i vei broj slika, ikona ili drugih prateih sadraja (to je sluaj sa veinom Web stranica koje danas viamo na Webu). Uspostavljane TCP konekcije generie dodatni saobraaj u mrei i unosi izvesno kanjenje, to ima za posledicu sporo uitavanje ovakvih Web stranica. Iz tog razloga, godine 1999. uvedena je nova verzija HTTP protokola, verzija 1.1, koja podrava perzistentne (trajne) veze klijenta i servera. Kod perzistentnog naina rada, pretraiva uspostavlja inicijalnu TCP konekciju, zatim alje zahtev i dobija odgovor (kao kod HTTP 1.0). Meutim, nakon slanja odgovora, server ne zatvara TCP konekciju, ve je ostavlja otvorenom dajui priliku pretraivau da preko iste TCP konekcije uputi dodatne zahteve. Tipino, server zatvara TCP konekciju po isteku nekog zadatog vremena nakon poslednje upuenog zahteva. Na ovaj nain se dodatna optereenja usled uspostavljanja i raskidanja TCP konekcije raspodjeljuju na vie HTTP zahteva/odgovora tako da je relativno dodatno optereenje na nivou celokupne Web stranice znaajno manje.

166

HTTP transakcija HTTP je klijent-server protokol kod koga se komunikaciju obavlja nizom transakcija: klijent alje poruku zahteva, a server odgovara porukom odziva. Formati poruka HTTP predvia dva generalna tipa poruka koje se razmenjuju izmeu klijenta i servera (Sl. 6-20). HTTP poruke se sastoje od jedne ili vie linija NVT ASCII teksta. Prva linija zahteva sadri metod ili tip zahteva, a prva linija odgovora informaciju o statusu odgovora. Oba tipa poruke sadre zaglavlje koje od tela poruke odvojeno jednom praznom linijom. Telo poruke je u oba sluaja opciono (ne mora da postoji) i koristi se za prenos sadraja poruke. Poev od verzije 1.1 HTTP podrava MIME kodiranje sadraja (slino kao kod SMTP protokola).

(a) (b) Sl. 6-20 Formati HTTP poruka: (a) format zahteva; (b) format odgovora.

Metodi HTTP je zamiljen optije od prostog protokola za komunikaciju tipa zahtev/odgovor. HTTP predvia vie razliitih tipova zahteva koje klijent moe da uputi serveru. U terminologiji HTTP standarda tipovi zahtevi se zovu metodi. Osim osnovnog metoda GET koji slui za pribavljanje Web stranice, HTTP predvia jo nekoliko dodatnih metoda navedenih u tabeli sa Sl. 6-21.
Metod GET HEAD PUT POST DELETE TRACE CONNECT OPTIONS Opis Zahtev za itanjem Web stranice Zahtev za itanjem zaglavlja Web stranice Zahtev za prenos Web stranice na server Dodavanje sadraja imenovanom resursu (npr. Web stranici) Zahtev za brisanjem Web stranice na serveru Echo poslatog zahteva Rezervisano za neku buduu namenu Upit koji se odnosi na neke parametre servera Sl. 6-21 HTTP metodi.

Metod GET zahteva od servera da poalje traenu stranicu. (Ovde se pod stranicom misli na objekat koji moe biti HTML stranica, slika, Java aplet i sl, tj. na fajl). Stanica koja se vraa ne mora da sadri samo ASCII tekst, a za identifikaciju tip sadraja koristi se MIME, slino kao kod e-mail protokola. Najvei broj HTTP zahteva koji se javljaju na Web-u su upravo tipa GET. Uobiajeni oblik metoda GET je:
GET ime_fajla HTTP /1.1

gde je ime_fajla ime resursa (fajla) koji se trai, a 1.1 verzija HTTP protokola koji se koristi. Metod HEAD trai od servera ne celu stranicu ve samo njeno zaglavlje. Ovaj metod se moe koristiti za pribavljane informacije o datumu i vremenu kada je stranica poslednji put modifikovana, za prikupljanje drugih informacija o stranici i njenom sadraju ili prosto za testiranje validnosti URL-a (da li je na datom URL-u prisutna stranica). Metod PUT je suprotan metodu GET: umesto itanja, ovaj metod upisuje stranicu na Web server. Uz pomo ovog metoda mogue je postaviti Web stranicu na udaljeni Web server. Stranica je sadrana u telu PUT zahteva. Stanica ne mora biti tekst, a njen MIME tip naveden je polju Content-Type zaglavlja zahteva. Takoe, zaglavlje zahteva sadri i podatke za autorizaciju kojima klijent dokazuje da ima pravo da izvri zahtevanu operaciju. Metod POST je slian metodu PUT. Za razliku od PUT, kojim se na server postavlja nova stranica (ili zamenjuje postojea), metod POST se koristi da se u resurs (u najoptijem smislu) koji se nalazi na datom

167

URL-u, upiu (dodaju) novi podaci. Postavljanje nove poruke na nekom Web forumu, primer je ovog tipa operacije. Meutim, u praksi metod POST, kao i PUT, se retko koristi. Metod DELETE slui za brisanje (uklanjanje) stranice sa Web servera. Kao i kod PUT, u zaglavlju zahteva tipa DELETE moraju postojati podaci za autorizaciju. Metod TRACE se koristi za testiranje veze sa serverom. Ovaj metod nalae serveru da nazad vrati primljenu poruku zahteva. TRACE je koristan u sluajevima kada se zahtevi ne obrauju korektno, a klijent eli da sazna da li zahtevi uopte dolaze do servera. Metod CONNECT nema definisanu namenu, ve je rezervisan za neku eventualnu buduu primenu. Metod OPTIONS omoguava klijentu da postavi upit serveru koji se odnosi na izvesne parametre rada servera ili parametre nekog konkretnog fajla. Status U prvoj liniji svaki odgovor kojeg server vraa klijentu sadran je trocifreni kd statusa koji klijentu treba da ukae da li je njegov zahtev uspeno opslue ili nije i ako nije zato nije. Prva cifra statusnog kda slui za podelu odziva na pet glavnih grupa (Sl. 6-22). Kd 1xx (x - proizvoljna cifra) se retko koristi u praksi. K 2xx znai da je zahtev uspeno obraen i da poruka sadri traeni sadraj. Kd 3xx govori klijentu da traenu stranicu potrai na nekom drugom URL-u ili u svom keu (kasnije e biti vie rei o keiranju). Kd 4xx znai da zahtev nije opsluen, bilo zato to je u samom zahtevu uoena greka ili zato to je klijent zatraio nepostojeu stranicu. Konano, kd 5xx obavetava klijenta da na strani servera postoje problemi, bilo zbog greke u programu Web servera bilo zato to je server privremeno preoptereen.
Kd 1xx 2xx 3xx 4xx 5xx Znaenje Informativno Uspeno Preusmeravanje Greka klijenta Greka servera Primer 100 - server pristaje da obradi klijentov zahtev 200 - zahtev je prihvaen i obraen; 204 - odgovor ne sadri telo 301 - stranica je premetena na drugu URL lokaciju; 304 - keirana stranica je jo uvek validna. 403 - zabranjen pristup stranici; 404 - stranica nije pronaena. 500 - interna greka servera; 503 - kasnije pokuaj ponovo Sl. 6-22 Grupe statusnih kdova.

Zaglavlja poruka Nakon linije metoda u poruci zahteva sledi jedna ili vie linija zaglavlja koje sadre dodatne informacije o zahtevu. Za svaku liniju ove sekcije se kae da predstavlja jedno zaglavlje zahteva. Poruka odziva takoe moe sadrati zaglavlja (jedno ili vie). Neka zaglavlja se koriste i kod zahteva i kod odgovora. U tabeli sa Sl. 6-23 navedena su najvanija zaglavlja.
Zaglavlje User-Agent Accept Accept-Charset Accept-Encoding Accept-Language Host Authorization Cookie Date Server Content-Encoding Content-Language Content-Length Content-Type Last-Modified Location Set-Cookie Tip Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev/Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Sadraj Informacija o pretraivau i platformi Tip stranica koje klijent moe da procesira Skup karaktera koji je prihvatljiv za klijenta Kodiranje stranice koje klijent moe da procesira Prirodni jezik koji klijent moe da procesira DNS ime servera Podaci za autorizaciju klijenta Sadri cookie kojeg je server prethodno poslao klijentu Datum i vreme slanja poruke Opte informacije o serveru Nain kodiranja stranice Prirodni jezik korien na stranici Veliina stranice u bajtovima MIME tip stranice Datum i vreme poslednje promene stranice Instrukcija klijentu da zahtev poalje na neko drugo mesto Sadri cookie kojeg server alje klijentu

Sl. 6-23 Zaglavlja HTTP poruka (delimian spisak).

Zaglavlje User-Agent (korisniki agent) omoguava da klijent obavesti servera o tipu pretraivaa koji koristi, operativnom sistemu i drugim osobinama. etiri zaglavlja koja poinju sa Accept obavetavaju servera kakav sadraj je klijent spreman da prihvata. Prvo od ovih zaglavlja (Accept) navodi MIME tip

168

stranice koji klijentov pretraiva moe da obradi (npr. text/html). Drugo (Accept-Charset) definie skup karaktera (npr. ISO-8859-5 ili Unicode-1-1) koji klijent prepoznaje. Tree (Accept-Encoding) definie metod kompresije koji klijent podrava (npr. gzip), a etvrto (Accept-Language) ukazuje na prirodni jezik (npr. Srpski) koji korisnik razume. Ako server ima mogunost izbora stranice (npr. postoji vie varijanti iste stranice), on e izabrati o vratiti klijentu onu koja se uklapa u postavljene zahteve. Ako server nije u mogunosti da udovolji zahtevima klijenta, vratie odgovor sa postavljenim odgovarajuim kodom greke. Zaglavlje Host sadri ime servera, preuzeto iz URL-a. Ovo zaglavlje je obavezno jer se moe desiti da za istu IP adresu budu vezana vie DNS imena. Ispitivanjem sadraja ovog polja, sever proverava da li se zahtev odnosi ba na njega. Zaglavlje Authorization je neophodno za stranice koje su zatiene i za koje je klijent u obavezi da dokae da ima pravo da vidi stranicu. Cookie-ima su posveena dva zaglavlja. Preko zaglavlja Cookie klijent vraa serveru sadraj cookie-a kojeg je ranije poslat klijentu od strane neke maine iz domena servera. Server alje cookie klijentu u obliku sadraja zaglavlja Set-Cookie. Kao to znamo, klijent je u obavezi da zapamti cookie na svoj hard disk, i vrati ga serveru pri svakom narednom obraanju. Zaglavlje Date (datum) se moe koristiti u oba smera i sadri vreme i datum kada je poruka poslata. Slede zaglavlja koja se javljaju iskljuivu u odgovorima koje server alje klijentu. Zaglavlje Server omoguava serveru da saopti svoj identitet klijentu, ako eli. Sledea etiri zaglavlja, koja poinju sa Content- (sadraj) omoguavaju serveru da opie osobine stranice koje alje. (Znaenje ovih zaglavlja je analogno odgovarajuim Accept- zaglavljima). Zaglavlje Last-Modified sadri datum i vreme kada je stranica poslednji put modifikovana. Ovo zaglavlja ima bitnu ulogu u keiranju stranica. Server koristi zaglavlje Location kada eli da obavesti klijenta da bi trebalo da pokua da potrai zahtevanu stranicu na nekom drugom URL-u. Ova mogunost se koristi ako je stranica premetena na drugu lokaciju ili ako vie od jednog URL-a ukazuje na istu stranicu. Na primer, neka internacionala kompanija moe nakon prijema zahteva za njenu glavnu stranicu na .com domenu, da preusmeri klijenta, na osnovu njegove IP adrese, na jednu od svojih nacionalnih ili regionalnih stranicu. Na Sl. 6-24 je prikazan izgled jednog kompletnog HTTP odgovora. Prva linija sadri status odgovora, koji je u ovom sluaju pozitivan. Sledi vei broj zaglavlja, zatim jedna prazna linija i konano sama Web stranica. Zaglavlje ETag sadri jedinstveni identifikator stranice. Ovo zaglavlje se koristi prilikom keiranja stranica.

Sl. 6-24 Primer HTTP odgovora.

6.8 Proksi serveri i keiranje stranica


U dosadanjem izlaganju o Web-u pretpostavljali smo da klijent i server direktno komuniciraju razmenom HTTP poruka preko Interneta. Meutim, u izvesnim sluajevima komunikacija klijent-server ne mora biti direktna ve se moe ostvarivati posredstvom jednog ili vie meu-servera. Dva tipa meu-servera su: firewall i proxy server.

169

Proxy server je posrednik izmeu lokalnih (intranet) korisnika i Web-a (Sl. 6-25) i omoguava optimizaciju kojom se smanjuje ekanje klijenata na pribavljanje zahtevanih Web stranica. Web pretraivai u mrei koja koristi proxy server su konfigurisani tako da svoje HTTP zahteve ne upuuju direktno udaljenim Web serverima ve ih alju lokalnom proxy serveru koji u njihovo ime obavlja zahtevanu transakciju. Kada prvi korisnik u korporaciji pristupi odreenoj Web stranici, proxy mora da pribavi kopiju od servera na kome se stranica nalazi. Proxy ostavlja kopiju u svom keu i vraa traenu stranicu kao odgovor na zahtev. Kada sledei put neki korisnik pristupi istoj stranici, proxy uzima podatke iz svog kea i ne alje zahtev preko Interneta. Proxy serveri su bitan deo arhitekture Web-a. Osim to efektivno skrauju vreme pribavljanja Web stranica, proxy serveri znaajno redukuju saobraaj na Internetu i smanjuju optereenje Web servera.

Sl. 6-25 Proksi server.

Koncept proxy servera i keiranja nije ograniena samo na korporacijski intranet, ve se primenjuje i u drugim kontekstima. Na primer, proxy server ne mora biti raunar na lokalnoj mrei, ve moe biti i proces pokrenut na PC raunaru. Takoe, mnogi provajderi internet usluga (ISP) poseduju proxy server sa ciljem da svojim korisnicima ubrzaju pristup Web-u (i u isto vreme smanje protok podataka prema nadreenom ISP-u). esto, postoji hijerarhija proxy servera. Zahtev se najpre alje lokalnom proxy serveru, koji, ako nije u stanju da opslui zahtev, zahtev prosleuje npr. korporacijskom proxy serveru, a ovaj proxy serveru provajdera internet usluga i tako redom sve dok se u nekom keu ne pronae traena stranica. Tek ako stranica ne postoji u keu proxy servera na vrhu hijerarhije, ona se direktno trai od Web servera, a onda prosleuje nazad do pretraivaa koji je uputio zahtev i pri tome pamti u keevima svih posrednih proxy servera.

Sl. 6-26 Hijerarhijsko keiranje sa tri proksija.

HTTP sadri eksplicitnu podrku za proxy servere. Protokol tano odreuje nain na koji proksi obrauje svaki zahtev, kako proksi treba da tumai zaglavlje, kako pretraiva pregovara sa proksijem i kako proksi pregovara sa serverom. Nekoliko HTTP zaglavlja je posebno namenjeno za proksije. Na primer, HTTP omoguava serveru da kontrolie kako proksiji obrauju svaku Web stranicu. Server moe u odgovoru da ukljui zaglavlje Max_Forwards i tako ogranii broj proksija koji obrauju stavku pre nego to se ona isporui pretraivau. Ako server odredi samo jedan, Max_Forewards: 1, na putanji od servera do pretraivaa dozvoljen je samo jedan proksi. Nula znai da je zabranjeno da proksi obrauju stavku. Keiranje Eliminisanjem nepotrebnih prenosa, proxy ke smanjuje i vreme ekanja i mreni saobraaj. Glavni aspekt keiranja jeste privremeno uvanje stranica, a glavno pitanje tie se vremena uvanja stranice, tj. koliko dugo treba stavku uvati u keu. S jedne strane, ako se kopija predugo uva u keu ona moe da zastari, to se deava ako je original u meuvremenu, nakon to je kopija uneta u ke, promenjen. S druge strane, ako se kopija ne uva dovoljno dugo, dolazi do smanjenja efikasnosti keiranja zato to sledei zahtev mora nepotrebno da ide do servera. Pojedine Web stranice su podlone estim promenama (npr. stranica sa rezultatima fudbalskih utakmica), dok druge mogu ostati neizmenjene u duem vremenskom intervalu (npr. stranica posveena Grkoj mitologiji). Takoe, sklonost stranice promenama moe da varira u vremenu (npr. stranica sa rezultatima fudbalskih utakmica se brzom menja samo dok utakmica traja, a onda ostaje neizmenjena do sledeeg kola). Takoe, neke stranice se ni u kom sluaju ne mogu keirati. To je sluaj sa dinamikim Web stranicama koje se generiu na strani servera na osnovu postavljenog upita. HTTP dozvoljava da server kontrolie keiranje na dva naina. Prvi nain se oslanja na informaciju iz zaglavlja odgovora Last-Modified kada odreuje koliko dugo e stranica biti uvana u keu. Ako je stranica koja se upravo stavlja u ke promenjena pre jednog sata, ona e biti uvana u keu jedan sat. Ako je promenjena pre dva

170

meseca, u keu e ostati dva meseca. Iako ovaj pristup esto dobro radi u praksi, on je zasnovan na predvianjima i zato ne garantuje da e pretraivau uvek biti vraena aurna kopija stranice.
GET /page.htm HTTP /1.1 GET /page.htm HTTP /1.1 If-Modified-Since: datum, vreme 1 Pretraiva 4 HTTP /1.1 200 Accepted Content-type: text/html [zahtevana HTML stranica u telu poruke] Proksi server 3 HTTP /1.1 304 Not-modified [prazno telo poruke] 2 Web server

Sl. 6-27 Princip uslovnog GET zahteva.

Drugi pristup eliminie mogunost da pretraiva dobije zastarelu strancu, ali na raun izvesnog poveanja saobraaja i vremena ekanja na pribavljanje stranice. Pristup se oslanja na tzv. uslovni GET zahtev, koji proxy moe da poalje serveru kako bi proverio aurnost keirane stranice. Uslovni GET zahtev je HTTP poruka koja sadri zaglavlje If-Modified-Since (ako je modifikovana posle ...). Procedura je ilustrovana na Sl. 6-27 i odvija se na sledei nain: Pretraiva upuuje standardni GET zahtev proxy-ju (korak 1). Pretpostavimo da proxy u svom keu ima traenu stranicu. Svakoj keiranoj stranici pridruena je informacija o datumu i vremenu kada je stranica keirana. Ova informacija je preuzeta iz polja Last-Modified HTTP poruke kojom je originalna stranica ranije preneta od servera do proxy-ja. Pre nego to pretraivau vrati keiranu stranicu, proxy alje uslovnu GET poruku serveru sa upisanim vremenom poslednje modifikacije keirane kopije u zaglavlju If-Modified-Since (korak 2). Na Sl. 6-27 je pretpostavljeno da stranica nije modifikovana u meuvremenu, tj. od datuma i vremena navedenih u zaglavlju If-Modified-Since. Zbog toga server vraa proxy-ju kratak odgovor sa statusnim kodom 304 (Not modified - nije modifikovana) i bez tela (korak 3). Po prijemu odgovora, proxy vraa keiranu stranicu pretraivau (korak 4). U sluaju da je zahtevana stranica u meuvremenu bila modifikovana, server e vratiti proxy-ju novu kopiju stranice, koju e proxy smestiti u ke (zajedno sa datumom i vremenom iz zaglavlja LastModified) pre nego to je prosledi pretraivau. Dva pristupa za kontrolu vremena keiranja se lako mogu kombinovati. Na primer, prvih T sekundi nakon pribavljanja stranice proxy vraa pretraivaima keiranu kopiju bez postavljanja pitanja serveru. Po isteku T sekundi, proxy koristi uslovnu GET poruku za proveru aurnosti kopije. Jo jedan nain za poboljanje performansi keiranja naziva se proaktivnim keiranjem. Kada proksi pribavi stranicu od servera, on je analizira i izdvaja sadrane hiperveze. Nakon toga, proksi moe da pribavi i smesti u svoj ke stranice na koje ukazuju izdvojene hiperveze, za sluaj da korisnik naknadno zatrai neku od njih. Na ovaj nain mogue je skratiti vreme pristupa za budue zahteve za sluaj da korisnik izabere neki od linkova na upravo uitanoj stranici. Meutim, pribavljajui i stranice koje nikada nee biti potrebne, ova tehnika ne smanjuje ve poveava saobraaj na Internetu.

6.9 Firewall
Danas se na veini lokalnih, korporacijskih mrea koristi isti skup protokola kao i na Internetu (TCP/IP), a takve mree se nazivaju intranetima. Korienje Internet protokola na intranet mrei ima dvojako opravdanje. Prvo, olakan je pristup Web-u od strane raunara povezanih na intranet (lokalni raunari na isti nain komuniciraju meusobno kao i sa udaljenim serverima). Drugo, omogueno je spoljnim Internet korisnicima da pristupaju informacijama i servisima dostupnim na korporacijskim serverima (kao to je korporacijski Web server). Meutim, iz sigurnosnih razloga, spoljnim korisnicima obino nije dozvoljen direktan pristup korporacijskim serverima, ve se ostvaruje posredstvom specijalizovanog server, tzv. firewall ili sigurnosni gateway, koji nadgleda i filtrira mrei saobraaj.

Sl. 6-28 Firewall

Kao to se moe videti sa Sl. 6-28, firewall kontrolie protok informacija u oba smera (kao iz tako i u intranet). Firewall presree i filtrira pakete koji su sa Interneta upueni lokalnim serverima, kao i sve zahteve koji se iz

171

intraneta alju prema Internetu. Filtriranje se obavlja na osnovu izvornih i odredinih IP adresama i brojevima portova sadranim u TCP/UDP paketima ili na bazi nekih drugih kriterijuma. Firewall moe biti konfigurisan tako da prosleuje ka intranetu samo pakete koji su upueni na odreene lokalne IP adrese i/ili samo ako su paketi poslati iz nekog odreenog domena, a da sve ostale ponitava. Takoe, firewall moe da uvede restrikcije koje se odnose na brojeve portova. Na primer, firewall moe biti tako podeen da ponitava sve dolazne TCP pakete sa brojem odredinog porta 20 ili 21 i da na taj nain onemogui pristup bilo kom lokalnom FTP serveru. Sline restrikcije mogu biti uvedene i za pakete koji se iz intraneta alju ka Internetu. Na primer, administrator intraneta moe da konfigurie firwall tako da prema Internetu proputa smo TCP paketa sa odredinim brojem porta 80 i da tako lokalnim korisnicima omogui korienje globalnog Web-a, ali u isto vreme i zabrani pristup ostalim servisima dostupnim na Internetu.

172

2. ELEKTRONSKA POTA (Electronic mail, email)


usluga za razmjenjivanje poruka na raunalima povezanim u Internet - najpopularniji nain asinkrone komunikacije prvi email sustavi koristili su obian protokol za prijenos datoteka s tim da je prvi redak poruke (tj. datoteke) sadravao adresu primatelja neki nedostaci takvog pristupa bili su: o poruke nisu imale svoju unutranju strukturu, pa je njihova obrada bila teka, o slanje poruke grupi ljudi bilo je nezgodno o poiljatelj nije znao da li je njegova poruka stigla do primatelja ili nije o korisniko suelje bilo je loe integrirano sa sistemom za prijenos datoteka, o nije bilo mogue kreirati i poslati poruku koja se sastojala i od teksta, grafike, zvuka... 1982. objavljen je ARPANET-ov prijedlog za email sistem kao RFC 821 (protokol za prijenos) i RFC 822 (format poruke)

2.1 Arhitektura i usluge


email sistem se obino sastoji od dva podsustava: o korisniki (user agents) koji omoguuje slanje i itanje pote o podsustav za slanje poruka (message transfer) koji prenosi poruke od izvora do odredita korisniki podsustavi (agenti) su lokalni programi koji omoguuju interakciju sa email sistemom preko naredbenih redaka, menua ili grafikih suelja podsustavi (agenti) za slanje poruka su obino deamon programi koji se izvravaju u pozadini i prenose email poruke kroz sistem 5 osnovnih funkcija email sustava:
1. 2.

izrada (composition) - proces kreiranja poruka i odgovora na poruke prijenos (transfer) - prenoenje poruka od poiljatelje do primatelja (uspostavljanje veze - sa odreditem ili nekim strojem na putu, slanje poruke, oslobaanje veze) 3. izvjetavanje (reporting) - da li je poruka dostavljena ili nije 4. prikaz (displaying) - da bi se proitale primljene poruke 5. rasporeivanje (disposition) - spremanje, brisanje, prosljeivanje... primljenih poruka

uz osnovne, veina email sustava podrava i dodatne funkcije (npr. automatsko prosljeivanje poruka na drugu adresu, kreiranje razliitih potanskih pretinaca (mailboxes, folders) za uvanje poruka, kreiranje potanskih listi (mailing lists), kreiranje ifriranog emaila, definiranje prioriteta poruka...) kod email sustava razlikuje se omotnica (envelope) i sadraj omotnica ukljuuje unutar sebe poruku i sadri sve informacije koje su prijenosnim agentima potrebne za prijenos poruke, odnosno za usmjeravanje na pravu adresu

poruka unutar omotnice sastoji se od zaglavlja (header) sa kontrolnim podacima za korisnike agente i tijela (body) sa samom porukom

Slika: Usporedba omotnice i sadraja obine i elektronske pote (Tanenbaum, 1996)

2.2 Korisniki podsustav (user agent)


program za: o prikazivanje o slanje poruka o itanje poruka o odgovaranje na poruke i prosljeivanje o upravljanje potanskim sanduiima programi najee koriste izbornike ili ikone kao suelje -> ista funkcionalnost

Slanje maila navode se barem poruka i odredina adresa oblika korisnik@dns_adresa

Slika: primjer poruke pripremljene za slanje u MS Outlook Express programu itanje poruka prikaz poruka s razliitim poljima

Slika: popis pristiglih poruka u MS Outlook Express programu

2.3 Formati poruka

osnovni ASCII email po RFC 822 i multimedijska proirenja za RFC 822

ASCII email po RFC 822 poruka se sastoji od primitivne omotnice, nekoliko polja zaglavlja, praznog retka i tijela poruke; svako polje zaglavlja se sastoji od jednog retka ASCII teksta sa imenom polja, dvotokom i (za veinu polja) vrijednosti glavna polja koja se odnose na prijenos poruka: To: Cc: Bcc: From: Sender: Received: Return-Path: email adresa primaoca email adrese osoba kojima su poslane kopije poruka email adrese osoba kojima su poslane kopije, a ostali primaoci ih ne vide osoba koja je kreirala poruku email adresa poiljaoca kako je poruka putovala od polazine adrese do odredita biljei se staza do poiljaoca

Najea dodatna polja koja koriste e-mail klijenti ili sami korisnici su: Date: Reply-To: Message-Id: In-Reply-To: References: Subject: datum i vrijeme slanja email adresa na koju e se poslati odgovor jedinstveni broj poruke za kasnije referenciranje Message-Id poruke na koju se odgovorilo ostali vani Message-Id naslov poruke

korisnicima je dozvoljeno definirati nova polja za vlastitu upotrebu uz uvjet da njihova imena poinju s X- kako se ne bi zamijenila za slubeno definirana polja Primjer: X-Mailer: polje sadri podatak o email programu koritenom za slanje poruke

Multimedijska proirenja za RFC 822 - MIME (Multipurpose Internet Mail Extensions)

kod RFC 822 problem za poruke koje pisane na jezicima s posebnim znakovima ili koje sadre netekstualne sadraje (slike, zvuk,...) i dalje se koristi RFC 822 format, ali se u tijelo poruke dodaje nova struktura i definiraju se pravila ifriranja za poruke koje nisu ASCII na taj se nain MIME poruke mogu slati koritenjem postojeih mail programa i protokola MIME definira 5 novih zaglavlje poruka:

MIME-Version:

Content-Description: Content-ID: Content-Transfer-Encoding: Content-Type:

govori da je rije o MIME poruci odreene verzije (poruka koja nema to polje smatra se obinom tekstualnom porukom) ACSII string koji govori primatelju to je u poruci slui za identificiranje sadraja nain kodiranja (ifriranja) netekstualnog dijela odreuje tip i podtip tijela poruke, npr. video/mpeg

MIME-Version: - govori korisnikom agentu da je rije o MIME poruci odreene verzije (poruka koja nema to polje smatra se obinom tekstualnom porukom) 2. Content-Description: - ACSII string koji govori primatelju to je u poruci 3. Content-ID: - za identificiranje sadraja 4. Content-Transfer-Encoding: - na koji nain je netekstualni dio ifriran da se moe prenijeti mreom, moe se koristiti 5 shema:
1.

obian ASCII tekst - znakovi koriste 7 bita, a dostavljaju se direktno pomou email protokola (ako reci ne prelaze duinu od 1000 znakova) 8-bitno ifriranje - naruava originalni Internet email protokol, pa mu je potrebno implementirati neka dodatke binarno ifriranje - za slanje binarnih datoteka koje ne potuju ogranienje od 1000 znakova u redu; nepouzdano, bolji nain: base64 ifriranje - grupe od 24 bita razbijene su u etiri 6-bitna dijela i svaki se alje kao ASCII znak; ifra (odreuje se za svaku vrijednost od 0-63) je A za 0, B za 1, ..., nakon velikih slova slijedi 26 malih, zatim 10 brojki i na kraju + za 62 i / za 63; znakovi == i = oznaavaju da zadnja grupa ima samo 8, odnosno 16 bita quoted-printable ifriranje - 7-bitni ASCII kod kojeg su svi znakovi iznad 127 ifrirani kao znak = nakon kojeg slijedi vrijednost znaka kao 2 heksadecimalne znamenke; koristio se za poruke koje su gotovo cijele ACSII osim nekoliko ne-ASCII znakova

5. Content-Type: - odreuje tip i podtip tijela poruke, npr: Content-Type: video/mpeg MIME tipovi i podtipovi koji su bili poetno definirani (u RFC 1521): text/plain text/richtext

image/gif image/jpeg audio/basic video/mpeg application/octet-stream application/postscript message/rfc822 message/partial message/external-body multipart/mixed multipart/alternative multipart/parallel multipart/digest

Text, Image, Audio, Video i Application tipovi se odnose na sam multimedijski sadraj koji se alje porukom, Message navodi kako je jedna poruka ukljuena u drugu (npr. kod prosljeivanja) Multipart opisuje poruku koja se sastoji od vie dijelova pri emu svaki dio ima jasno oznaen poetak i kraj

Na primjer: multipart/alternative za poruku koja je poslana i kao obini tekst i kao HTML tekst multipart/mixed za poruku s tekstom i sa slikom kao dodatkom danas su proireni novim tipovima i podtipovima, na primjer za poruku koja sadri HTML tekst - Content-Type: text/html

2.4. Prijenos poruka


SMTP - Simple Mail Transfer Protocol na Internetu se email dostavlja tako da izvorino raunalo uspostavi TCP vezu sa portom 25 na odredinom raunalu, na tom portu oslukuje email deamon koji raspoznaje SMTP protokol deamon prihvaa dolazee veze i kopira poruke s njih u odgovarajue potanske sanduie ako se poruka ne moe dostaviti, poiljatelju se vraa poruka o pogreki SMTP je jednostavan ASCII protokol: o nakon uspostavljanja TCP veze na portu 25, klijent (raunalo-poiljatelj) eka da server (raunalo-primatelj) prvi pone slati podatke o svom identitetu i da li je spreman primiti email ili ne o ako server nije spreman prihvatiti email, klijent oslobaa vezu; ako je spreman, klijent oglaava od koga je email i za koga o ako primatelj postoji, server daje dozvolu za slanje i klijent alje poruku, a server potvruje njen primitak o ukoliko postoji jo poruka, razmjenjuju se (u oba smjera) i na kraju se veza oslobaa Primjer za komunikaciju (S-sender (primatelj), C-client (poiljatelj)):

2.5. Dostavljanje poruka


POP3 (Post Office Protocol) jednostavan protokol za dohvaanje poruka iz udaljenog mailboxa i njihovo spremanje na lokalno raunalo korisnika kako bi se mogle itati i kasnije razvio se zbog potrebe da PC raunala koja sama ne mogu slati i primati email izvan npr. kompanije mogu komunicirati s email serverom POP3 zapoinje kad korisnik pokrene program za itanje emaila koji putem napr. modemske veze preko ISP uspostavlja TCP vezu na portu 110 sa serverom koji je spremio poruke POP3 ima 3 stanja: 1. autorizacija - korisnike se prijavljuje korisnikim imenom (login) i ifrom (password) 2. transakcija - korisnik prikuplja poruke i oznaava ih za brisanje (opcionalno) 3. auriranje - email poruke se briu sa servera

IMAP (Interactive Mail Access Protocol) sloeniji od POP3 i omoguuje odravanje pote na serveru koritenjem razliitih udaljenih raunala pota se ne kopira sa servera na osobno raunalo jer ih korisnik moe imati vie (raunalo u uredu, kod kue, prijenosno raunalo) ovaj protokol ne podravaju svi ISP niti svi email klijenti

Webmail poruke se itaju i alju putem Web suelja koriste se HTML forme za unos podataka i programi na serveru koji sadraj mailboxa formatiraju i kreiraju HTML stranu za prikaz u pregledniku

Filtriranje poruka mogunost koju imaju dananji korisniki e-mail programi je definiranje filtera sastoje se od uvjeta i akcije i primjenjuju se na dolazee poruke primjer: slanje spam poruka u posebne mape

Podeavali smo mail server na linux-u I poslali mail na njemu.

PRINCIP SIGURNOSTI
TA JE SIGURNOST??? * Sigurnost je proces. Sigurnost nije proizvod, usluga ili procedura, ve skup koji ih sadri uz jo mnogo elemenata i mera koje se stalno sprovode. * Ne postoji apsolutna sigurnost. * Uz razliite metode zatite, treba imati u vidu i ljudski faktor, sa svim slabostima. Treba takoe imati u vidu sledee: kao i u drugim sistemima i oblastima, sigurnosni mehanizmi ili procedure vrlo esto smanjuju udobnost rada ili pogoravaju performanse sistema. Kratkorono gledano, to moe negativno uticati na opte efekte rada; dugorono, ove mere pozitivno utiu na uspeh u radu, to jest, na profit komercijalnih organizacija. To se ogleda i kroz materijalne pokazatelje, i kroz pokazatelje koji nisu direktno materijalni, kao to su rast ili gubitak reputacije tj. ugleda, zavisno od toga da li se deavaju ili ne deavaju incidenti. Sigurnost kao proces zasniva se na etiri osnovna koraka: procena, zatita, otkrivanje i odgovor. U ovom modelu, neki autori koriste izraz planiranje (engl. planning) umesto izraza izraza procenjivanje, i spreavanje ili prevencija (engl. prevention), a ne zatita. 1. Procena (engl. assessment). Procena je priprema za ostale tri komponente. Smatra se posebnom akcijom, zato to je u vezi s pravilima, procedurama, pravnom i drugom regulativom, odreivanjem budeta i drugim upravljakim dunostima, i jo je povezana s tehnikom procenom stanja sigurnosti. Greka u proceni bilo kog od ovih elemenata, moe nakoditi svim operacijama koje slede. 2. Zatita (engl. protection). Zatita, tj. spreavanje ili prevencija, podrazumeva primenu protivmera kako bi se smanjila mogunost ugroavanja sistema. Ukoliko zatita zakae, primenjuje se sledei korak otkrivanje. 3. Otkrivanje (engl. detection). Otkrivanje, ili detekcija predstavlja proces identifikacije upada, tj. povrede sigurnosnih pravila ili incidenata koji se odnose na sigurnost. Neki autori definiu incident kao svaki nezakonit, neovlaen ili neprihvatljiv postupak koji je preduzet, a odnosi se na raunarski sistem ili mreu. 4. Odgovor (engl. response). Odgovor ili reakcija predstavlja proces oporavka, tj. leenja posledica upada. U aktivnosti reakcije spadaju postupci zakrpi i nastavi, ili goni i sudi. Ranije se na prvo mesto stavljalo oporavljanje funkcionalnosti oteenih resursa, kao to je korienje rezervnih kopija podataka za vraanje

sistema u stanje pre izvrenog napada. U novije vreme sve ee se koriste pravna sredstva (sudski proces protiv onoga ko ugroava sigurnost), meu koja spada prethodno prikupljanje dokaza metodama digitalne forenzike pomou kojih se potkrepljuje tuba. Sigurnosni ciljevi ******************************************************************************************** CIA ******************************************************************************************** Poverljivost, celovitost (integritet) i raspoloivost ine takozvano veliko trojstvo sigurnosti. Na engleskom jeziku, skraenica za ova tri termina je CIA (Confidentiality, Integrity, Availability), to se poklapa sa akronimom koji se koristi za najpoznatiju ameriku obavetajnu agenciju. Ovaj koncept predstavlja tri fundamentalna principa informacione sigurnosti. Sve to se odnosi na sigurnost informacija i mehanizme obezbeenja, zatim sve pretnje, ranjivosti i sigurnosni procesi, predmet su procenjivanja prema ova tri (CIA) kriterijuma. * Poverljivost (engl. confidentiality). Koncept poverljivosti obuhvata pokuaje da se sprei namerno ili nenamerno neovlaeno otkrivanje sadraja poruka. Poverljivost se moe izgubiti na mnogo naina, kao to su namerno otkrivanje privatnih podataka u vlasnitvu kompanije ili, recimo, pogrenim definisanjem i sprovoenjem prava pristupa mrei. * Integritet (celovitost, engl. integrity). U okviru sigurnosti informacija, koncept integriteta obezbeuje sledee: * podatke ne smeju menjati neovlaena lica ili procesi * ovlaena lica ili procesi ne smeju obavljati neovlaene promene podataka * podaci su interno i eksterno konsistentni, to znai da su interni podaci meusobno konsistentni u svim potcelinama (delovima), kao i s realnim svetom, tj. spoljnim okruenjem. * Raspoloivost (engl. availability). U okviru sigurnosti informacija, koncept raspoloivosti obezbeuje da odgovarajue osoblje pouzdano i pravovremeno moe da pristupa podacima ili raunarskim resursima. Drugim reima, raspoloivost oznaava da su sistemi podignuti i da rade kao to je predvieno. Osim toga, ovaj koncept garantuje da funkcioniu sigurnosne usluge koje zahtevaju strunjaci za sigurnost. *********************************************************************************************** Pravljenje rezervnih kopija Redovna izrada rezervnih kopija svih sistema je obavezna da bi sistem mogao efikasno da se oporavi posle eventualnog bezbednosnog incidenta.

Lozinke Svaki nalog mora da ima lozinku i ona ne sme da bude jednostavna za pogaanje. Nije bezbedno slati lozinke u tekstualnom obliku preko Interneta, pa je za daljinski pristup sistemu, neophodno korienje SSH ili nekog drugog naprednog sistem za proveru identiteta. Budnost Da bi sistem bio bezbedan neophodno je svakodnevno nadziranje zdravlja sistema, mrene veze, tabele procesa i opteg stanja. Bezbednosni problemi obino poinju kao mali i brzo rastu, pa je dobro to pre otkriti anomaliju. Opte preporuke Ne postavljati na sistem datoteke koje bi mogle da budu zanimljive hakerima ili radoznalim slubenicima. Poslovne tajne, podaci o zaposlenima, rezultatima izbora itd. moraju se oprezno koristiti ako su na mrei. ifrovanje takvih podataka pruie znatno vei stepen bezbednosti od prostog spreavanja neovlaenih korisnika da pristupe podacima. Ne ostavljati mesta na sistemu na kojima bi hakeri mogli da naprave upad i koriste ga kao svoj. Hakeri esto provale u neki sistem i zatim ga koriste kao polaznu taku za upade u druge sisteme. FTP direktorijumi u koje svako sa anonimnim pristup moe da upisuje podatke, grupni nalozi i nalozi sa loe izabranim lozinkama omoguavaju takve aktivnosti. Postavljanje klopki za otkrivanje upade i pokuaje upada je dobra praksa. Alatke kao to su wire, tcpd i crack su od velike pomoi prilikom predvianja moguih problema. Praenje izvetaja koje prave bezbednosne alatke je dobra praksa. Bezazlen problem koji je zanemaren u jednom izvetaju moe prerasti u katastrofu u sledeem. Potrebno je znati to vie o bezbednosti sistema pod Linuxom. Praktino obrazovanje korisnika i zdrav razum najvaniji su inioci bezbednosti. Svakodnevna kontrola sistema za neobinim aktivnostima je dobra praksa. Neophodno je ispitivanje svega to izgleda neobino, kao to su udne poruke u zapisnicima aktivnosti ili aktivnosti na nekom nalogu (vie aktivnosti, aktivnost u udno vreme). Kako se ugroava bezbednost

Veina bezbednosnih problema se javljaju kao posledica jednog od sledeih uzroka: Ljudski faktor: Korisnici (i administratori) raunarskog sistema najee su najslabije karike u bezbednosnom lancu. Greke u softveru: Tokom godina su otkrivene bezbrojne bezbednosne greke u Linuxu (ukljuujui i nezavisne programe, komercijalne i besplatne). Koristei sitne greke u programiranju ili kontekstne zavisnosti, hakeri mogu da prevare Linux da uradi ta god oni ele. Otvorena vrata: Veliki broj programa moe se konfigurisati tako da budu bezbedni. Naalost, podrazumevana konfiguracija esto je nedovoljno bezbedna. Hakeri esto dobijaju pristup sistemu koristei osobine softvera koje bi se u drugim okolnostima smatrale poeljnim: nalozi bez lozinki, diskovi dostupni svima i iste lozinke na vie raunara samo su neke od njih. Jedan od najvanijih postupaka zatite sistema jeste provera da li su nenamerno ostavljena otvorena vrata za hakere.

IMPLEMENTACIJA SIGURNOSTI L N U S
to je sigurnosna kopija dato a oteke?
Sigurnos kopija da sna atoteke jest k kopija te dato oteke pohran njena na nek kom drugom mjestu. Ako elite evidentir promjene u datoteci, moete nap rati e praviti vie sig gurnosnih ko opija iste dato oteke.

Zato je potrebno napraviti sigurnosnu k o kopiju datoteke? t


Sigurnos kopiranje pomae u s sno e spreavanju trajnog gubitka ili promje prilikom sluajnog brisanja ene datoteke zatiti od c e, crva i virusa ili kvara softv vera ili hardve Ako se d era. dogodi bilo to od navede enog, a vae datoteke imaju sigurnosne k kopije, moete ih lako vra atiti. Dodatne informacije o stvaranju e e sigurnos snih kopija da atoteka potra aite u pogla avlju Stvaranj sigurnosnih kopija datoteka. je

Za koj datoteke j potrebno napraviti s je je o sigurnosnu kopiju? k


Napravit sigurnosnu kopiju svih datoteka ko je teko ili nemogue nadomjestiti i redovito iz te u oje i zraujte sigurnos kopije da sne atoteka koje esto mijenja Slike, vid ate. deozapisi, gla azba, projekti i financijski zapisi primjeri su datoteka za koje biste trebali radit sigurnosne kopije. e ti e rame ne mor rate raditi sig gurnosne kop jer ih mo pije oete ponovo instalirati pomou originalnih o Za progr instalacij jskih diskova Programi, o a. osim toga, ve einom zauzi imaju mnogo prostora na disku. o a

Koliko je esto po o otrebno stva arati sigurnosne kopije datoteka? e


Ovisi o b broju datotek koje stvara i koliko ih esto stvarate. Ako svak dan stvarate nove dato ka ate h ki oteke, moda b bilo dobro napraviti sig bi gurnosnu kop svaki tjed ili ak sv piju dan vaki dan. Ako povremeno stvarate o o mnogo n novih datoteka ako, na primjer, spr a remite mnog digitalnih fotografija s roendansk zabave go ke ili mature, odmah napravite sigur rnosne kopije Najbolje je zakazati red e. e dovito, autom matsko stvara anje sigurnos snih kopija, ta da ne mo ako orate ni misliti na to. Mo ete odabrat stvaranje sigurnosnih kopija ti k svaki dan tjedan ili m n, mjesec. Moe i sami rad sigurnosn kopije izm ete diti ne meu automa atskih stvaran nja sigurnos snih kopija. Napome ena Sustav W Windows Vist nema mog ta gunost postavljanja auto omatskog sig gurnosnog ko opiranja, no sustav W Windows unat tome od vas e perio to odiki traiti da napravite sigurnosne k d kopije datoteka. e

Koje v vrste datotek nisu obu ka uhvaene sig gurnosnim kopijama? k


arobnja za stvaran sigurnosn kopija stvara sigurnosne kopije naj ak nje nih jeih vrsta datoteka. Sljedee j datoteke nisu obuhv e vaene: Dat toteke ifrira pomou datotenog sustava za ifriranje (Encr ane rypting File S System, EFS) Nap pomena EFS nije ukljuen u Windows Vista Starter Windows V n r, Vista Home B Basic iWin ndows Vista H Home Premiu um. Sist temske datoteke (datoteke potrebne za rad susta Windows) ava Pro ogramske datoteke Dat toteke pohra anjene na tvr rdim diskovim formatiranima pomo datotenog sustava FAT ma u o A

E-pota utemeljena na Webu koja nije pohranjena na tvrdom disku p j b s t Datoteke u kou za smee v t Privremene datoteke s n a Postavke korisnikog profila

Koliko je prostora za pohran potrebno za stvaranje sigurnosn kopija? o nu nih


To ovisi o veliini dat toteka za koj radite sigu je urnosne kopij Sustav Wi je. indows prati koje su dato oteke dodane ili promijenje nakon po ene osljednjeg st tvaranja sigurnosnih kopij pa postoj ija, jee kopije tr reba samo aurirati, ime se tedi pros stor na disku.

Zato nije vidljivo odabrano mjesto za s stvaranje sig gurnosnih kopija pomo arobnjaka za ou a sigurn nosno kopira datotek anje ka?
Kada birate mjesto za spremanje sigurnosnih kopija, arob a bnjak pretra uje vae ra unalo i prika azuje popis svih prikladnih mjesta. Ako se eljeno m o mjesto ne poj javljuje na po opisu, mogue je da se pojavio p jedan od sljedeih pr d roblema: elj jeno je mjesto pogon s v vrpcom. Sigurnosnu kopij ne moete pohraniti na vrpcu. ju e elj jeno je mjesto disk iju sigurnosnu ko opiju pokua avate stvoriti. Sigurnosnu kopiju diska nije . a mo ogue stvoriti na njemu sa amome. Nije mogue, na primjer, stvoriti sigurnos kopiju sa e a snu adraja pog gona E na po ogon E. elj jeno je mjesto CD-ROM pogon. Ne m moete stvoriti sigurnosnu kopiju pom mou CD-RO OM pog gona, ve mo orate koristit CD snima, poznat i pod nazivom C ti , CD-R iliCD-RW pogon. W Mje esto je vanjsk tvrdi disk i vanjski CD ili DVD snim koji nije p ki ili ma povezan s raunalom. Po oveite tvrd disk ili snim diskova s raunalom i zatim na popisu mjesta kliknite Osv di ma m p a vjei. arobn njak e na raunalu ponovo traiti p povezani ure eaj. jeno je mjesto USB izmje enjivi memor rijski pogon. Sigurnosnu k kopiju ne moete spremiti na o elj izbrisivi pogon. esto nije form matirano kao NTFS, FAT ili UDF (unive o erzalni diskov format, koji se naziva i vni Mje dat toteni sustav uivo). Sigu urnosne kop mogue je spremiti sa pije amo na disko formatira ove ane pom mou datote enih sustava NTFS, FAT ili UDF. Doda a atne informac potraite u cije e pog glavlju Usporedba datote enih sustava NTFS i FAT. a . elj jeno je mjesto sistemski disk (disk na kojem je ins a staliran susta Windows poznat i av kao pogon C) ili disk za pokretanje (disk koji sustav Windows kor o i W risti za pokre etanje raunala a poz znat i kao dis za podizan sustava). sk nje

Je li m mogue spre emiti sigurnosnu kopiju na CD ili DVD ako nisam uz raunalo da umetnem u D m disk?
Samo ak sigurnosna kopija stan na jedan d i ako je on ve u rau ko a ne disk o unalu. U supr rotnom zaka ite stvaranje sigurnosne kopije za vri e ijeme kad e moi ume ete etnuti diskove. Sustav Win ndows obavij ijestit e vas da st tvaranje sigurnosnih kopi nije dovr ija eno pa u tom trenutku m m moete umet tnuti disk da biste nastavili. .

to u initi ako mi ponestane diskova tijekom stvara sigurno e anja osne kopije?

Ako vam tijekom stvaranja sigurnosne kopije ponestane diskova, moete zavriti poslije. m a n

Mogu li nastaviti s radom na raunalu ti a ijekom stva aranja sigurn nosne kopije? e
Da. Stvar se sigurno ra osna kopija zadnje spremljene verzije svake datote pa ete z svaku dato eke za oteku koju promijenite tijek kom stvaranj sigurnosne kopije morati ponovno napraviti sig ja e gurnosnu kop piju. Moete z zakazati da s automatsk sigurnosno kopiranje obavlja tijeko noi ili u vrijeme dok ne radite se ko o om na datot tekama. Tijek kom stvaranja sigurnosne kopije moe itati e-potu ili korist internet. a e ete titi

Mogu li se vratiti datoteke ak se izgube neki od di i ko iskova sa sigurnosnim kopijama? i


Nije mog gue dobiti k kopije datote s diskova koji nedosta Moete v eka a aju. vratiti samo d datoteke koj su na je ostalim d diskovima sa sigurnosnim kopijama. A ne znate tono to se nalazi na d a m Ako e e diskovima koj ji nedostaj moete po ju, ogledati pop datoteka z koje ste napravili sigurnosnu kopiju. Ako pis za imate W Windows Vista Business, W a Windows Vista aEnterprise ili Windows V Vista Ultimate moete uz pomo e, z kopija u sjeni oporav prethodne verzije dato viti e oteka izravno s tvrdog diska umjesto iz sigurnosn kopije. o ne

Prikaz p popisa dato oteka ije ste sigurnosn kopije stv ne vorili
1. Centar za sigu urnosno kopi iranje i vraanje otvara se klikom na g e gumb Start , za atim Upravljaka ploa, potom Susta i odrava av anje, a zatim Centar za si igurnosno kopiranje iv vraanje. Kliknite Vraa anje datotek ka. Moete pregle M edavati ili pre etraivati sad draj sigurnosne kopije.

2.

Koja je razlika izm meu stvara sigurno anja osne kopije datoteka pomou aro o obnjaka za stvaranje sigurn nosnih kopij i bez njeg ja ga?
Svaki put kada snima kopiju da ate atoteka na CD DVD ili van D, njski tvrdi dis i pritom e sk elite napravit ti sigurnos kopiju, m snu morate runo odabrati sva datoteku i mapu za k aku u koju elite sig gurnosnu kop piju. Morate s sjetiti i red se dovito stvarati sigurnosne kopije novih i izmijenjen datoteka i mapa. Sve to moe e nih a biti dosa adno i oduzim puno vremena. Prilik mati kom koritenj arobnjak za stvaranj sigurnosnih kopija nja ka je sustav W Windows prat koje su dat ti toteke i mape nove ili pro e omijenjene. N taj nain p Na prilikom stva aranja nove sigurnosne kop moete n pije napraviti sigu urnosnu kopij svih podataka na raunalu ili samo ju o datoteka koje su promijenjene na a akon stvaranj zadnje sigurnosne kop Ako post ja pije. tavite autom matsko stvaranje sigurnosnih kopija, sust Windows redovito e ih izraivati, pa neete m e h tav s morati misliti na to.

Hoe l se automa li atsko sigurn nosno kopir ranje pokren ako je r nuti raunalo iskljueno? k
Ne. Ako je raunalo i iskljueno u v vrijeme zakazanog stvara anja sigurnos kopije, au sne utomatsko sigurnos kopiranje nee se pok sno e krenuti. Sljed put kad ukljuite rau dei unalo moi ete, meutim m, napraviti sigurnosnu kopiju datot i teka i nastaviti s normalnim rasporedom za stvara anje sigurnos snih kopija.

Kako izbrisati sig gurnosnu ko opiju stvoren pomou arobnjaka za stvaranje sigurnosnih nu a j n kopija a?
Ako su sigurnosne ko opije spremlj jene na CD-o ovima ili DVD D-ovima, disk kove koji sad dre starije sigurnos kopije mo sne oete baciti, ali budite sig gurni da ste zadrali najnovije sigurno z osne kopije datoteka. d Ako ste s sigurnosne k kopije spremili na unutarn ili vanjski tvrdi disk, moete ih izbr nji risati slijedei ove korake: 1. Otvorite mjest na kojem j spremljena sigurnosna kopija. O to je a

Ako ste, na primjer, sigurnosnu kopiju datoteka spremili na vanjski tvrdi disk oznaen slovom "E", poveite ga s raunalom i otvorite pogon E. 2. Desnom tipkom mia kliknite mapu koja sadri sigurnosnu kopiju koju elite izbrisati, a zatim kliknite Izbrii. Napomene Sigurnosne kopije spremaju se u sljedeem formatu: <mjesto sigurnosne kopije>\<naziv raunala>\Backup Set <godina-mjesec-dan> <vrijeme>. Ako je, na primjer, naziv vaeg raunala Raunalo, mjesto sigurnosne kopije pogon E, a stvorili ste je 4. travnja 2006. godine u 16.32:00, sigurnosna kopija nalazit e se u mapi E:\Raunalo\Backup Set 2006-04-04 163200. Da biste je izbrisali, kliknite mapu pod nazivom Backup Set 2006-04-04 163200. Kada stvarate potpunu sigurnosnu kopiju, mapa koja je sadri bit e oznaena datumom za taj dan. Prilikom kasnijeg auriranja taj datum ostaje nepromijenjen, ali sigurnosna kopija je nova. Prilikom sljedeeg stvaranja potpune sigurnosne kopije mapa koja je sadri bit e oznaena datumom za taj dan, a sva nova auriranja dodavat e se u tu mapu. Nemojte brisati mapu trenutne sigurnosne kopije.

ifra
U kriptografiji, ifra je algoritam za ifriranje i deifriranje serija precizno definiranih koraka koji slijede jedan za drugim. U netehnikoj upotrebi, ifra i kod predstavljaju isti termin, ali u kriptografiji ti su pojmovi razliiti. U klasinoj kriptografiji ifra je odvojena od koda. Naelno, u kodu se zamjenjivanje vri na temelju obimne knjige kodova, u kojoj se rijei i fraze zamijenjuju sluajnim nizom znakova. Na primjer, UQJHS moe biti kod za "Nastavite do sljedeih koordinata". Originalna (izvorna) informacija poznata je kao otvoreni tekst, a ifrirani oblik kao ifrirani tekst ili ifrat. ifrirana poruka sadri sve informacije iz otvorenog teksta, ali nije u obliku itljivom za ovjeka ili raunalo bez primjene odgovarajueg mehanizma za njegovo deifriranje - treba predstavljati nasumine znake za sve kojima poruka nije namijenjena. Operacija ifriranja obino zavisi od dodatne informacije zvane klju. Procedura ifriranja varira u zavisnosti od kljua, koji mijenja detalje algoritma. Klju se mora izabrati prije ifriranja poruke. Bez poznavanja kljua trebalo bi da je teko, ili skoro nemogue, dekriptirati ifrat u itljiv otvoreni tekst. Treba razlikovati termine deifriranje i dekriptiranje: Deifriranje je pretvaranje ifrata u otvoreni tekst kad je klju poznat, vri ga osoba kojoj je poruka namijenjena. Dekriptiranje je pokuaj pretvaranja ifrata u otvoreni tekst kad klju nije (unaprijed) poznat - vre ga osobe kojima poruka nije namijenjena. Dekriptiranje je dio kriptoanalize. Veina modernih ifri moe se svrstati u kategorije na nekoliko naina:

X. SIGURNOST MREE (NETWORK SECURITY)


problem izgradnje sigurnih mrea postaje sve vei jer raste i broj korisnika mrea problemi u vezi sa sigurnou mree mogu se podijeliti u 4 podruja (koja se meusobno i preklapaju): tajnost ili povjerljivost (secrecy) - uvanje informacija izvan dohvata neovlatenih korisnika 2. dokazivanje autentinosti (authentication) - utvrivanje tko je osoba s kojom se uspostavila veza prije slanja vanih informacija 3. spreavanje nepriznavanje (nonrepudiation) - odnosi se na potpise: kako dokazati da je neka osoba koja je potpisana u poruci tu poruku zaista i poslala ako ona to negira? 4. kontrola integriteta (integrity control) - da li je poruka koja je stigla zaista ona koja je poslana ili ju je netko u toku prijenosa izmijenio?
1.

1. Klasine kriptografske metode


na principima kriptografije temelje se gotovo svi naini uspostavljanja sigurnosti mree u povijesti je najveu ulogu u razvoju kriptografije imala vojska do otkria raunala glavno je ogranienje bila sposobnost inovnika da izvede odgovarajue ifriranja i deifriranje, te da brzo promijeni koritenu kriptografsku metodu ifra (cipher) - promjena znaka u znak (ili bita u bit) bez obzira na znaenje poruke kd (code) - jedna rije zamjenjuje se drugom rijei ili simbolom -> vie se ne koristi (primjer: Navajo kd US vojske za vrijeme II svjetskog rata) model ifriranja (encryption model):

Slika: Model ifriranja (Tanenbaum, 1996) poruka koja se ifrira je obian tekst (plaintext) P P se transformira na osnovu metode ifriranja (encryption method) - funkcije koja kao parametar koristi klju (encryption key) K kao izlaz dobivamo ifrirani tekst (ciphertext) C koji se alje na pr. preko glasnika, radiom,... uljez (intruder) moe samo oslukivati komunikacijski kanal (pasivni uljez) ili moe snimiti poruku, mijenjati je ili slati vlastitu (aktivni uljez) vrijedi: C = EK(P) tj. ifriranjem teksta P pomou kljua K dobijemo ifrirani tekst C obrnuto: P = DK(C) predstavlja deifriranje (decryption) ifriranog teksta C da bi se ponovo dobio poetni obini tekst P (slijedi da je DK(EK(P))=P) E, D - odabrane matematike funkcije iji su parametri klju i tekst (obini ili ifrirani)

osnovno pravilo kriptografije je da onaj tko vri deifriranje mora znati koritenumetodu deifriranja i klju koji se u toj metodi koristio dok se osnovna metoda ifriranja mijenja nakon nekoliko godina, klju se mijenja esto -> osnovni model je stabilna i javno poznata openita metoda koja kao parametar koristi tajni, lako izmjenjivi klju duina kljua je glavno pitanje kod njegova dizajna klju se sastoji od znamenki (znakova) koje su unesene odreenim redoslijedom i to je klju dui, vie je moguih kombinacija i vie je rada potrebno da ga onaj koji razbija ifru pogodi (moe se koristiti npr. 256 bita) metode ifriranja dijele se povijesno u 2 kategorije: supstitucijske i transpozicijske ifre

1.1 Supstitucijske ifre


svako slovo ili grupa slova zamjenjuje se drugim slovom ili grupom slova tj. uva se redoslijed slova, ali se ona preruavaju najstarija poznata takva ifra je Cezarova ifra kod koje a postaje D, b postaje E,c postaje F,..., z postaje C (npr. attack postaje DWWDFN) generalizacija Cezarove ifre dozvoljava da se abeceda ifriranja pomakne za kslova, a ne za 3 slijedee poboljanje je da se svaki znak preslika u neki drugi znak bez pravilnog pomaka (npr. attack postaje QZZQEA), na primjer:

P: a b c d e f g h i j k l m n o p q r s t u v w x y z C: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

takav se sistem naziva monoalfabetska supstitucija kod koje je klju niz od 26 slova koji odgovara itavoj (engleskoj) abecedi

moguih kljueva ima 26! 4 x 1026 ali se unato tome, poznajui ve i manju koliinu ifriranoga teksta, moe pronai klju na osnovu statistikih osobina prirodnih jezika (gledaju se najea slova, kombinacije od 2 slova i kombinacije od 3 slova)

1.2 Transpozicijske ifre


slova ostaju ista (ne zamjenjuju se kao kod supstitucijskih ifri), ali se mijenja njihov redoslijed (izmijeaju se) primjer - stupana transpozicija:

Slika: Primjer transpozicijske ifre (Tanenbaum, 1996) klju je rije ili fraza koja ne sadri ponavljajua slova (u primjeru: MEGABUCK), a slui za numeraciju stupaca tako da je stupac 1 pod slovom koje je najblie poetku abecede obini tekst se pie u recima (vodoravno), a ifrirani tekst u stupcima poevi od onoga koji je oznaen kao stupac 1

1.3 Klju za jednokratnu uporabu (One-Time Pads)


tehnika za konstruiranje ifre koja se ne moe razbiti (unbreakable cipher): izabrati sluajni niz bitova kao klju pretvoriti tekst u niz bitova (na primjer, koritenjem ASCII reprezentacije znakova)

izraunati ISKLJUIVI ILI (EXCLUSIVE OR) tih dvaju stringova, bit po bit rezultirajui ifrirani tekst ne moe se razbiti jer je jednako vjerojatno za bilo koji obini tekst odreene duljine da je tako ifriran nedostaci: klju se ne moe zapamtiti, pa i poiljaoc i primaoc moraju drati kopiju uz sebe; velika osjetljivost na izmjene do kojih moe doi u prijenosu

2. Dva osnovna principa kriptografije


principi koji su zajedniki za razliite kriptografske sisteme: 1. redundancija (redundancy): sve ifrirane poruke moraju sadravati odreenu koliinu suvinih podataka, (tj. informacija koje nisu potrebne da se razumije poruka) kako aktivni uljezi ne bi mogli poslati sluajan niz znakova koji e se interpretirati kao ispravna poruka 2. "svjeina" (freshness): mora se sprijeiti da aktivni uljezi ponovo alju stare poruke - u poruke se ukljuuju vremenske oznake (timestamps)

3. Algoritmi sa simetrinim kljuem (Symmetric-Key Algorithms)


moderna kriptografija koristi iste osnovne ideje (supstituciju i transpoziciju) kao i klasina razlika: klasina je koristila jednostavne algoritme za ifriranje s vrlo dugakim kljuevima kao sigurnost, modernoj je cilj napraviti to sloenijima algoritme algoritmi sa simetrinim kljuem: o isti klju se koristi za ifriranje i deifriranje o ifre u blokovima - ulaz je n-bitni blok teksta koji se pomou kljua transformira u n-bitni blok ifriranog teksta o kriptografski algoritmi mogu se implementirati hardverski (zbog brzine) ili softverski (zbog fleksibilnosti) o transpozicija i supstitucija mogu se primijeniti vie puta u nizu i kombinirati na razliite naine, a implementiraju se jednostavnim ureajima (elektrinim sklopovima) P-kutijom (P-box) i S-kutijom (S-box)

2 osnovna pristupa razbijanju ifre: o kriptoanaliza: na osnovu poznavanja prirode algoritma i nekih osnovnih osobina teksta (ili ak nekih uzoraka parova tekst-ifrirani tekst) nastoji se zakljuiti koji je klju koriten

"gruba sila" (brute-force): isprobava se svaki mogui klju na komadu ifriranog teksta sve dok se ne dobije odgovarajui tekst - tee je (due traje) to je dui klju

DES (Data Encription Standard) poznati algoritam sa simetrinim kljuem DES (Data Encription Standard) ifru razvio je IBM, a 1977. ju je usvojila i vlada USA kao svoj slubeni standard osnovna ideja: tekst se ifrira u blokovima od 64 bita, algoritam koristi 56 bitni klju i odvija se u 19 faza: o prva faza je transpozicija teksta koja ne ovisi o kljuu, o zadnja faza je inverz te transpozicije o predzadnja faza je zamjena 32 lijeva bita s 32 desna o ostalih 16 faza koriste istu funkciju, ali razliite kljueve koji se izvode iz polaznog kljua

Slika: Faze DES-a i detalj jedne od 16 faza (Tanenbaum, 1996) ulaz je podijeljen na lijevi i desni sa po 32 bita lijevi izlaz je kopija desnog ulaza

desni izlaz je XOR lijevog ulaza i funkcije nad desnim ulazom i kljuem Kiza ovu i-tu fazu (iteraciju) sva kompleksnost se nalazi u funkciji

unato kompleksnosti, DES je u osnovi monoalfabetska supstitucijska ifra koja koristi 64-bitne znakove, te uvijek isti 64-bitni ifrirani tekst odgovara istom 64bitnom ulaznom tekstu da bi se poveala kompleksnost, kao jedna od metoda koristi se ulanavanje blokova ifri (cipher block chaining) kod koje se svaki blok obinog teksta prije ifriranja povezuje sa EXCLUSIVE OR sa prethodnim blokom ifre problemi kod DES: o i mala koliina obinog teksta i odgovarajueg ifriranog teksta je dovoljna da se nae klju duine 56 bitova (namjerno kratki klju?!) koritenjem vrlo jakog raunala ili koritenjem velikog broja manje jakih raunala koji dijele posao (problem se moe rijeiti koritenjem dueg kljua npr. 128 bitnog) o distribucija kljueva: isti klju je i za ifriranje i za deifriranje, pa se mora distribuirati objema stranama koje ga moraju znati, a istovremeno sprijeiti uljeze da dou do njega AES (Advanced Encryption Standard) - novi sigurniji standard s duljinom blokova od 128 bita i podrkom za kljueve duine 128, 192, 256 bita

4. Algoritmi s javnim kljuem (Public-Key Algorithms)


1976. predloen je na Stanford University (Diffe, Hellman) potpuno novi sistem kriptografije kod koje su klju za ifriranje i klju za deifriranje razliiti, i klju deifriranja ne moe se izvesti iz kljua ifriranja korisnik za ifriranje poruke koristi javni klju (public key), a za deifriranje poruke privatni (tajni) klju (private key) zahtjevi koje trebaju ispuniti algoritam za ifriranje (E) s javnim kljuem i algoritam za deifriranje (D) s privatnim kljuem:
1.

D(E(P)) = P (ako primijenimo D na ifrirani tekst E(P) dobiti emo ponovo polazni tekst P 2. izuzetno je teko na osnovu algoritma E zakljuiti kakav je D 3. algoritam E se ne moe razbiti iako se ima dio deifriranog teksta

uz ove uvjete klju za ifriranje moe biti javni klju

Metoda:

Slika: Algoritam s javnim kljuem (Tanenbaum, 1996) osoba A koja alje poruku ima 2 algoritma EA i DA koji ispunjavaju gornje uvjete i od kojih je algoritam za ifriranje i njegov klju EA javni; javni je i algoritam za deifriranje, ali je njegov klju DA tajni i poznat samo osobi A; analogno vrijedi za osobu B i kljueve EB i DB ako A eli poslati tajnu poruku P za B, uzima njezin javni klju EB i rauna EB(P), tako ifrirani tekst alje osobi B koji ga deifrira pomou svog tajnog kljua DB (rauna DB(EB(P)) = P)

problem kod metoda s javnim kljuevima je kako nai algoritam koji ispunjava sva tri zahtjeva jedan od njih je RSA algoritam

RSA algoritam razvijen 1976. na MIT-u Rivest, Shamir i Adleman, a metoda se bazira na nekim principima teorije brojeva, tj. na nemogunosti raunala da u realnom vremenu vri faktorizaciju velikih prim brojeva RSA je dosta spor za ifriranje veih koliina podataka (zadovoljavajue sigurnost se postie s kljuem od barem 1024 bita) esto se koristi samo za distribuciju kljueva kod DES, a DES se dalje koristi za ifriranje ostalih podataka

Postupak:
1. 2. 3. 4. 5. 6. 7.

izabrati 2 velika prim broja p i q (obino 1024 bita) izraunati n = p x q i z = (p-1) x (q-1) izabrati broj d relativno prim prema z nai e tako da je e x d = 1 mod z podijeliti tekst u blokove (ili poruke) P tako da svaki od njih bude 0 P < n za ifriranje poruke P izraunati C = Pe mod n za deifriranje C izraunati P = Cd mod n -> funkcije za ifriranje i deifriranje su inverzne (e,n) je javni klju za ifriranje (d,n) je privatni klju za deifriranje kada bi se javno znani n uspio faktorizirati na p i q, naao bi se z, a zatim e i d -> teko

Primjer:
1. 2. 3. 4. 5. 6.

p=3, q=11 n=3 x 11=33, z=2 x 10=20 d=7 7 x e = 1 mod 20 -> (7 x e)/20 = x + 1/20 -> e=3 C = P3 mod 33 P = C7 mod 33 (3,33) je javni klju za ifriranje (7,33) je privatni klju za deifriranje

Slika: Primjer za RSA (Tanenbaum, 2003)

5. Digitalni potpisi (Digital Signatures)


treba pronai odgovarajuu zamjenu za potpise pisane rukom ije se krivotvorenje moe utvrditi potreban je sistem u kojem: o jedna strana moe poslati potpisanu poruku drugoj tako da primaoc moe provjeriti identitet poiljaoca, o poiljaoc ne moe kasnije negirati poslanu poruku o primaoc ne moe sam izmisliti poruku

5.1 Potpisi koritenjem simetrinih kljueva


postoji centralni autoritet kojem svi vjeruju (BB - Big Brother) i koji ima pohranjen tajni klju svakog korisnika, samo korisnik A i BB znaju za klju KA, korisnik B i BB znaju za klju KB itd.

Slika: Digitalni potpisi uz nadzor BB (Tanenbaum, 2003)

ako A eli poslati poruku P osobi B, prvo generira i alje KA(B, RA, t, P) za BB: o B - identitet osobe B o RA - sluajan broj kojeg A bira o t - vremenska oznaka BB deifrira tu poruku i koristei tajnu ifru osobe B KB alje osobi B, (uz ostale podatke) tekst poruke, te KBB(A, t, P) podatak KBB(A, t, P) slui osobi B kao dokaz da mu je poruku zaista poslala osoba A

5.2 Potpisi koritenjem javnog kljua

razmjena potpisanih poruka bez nadzora nekog centralnog autoriteta (svaku poruku koja mu stie moe proitati) koriste se algoritmi za ifriranje i deifriranje pomou javnog kljua koji imaju dodatnu osobinu da je E(D(P)) = P (uz standardnu: D(E(P)) = P ), npr. RSA

Slika: Digitalni potpisi koritenjem javnog kljua (Tanenbaum, 2003) osoba A alje potpisanu poruku osobi B nainivi EB(DA(P)) B primjenjuje prvo svoj privatni klju DB da bi dobio DA(P), a zatim javni klju EA da dobije tekst P od A da je zaista osoba A poslala poruku, moe se provjeriti tako da se od B uzmu i P i DA(P) i da se primjenom kljua EA ustanovi da li je zaista EA(DA(P)) = P, ako to vrijedi, znai da je poruka zaista od osobe A jer jedina ona zna DA

6. Upravljanje javnim kljuevima


problem sigurne razmjene javnih kljueva osoba koje se ne poznaju kljuevima moe upravljati distribucijski centar za kljueve koji je cijelo vrijeme online umjesto takvog centra jedan od naina je koritenjem certifikata (certificates)

Certifikati CA (Certification Authority) - organizacija koja potvruje javne kljueve osobe se registriraju u CA svojim javnim kljuem i nekim osobnim podatkom, a CA izdaje certifikat (potvrdu) potpisan nekim digitalnim potpisom pri emu se koristi privatni klju tog CA osnovni zadatak certifikata: pridruiti javni klju imenu osobe (ili neke organizacije, firme,...) - sami certifikati nisu tajni ili zatieni

Slika: Primjer certifikata (Tanenbaum, 2003) kad osoba A dohvati certifikat od B, primjeni algoritam koriten za digitalni potpis s javnim kljuem od CA -> ako se dobiveni rezultat slae s onim navedenim u certifikatu, rije je zaista o pravom certifikatu od B na taj nain CA ne mora biti stalno on-line X.509 - standard za certifikate

to je tono ssh? SSH je sigurni protokol za udaljenu administraciju raunala. Svaki od naih linux servera posjeduje ssh servis za udaljeni pristup, te je korisnicima omoguen ssh pristup uz upotrebu odgovarajueg klijenta. Na Internetu moete pronai razne ssh klijente, a kao pouzdane i besplatne moemo vam preporuiti : Linuxov ugraeni OpenSSHSSH client, Putty za Windows raunala ili NiftyTelnet za MacOS. Kako se mogu spojiti na server? Koristei linuxov Ugraeni ssh klijent spajanje se vri putem komande ssh username@hostname Ukoliko se na server spajate po prvi put, klijent e vas pitati elite li spremiti jedinstveni server ssh fingerprint; nakon to prihvatite fingerpint ssh klijent e traiti da unesete password za username s kojim se spajate. Ukoliko je password toan ssh klijent e se uredno spojiti na server. Kako bi se na server spojili putem Putty klijenta?

Nakon pokretanja putty programa pojavit e vam se ovakav prozor. U polje hostname unosite naravno ime servera na koji se spajate. Port za spajanje ostaje 22, connection type ostavljate ssh. Ukoliko kliknete na tipku open klijent e se spojiti na server sa zadanim parametrima, meutim do sada zadane parametre kao i dodatne advanced parametre (dokumentaciju parametara nai e te ovdje) moemo spremiti u session tako da utipkamo eljeni session name te kliknemo na tipku save. Svi parametri koje smo prethodno podesili nam ostaju spremljeni za novo pokretanje programa, a jednostavnim dvostrukim klikom na ime sessiona pokree se terminal sa zadanim parametrima. Klikom na tipku open ili na prethodno sauvani session otvara se novi prozor, koji e vas ukoliko se spajate po prvi put pitati elite li spremiti server fingerprint. Nakon spremanja fingerprinta terminal e vas pitati username te zatim password. Ok ulogirao se, to sad? U ovom trenutku server od vas oekuje komandnolinijsku instrukciju. Nije tako strano kao to zvui Dakle, nakon to ste se spojili ssh-om na server uli ste u komandnolinijsko suelje linux servera, koje nije toliko grafiki oku ugodno kao desktop okruenje vaeg raunala ali je jednako efikasno, a u veini sluajeva ak i vie. Utipkane komande se izvravaju tek nakon to ih potvrdite tipkom enter.

Neke od osnovnih komandi su vrlo sline starim MSDos komandama, pa tako npr. komanda: mkdir kreira direktorij cd navigira kroz direktorije ls lista sadraj trenutnog direktorija pwd ispisuje apsolutnu putanju direktorija u kojem se nalazimo rm brie direktorije ili fileove (oprezno!) cp za kopiranje fileova ili direktorija mv za premjetanje Dodatne komande moete pronai pomou ove pretrage, a par zgodnih trikova ete nai i naovoj stranici. Svaka komanda je dokumentirana i za svaku komandu moete putem ssh konekcije pozvati manual. Komanda za pozivanje manuala/dokumentacije je man imekomande Dakle ukoliko elite pogledati dokumentaciju za komandu ls jednostavno utipkate man ls dokumentacijom se kreete pomou kursorskih tipki, a iz nje izlazite pritiskom na tipku Q. ato je ovo puno bolje nego ftp? Problem kod ftp-a je to je to iskljuivo file transfer protokol, dakle ukoliko bismo htjeli preseliti fileove iz jednog foldera u drugi ftp klijent mora za svaki file posebno establishati konekciju, izvriti komandu te nanovo itati strukturu direktorija. Naravno ovaj cijeli proces s ftp-om moe potrajati i po nekoliko minuta ili sati ovisno o broju fileova za premjetanje i brzini konekcije. Kroz shell to moemo jednostavno, za manje od sekundu, izvriti komandom mv trenutna_lokacija nova_lokacija Naravno, ukoliko elim preseliti samo slike .jpg formata mogu koristit wildcarde bez nepotrebnog kliktanja po ftp klijentu i selektiranja .jpg fileova. Kroz shell to jednostavno izvrim komandom mv trenutnifolder/*.jpg novifolder/ to su tono wildcardi? Wildcardi su posebni znakovi koji mogu zamjeniti jedan ili set znakova u komandi. Wildcardi su nam osobito korisni u shell komandama jer nam dozoljavaju selektivan odabir fileova. * Zamjenjuje bilo koji znak u bilo kojoj koliini (npr. *.jpg je isto kao i bilo koji od ovih filenameova, 123.jpg, dse2sx.jpg, a.jpg) ? Zamjenjuje bilo koji znak na samo jednom mjestu. (npr. d?n.jpg je isto kao bilo koji od ovih filenameova dan.jpg, d1n.jpg, dTn.jpg) [] Unutar uglatih zagrada se moe staviti raspon znakova za zamjenu (npr. [1-9].jpg je identino kao i 1.jpg, 2.jpg ili recimo [A-Z,a-z].jpg mjenja bilo koje veliko ili malo slovo abecede u rasponu od a do z). Ok, primjenimo wildcarde i sve gore navedene komande u praksi. elim preseliti sve .jpg slike iz mape slike/ koje poinju slovima a u podmapu slike/a/ Nakon to se ulogiramo pomou ssh-a na svoj hosting account ssh terminal e se probuditi u /home/username/ folderu. Za poetak emo ui u folder slike: cd public_html/slike/ Ukoliko niste sigurni nalazite li se u pravom folderu moete upisati komandu pwd Provjerti emo postoji li ve subfolder: ls -lh a

Ukoliko direktorij ne postoji dobit emo output : ls: a: No such file or directory Napravimo svoj a direktorij: mkdir a Zatim emo preseliti sve slike koje poinju s malim ili velikim slovom a u novokreirani poddirektorij a mv [a,A]*.jpg a/ Postoji li alternativa? Naravno, za neke jednostavnije funkcije postoji odlian shell alat Midnight Commander, vrlo je slian starom Norton commanderu iz MSDos-a

Program jedostavno moete pogrenuti komandom mc a dokumentaciju moete pogedati komandom man mc Ok gotov sam s radom, kako se odjaviti? Po zavretku rada na serveru potrebno je izvriti odjavu. Odjavu izvrimo komandom logout ili exit

Protokoli za sigurnu razmjenu podataka Zadatak protokola za sigurnu razmjenu podataka jest osigurati tajnost, vjerodostojnost, integritet i neporecivost podataka. Dva protokola koja se najvie koriste suSSL (eng. Secure Socket Layer) [12] i TLS (eng. Transport Layer Security) [13].

3.1. SSL protokol SSL (eng. Secure Socket Layer) protokol razvila je tvrtka Netscape Communications 1994. godine. Naao je primjenu u mnogim protokolima kao to su HTTP (eng.Hyper Text Transfer Protocol), SMTP (eng. Simple Mail Transfer Protocol), POP (eng. Post Office Protocol), LDAP (eng. Lightweight Directory Access Protocol) i mnogim drugim. SSL norma nije objavljena u obliku RFC dokumenta. SSL postoji u tri verzije, u verziji 1, verziji 2 te verziji 3.

Slika 3.1. Prikaz SSL sloja u TCP/IP mrenom sloaju Na slici 3.1. nalazi se prikaz SSL sloja u odnosu na TCP sloj i HTTP protokol u aplikacijskom sloju TCP/IP mrenog sloaja. Umjesto HTTP protokola moe biti bilo koji aplikacijski protokol koji ima podrku za SSL protokol. SSL je ostvaren kao dodatni sloj u TCP/IP (eng. Transmission Control Protocol/Internet Protocol) mrenom sloaju. Protokol vieg sloja (u ovom sluaju HTTP) transparentno pristupa SSL sloju. SSL osigurava sljedee sigurnosne zahtjeve: 1. Privatnost ili tajnost informacija. 2. Integritet podataka. 3. Autentifikaciju sudionika u komunikaciji uporabom digitalnih certifikata. Protokol koristi asimetrinu kriptografiju i digitalne certifikate za razmjenu tajnih ili sjednikih kljueva koji se koriste u daljnjoj komunikaciji te simetrinu kriptografiju kojom se kriptiraju poruke izmeu sudionika, koje se prethodno mogu i komprimirati. SSL protokol podrava razne algoritme saimanja kao to su MD5 i SHA1, simetrine algoritme (IDEA, DES, 3DES, RC4 itd.) te asimetrine algoritme kao to su npr. RSA i Diffie-Hellman (razmjena pre-master kljueva). SSL podrava i Fortezzu. Fortezza je sklopovska podrka za neke algoritme kriptiranja, razmjene kljua i saimanja, razvijena od strane NSA (eng. National Security Agency). Tablica 3.1. Prikaz nekih aplikacija koje podravaju SSL protokol s dodijeljenim brojem vrata (eng. port) Aplikacijska usluga Dodijeljeni broj vrata 443 HTTPS 646 LDAP

NNTP SMTP POP3

563 465 995

SSL se sastoji od etiri protokola: SSL protokol rukovanja (eng. SSL Handshake Protocol), SSL protokol razmjene aplikacijskih podataka izmeu klijenta i posluitelja (eng. SSL Record Protocol), SSL protokol promjene specifikacije algoritama (eng. SSL Change Cipher Spec Protocol) i SSL protokol upozorenja (eng.SSL Alert Protocol). 3.1.1. Protokol rukovanja Protokol rukovanja je najsloeniji protokol unutar SSL-a. Tijekom njegova trajanja klijent i posluitelj razmjenjuju niz poruka (slika 3.2.).

Slika 3.2. Prikaz faze rukovanja izmeu klijenta i posluitelja u SSL protokolu (poruke prikazane isprekidanom strelicom su opcionalne) Faze protokola rukovanja: 1. client_hello: klijent alje posluitelju verziju SSL protokola koju podrava, nasumini broj, jedinstveni identifikator sjednice (eng. session ID), popis

kriptografskih algoritama koje podrava (eng. Cipher Suite) te popis metoda za komprimiranje podataka koje podrava. 2. server_hello: posluitelj alje klijentu verziju protokola koju on podrava, jedinstveni identifikator sjednice, listu odabranih kriptografskih algoritama (eng.Cipher Suite) te oznaku odabrane metode za komprimiranje. Lista odabranih kriptografskih algoritama sastoji se od dva dijela: oznaka algoritma razmjene kljua (npr. RSA i Diffie-Hellman) te dio koji sadri specifikaciju simetrinih algoritama (tzv. CipherSpec). Specifikacija simetrinih algoritama sastoji se od oznake simetrinog algoritma kriptiranja, oznake MAC (eng. Message Authentication Code) algoritma koji stvara saetak poruke uz pomo simetrinog kljua i time jami integritet i autentinost poruke, oznake vrste kriptiranja (kriptiranje toka podataka ili bloka podataka), duljine saetka itd. 3. certificate (opcionalno): posluitelj alje klijentu svoj digitalni certifikat, kojim dokazuje svoj identitet. Ukoliko posluitelj ne poalje certifikat, tada se moe koristiti Diffie-Hellman metoda razmjene kljua. 4. server_key_exchange (opcionalno): posluitelj alje ovu poruku u sluaju da nije dogovorena metoda razmjene kljua (Diffie-Hellman ili RSA razmjena kljua). 5. certificate_request (opcionalno): posluitelj alje klijentu zahtjev za njegovim certifikatom, kako bi provjerio njegov identitet. 6. server_hello_done: posluitelj alje klijentu obavijest da je zavrio slanje poruka. Nakon ove poruke, klijent provjerava posluiteljev certifikat (provjerava odgovara li ime domene na certifikatu imenu domene s kojom posluitelj uspostavlja vezu, provjerava je li certifikat istekao ili se koristi prije datuma poetka valjanosti certifikata, provjerava digitalni potpis certifikata itd.). 7. certificate (opcionalno): klijent alje posluitelju svoj certifikat, ako je posluitelj to od njega zatraio (certificate_request). 8. client_key_exchange: klijent koristi sluajan broj koji je dobio od posluitelja (client_hello) i pomou njega generira 48-oktetni pre-master klju. Klijent kriptira pre-master klju s javnim kljuem posluitelja te ga alje posluitelju, ukoliko je prethodno dobio posluiteljev certifikat (poruka certificate). Inae je razmjena pre-master kljua Diffie-Hellman metodom. Posluitelj prima poruku dekriptira je i uzima pre-master klju. I klijent i posluitelj iz pre-masterkljua odreenim postupkom izraunavaju master klju, a pomou njega takoer odreenim postupkom, dobivaju sjedniki klju kojim e kriptirati aplikacijske podatke nakon zavretka faze rukovanja. 9. certificate_verify (opcionalno): ako je posluitelj prethodno zatraio klijentov certifikat (certificate_request), klijent dokazuje posluitelju da privatni klju odgovara javnom kljuu u certifikatu koji je poslao posluitelju. To radi na taj nain da digitalno potpisuje poruku client_key_exchange (kriptirani premasterklju s javnim kljuem posluitelja), i alje je posluitelju. 10. change_cipher_spec: klijent alje poruku posluitelju koja sadri trenutanu specifikaciju simetrinih algoritama (CipherSpec). Trenutana specifikacija dobiva se preuzimanjem specifikacije koju je poslao posluitelj. 11. finished: klijent alje posluitelju obavijest o zavretku faze rukovanja (od strane klijenta). Ovo je prva poruka koja je zatiena dogovorenim algoritmima i kljuevima. 12. change_cipher_spec: posluitelj potvruje klijentu trenutanu specifikaciju simetrinih algoritama.

13. finished: posluitelj zakljuuje fazu rukovanja i o tome obavjetava klijenta. Poruka je zatiena dogovorenim algoritmima i kljuevima. Ako u daljnjem tijeku komunikacije iz nekog razloga nastane potreba za mijenjanjem parametara (npr. vrsta algoritma), tada se ponovno obavlja rukovanje, ali se ne vri ponovna razmjena kljueva. 3.1.2. Protokol razmjene aplikacijskih podataka Nakon faze rukovanja odvija se faza razmjene aplikacijskih podataka. Aplikacijski podaci se prije slanja komprimiraju (opcionalno), zatim se provedu kroz MACfunkciju (omoguava integritet i autentinost poruke uz pomo dijeljenog kljua) da bi se dobio saetak koji se zajedno s komprimiranim podacima kriptira sjednikim kljuem. 3.1.3. Protokol promjene specifikacije algoritama Protokol je ostvarenje jedne poruke koja sadri kod upozorenja (neoekivana poruka, pogrean certifikata itd.). 3.2. TLS protokol TLS (eng. Transport Layer Security) je nastao na temelju SSL protokola verzije 3, i koristi ista dodijeljena vrata kao i SSL. Vrlo je slian SSL protokolu. Razvija se u okviru IETF (eng. Internet Engineering Task Force) i prvi put je predstavljen 1999. godine. Neke od razlika u odnosu na SSL jesu te to TLS koristi standardniHMAC (eng. keyed-Hash Message Authentication Code) koji je jadna vrsta MAC-a, TLS ne podrava Fortezzu itd. Sve vanije aplikacije i usluge koje podravajuSSL, podravaju i TLS.

FIREWALL
Firewall je sigurnosni element smeten izmeu neke lokalne mree i javne mree (Interneta) , a koji je dizajniran kako bi zatitio poverljive , korporativne i korisnike podatke od neautoriziranih korisnika , (blokiranjem i zabranom prometa po pravilima koje definie usvojena sigurnosna politika). Nije nuno da svi korisnici u LAN-u imaju jednaka prava pristupa Internet mrei. Postavljanjem Firewall ureaja izmeu dva ili vie mrenih segmenata moe se kontrolirati i prava pristupa pojedinih korisnika pojedinim delovima mree. U takvom sluaju Firewall je dizajniran da doputa pristup valjanim zahtevima, a blokira sve ostale. Firewall ujedno predstavlja idealno rjeenje za kreiranje Virtualne Privatne mree jer stvarajui virtualni tunel kroz koji putuju kriptirani podaci,(omoguuje sigurnu razmjenu osetljivih podataka meu dislociranim korisnici) . Firewall je servis koji se tipino sastoji od firewall ureaja i Policy-a (pravilnika o zatiti), koji omoguuje korisniku filtriranje odreenih tipova mrenog prometa sa ciljem da povea sigurnost i prui odreeni nivo zatite od provale. Osnovna namena Firewall-a je da sprei neautorizovani pristup sa jedne mree na

drugu. U sutini, ovo znai zatitu unutranje mree od Internet-a. Ako va sistem raspolae Firewall-om, to znai da je odluka o tome ta je dozvoljeno, a ta nije ve doneta. Ove odluke su u direktnoj vezi sa politikom sigurnosti vaeg informacionog sistema. Pri planiranju ponude informacionih servisa, politika sigurnosti odreuje opcije konfiguracije servisa. Osnova rada Firewall-a je u ispitivanju IP paketa koji putuju izmeu klijenta i servera, ime se ostvaruje kontrola toka informacija za svaki servis po IP adresi i portu u oba smera. Za Firewall je tipian i kompromis izmeu sigurnosti i lake upotrebe. Stav da "sve to nije dozvoljeno je zabranjeno" zahteva da se svaki novi servis individualno omoguava. Firewall je odgovoran za vie vanih stvari unutar informacionog sistema: Mora da implementira politiku sigurnosti. Ako odreeno svojstvo nije dozvoljeno, Firewall mora da onemogui rad u tom smislu. Firewall treba da belei sumnjive dogaaje. Firewall treba da upozori administratora na pokuaje proboja i kompromitovanja politike sigurnosti. U nekim sluajevima Firewall moe da obezbedi statistiku korienja. Firewall moe biti softverski ili hardverski : Softverski firewall omoguava zatitu jednog raunara , osim u sluaju kada je isti raunar predodreen za zatitu itave mree. Hardverski firewall omoguuje zatitu itave mree ili odreenog broja raunara. Za ispravan rad firewall-a, potrebno je precizno odrediti niz pravila koja definiu kakav mreni promet je doputen u pojedinom mrenom segmentu. Takvom politikom se odreuje nivo zatite koji se eli postii implementacijom firewall usluge. Veina dananjih proizvoaa firewalla ponosno istie na koje napade su njihovi firewalli otporni, ali nove vrste napada se svakodnevno razvijaju i sve su komplikovani i kompleksniji. Ipak svaki firewall bi trebao biti otporan na poznate napade kao to su : Address Spoofing napad omoguava da paket bude prosleen sa nepoznatog okruenja na neko od internih raunara ukoliko napada kao izvorinu adresu uzme neku od adresa unutar lokalne mree. U tom sluaju firewall je moda konfigurisan da omoguava prolazak paketa i time ciljni raunar moe primiti posebno prilagoeni paket. Da bi se ovakva vrsta napada onemoguila potrebno je onemoguiti prosljeivanje paketa koji kao izvorinu adresu imaju neku od lokalnih adresa, a kao ulazno okruenje ono okruenje koje je spojeno na Internet. Smurf napad spada u grupu napada koje imaju za cilj onemoguavanje rada pojedinih servera i raunara, tj. DoS napad (eng. Denial of Service). Napada ilje ICMP echo request paket na broadcast adresu cele lokalne mree. Time su adresirani svi raunari unutar lokalne mree. Kao odredite navodi se ciljni raunar koji se eli onesposobiti velikim brojem odgovora. Za odbranu od ovakve vrste napada dovoljno je u konfiguracijskoj datoteci firewalla onemoguiti broadcast paket. Syn-Flood napad zasniva se na napadaevom slanju velikog broja poetnih konekcijskih TCP paketa koji imaju postavljenu SYN zastavicu, i ignoriranjem TCP odgovora sa postavljenim SYN i ACK zastavicama. Time su resursi ciljanog raunara zaokupljeni odgovaranjem na pakete. Da bi se

sprijeio ovakav oblik napada potrebno je ograniiti na firewallu broj dolazeih TCP paketa. Port-Scanner napad zasniva se na otkrivanju otvorenih TCP i UDP portova slanjem SYN ili FIN paketa na ciljane portove i ekanjem na RST odgovor. Potrebno je ograniiti broj takvih ispitivanja. Ping-of-Death napad moe uzrokovati ruenje operativnog sistema, ukoliko se na raunar usmjeri veliki broj ICMP echo zahteva. Najbolje rjeenje je onemoguavanje echo-request paketa, a alternativo rjeenje je ogranienje broja ICMP echo zahteva.

3. Osnovne koncepcije firewall skeniranja paketa


3.1. Statistiko filtriranje paketa (stateless inspection) Filtriranje paketa osnovni je deo svakog firewall. U tom se delu odluuje da li mreni paket treba biti proslijeen na drugu mreu ili ne. Pri tome se kod statikog filtriranja pregledaju razliiti podaci: Vrsta protokola: 1. IP adrese odredita i izvorita 2. Odredini tj. izvorini port 3. Informacije o tablici usmjeravanja paketa 4. Broj fragmentiranog paketa 3.2.Filtriranje paketa zavisno po vrsti protokola Protokolno filtriranje paketa zasniva se na sadraju IP protokolnog polja. Protokol koji se koristi unutar paketa odreuje da li paket treba proslijediti ili ne. Neki od protokola su: 1. User Datagram Protocol (UDP) 2. Transmission Control Protocol (TCP) 3. Internet Control Message Protocol (ICMP) 4. Internet Group Management Protocol (IGMP) 3.3.Filtriranje paketa zavisno po IP adresama Filtriranje zavisno po IP adresama omoguava zabranu konekcija od ili prema odreenim raunarima i ili mreama, zavisno po nihovim IP adresama. Ukoliko administrator eli zatiti mreu od neovlatenih zlonamernih napadaa, on moe zabraniti promet mrenih paketa koje kao odredite imaju odreene IP adrese. To je poprilino beskorisno jer napadai mogu promijeniti IP adrese. Zbog toga je puno bolje dozvoliti pristup mrei samo odreenim paketima koji kao odredite imaju odreene sigurne IP adrese. Normalno ukoliko se napada domogne i tog popisa on moe paketima pridruiti kao odredinu IP adresu neku iz tog popisa. 3.4.Filtriranje paketa zavisno po odredinim tj. izvorinim portovima Prilikom spajanja jednog raunara na drugi , i jedan i drugi koriste odreene pristupne portove,sve ukupni broj pristupnih portova je 65536. Prva 1024 porta su rezervisana za odreene aplikacije i ne mogu se koristiti za neke druge. Primer HTTP koristi port 80, FTP port 20 i 21, DNS port 53 itd... Administrator zavisno po aplikacijama moe ograniiti pristup mrenim paketima. Neki aplikacijski protokoli su izrazito osjetljivi na mrene napade pa je potrebno onemoguiti pristup istima (Telnet, NetBIOS Session, POP, NFS, X Window, ...). Ti portovi su osobiti osetljivi na napad zbog velikog nivoa kontrole koju pruaju

napadau. Neki drugi portovi mogu biti iskoriteni da bi se unitile odreene bitne informacije. Takav port je DNS. 3.5.Filtriranje paketa zavisno o ruti usmjeravanja paketa (eng. Source Routing) Source routing je proces odreivanja tano odreene rute kojom paket treba proi prilikom putovanja prema cilju odnosno prilikom povratnog putovanja. Source routing je originalno koriten za analiziranje i testiranje, ali se u dananje vreme koristi od strane napadaa. Napadai postavljanjem bilo koje IP adrese u polje za izvorite mogu omoguiti da im se povratni paket vrati, stavljajui svoju vlastitu IP adresu. Pri tome oni mogu odrediti tanu stazu kojom paket treba proi, ili odrediti ciljne raunare do kojih paket treba doi. 3.6.Filtriranje paketa zavisno po broju fragmenta paketa U dananjim mreama prevelike poruke se prenose ralanjene (fragmentirane) u manje pakete. Veliina paketa za prenos korienjem IEEE 802.3 standarda jer je ograniena sa maksimalnom veliinom od 1500 okteta. Poetno fragmentirana poruka na izvoritu moe se jo dodatno fragmentirati na usmerivaima preko kojih ta poruka prelazi.Tako ralanjeni paketi se povezuju na odreditu ,podaslanu poruku. Mogue je na firewall-u izvesti filtriranje, na nain da se odbacuje poetni fragmentirani paket koji jedini sadri port aplikacije, i da se pretpostavi na osnovu te logike da e svi ostali paketi biti beskorisni jer nee doi do aplikacije. Takvo filtriranje je danas beskorisno jer napadai mogu prvom odaslanom fragmentiranom paketu umjesto rednog broja 0 dodeliti redni broj 1. Na taj nain bi poruka na kraju stigla do eljene aplikacije.

4. Osnovne Firewall konfiguracije


4.1.Dual Homed gateway Dual-Homed Gateway ("meu-sistemski") je Firewall koji se sastoji od raunara sa najmanje dva mrena adaptera. Ovakav sistem se normalno konfigurie tako da se paketi ne rutiraju direktno sa jedne mree (Internet) na drugu mreu (Intranet). Raunari na Internet-u mogu da komuniciraju sa Firewall-om, kao i raunari sa unutranje mree, ali je direktan saobraaj blokiran.Glavna mana Dual-Homed Gateway-a je injenica da blokira direktni IP saobraaj u oba pravca. Ovo dovodi do ne mogunosti rada svih programa koji zahtevaju direktnu putanju TCP/IP paketa. Da bi se reio ovaj problem, Dual-Homed Gateway raunari izvravaju programe pod nazivom Proxy, da bi prosledili pakete izmeu dve mree. Umesto da direktno razgovaraju, klijent i server "priaju" sa Proxy-jem, koji radi na bastion hostu. Poeljno je da Proxy bude transparentan za korisnike. 4.2.Screened host gateway Screened Host Gateway ("zaklonjeni") je Firewall koji se sastoji od bar jednog rutera i bastion hosta sa jednostrukim mrenim interfejsom. Ruter se tipino konfigurie da blokira sav saobraaj do unutranje mree tako da je bastion host jedini raunar kome se moe spolja pristupiti. Za razliku od Dual-Homed Gateway-a, Screened Host Gateway ne forsira sav saobraaj kroz bastion host; pomou konfiguracije rutera mogue je da se otvore "rupe" u Firewall-u, tako da postoji prolaz i do drugih raunara u okviru unutranje mree. Bastion host je zatien ruterom. Ruter se konfigurie tako da dozvoli saobraaj

samo za odreene portove na bastion hostu. Dalje, ruter se moe konfigurisati tako da dozvoljava saobraaj samo sa odreenih spoljnih raunara. esto se ruter konfigurie tako da se dozvoljava prolaz svih konekcija koje su potekle sa unutranje mree. Ovakva konfiguracija omoguava korisnicima da koriste sve standardne mrene funkcije pri komunikaciji sa spoljnom mreom bez korienja Proxy servisa. 4.3.Virtualne privatne mree (VPN Virtual Private Networks) Virtualne privatne mree (tzv. enkripcijski tuneli) omoguavaju sigurno spajanje dve fiziki odvojene mree preko Interneta bez izlaganja podataka neautoriziranim korisnicima. Zadatak vatrenogzida je da omogui sigurno stvaranje virtualne veze nekog udaljenog raunala sa zatienom mreom. Nakon to je jednom uspeno uspostavljena, virtualna privatna mrea je zatiena od neovlatenih iskorienja, sve dok su enkripcijske tehnike sigurne. Koncept VPN-a omoguava udaljenim korisnicima na nezatienoj strani da direktno adresiraju raunar unutar lokalne mree, to drugim korisnicima nije mogue zbog Network Address Translation-a i filtriranja paketa. Brzina kojom takvi udaljeni raunri komuniciraju sa lokalnim raunarima mnogo je sporija od one koju raunari u lokalnoj mrei koriste. Razlog tome je njihova fizika udaljenost i oslonjenost na brzinu Interneta, ali i procesi enkripcije podataka, filtriranja paketa na firewall-u, i dekripcije originalnih podataka. Kako bi udaljeni korisnici uspeno proli fazu spajanja na lokalnu mreu potrebno je da se uspjeno obavi autentifikacija istih. Ta autentifikacija mora biti kriptirana da bi se spreila kraa podataka od strane napadaa i iskoritenje istih. 4.4.Konfiguracija mree bez servera U sluajevima kada organizacija koja koristi vatrozid ne prua nikakve usluge korisnicima Interneta, vatrozid je dovoljno konfigurirati na nain da proputa samo pakete koji naputaju lokalnu mreu, i pakete koji dolaze kao povratne informacije na temelju uspostavljenih veza. Primer konfiguracije mree bez servera Ova konfiguracija u odnosu na konfiguracije mrea sa server korisnicima je prvenstveno jednostavnija za konfiguraciju, ali i sigurnija za lokalnu mreu. Ali danas je takva mrea izrazito neupeatljiva gledano sa poslovne i informacijske strane. Organizacije sve ee ne koncentriu sve zaposlene i rad na jednom mestu, ve ih rasporeuju po udaljenim lokacijama. U sluajevima kad je potrebno ostvariti vezu udaljenih lokacija, mogue je uz datu konfiguraciju jedino primeniti fiziko povezivanje udaljenih LAN-ova to je za veinu organizacija ipak preskupo. Zbog toga je ovakva konfiguracija rea kod veih organizacija, ali ea kod kunih. 4.5.Konfiguracija mree sa jednim serverom i jednim firewal-om Ukoliko organizacija treba imati servere onda je potrebno konfigurirati mreu i firewall na kompleksniji nain od predhodnog opisa. Lokalna mrea moe biti konfigurisana na nain da se koristi samo jedan firewall i serveri unutar lokalne mree ili izvan lokalne mree. Ako je lokalna mrea konfigurisana na nain da su serveri locirani izvan lokalne mree, konfiguracija lokalne mree i firewall-a moe u potpunosti biti jednaka kao u sluaju mree bez servera. Takva konfiguracija koja ne dozvoljava prolazak

paketa prema zatienoj mrei, ukoliko oni nisu deo neke prethodno uspostavljene veze, osigurava i dalje maksimalnu sigurnost za raunare locirana u lokalnoj mrei. Ali raunari locirani izvan lokalne mree, koji rade kao serveri izloena su razliitim napadima. Zlonamerni napadai su u mogunosti da izvedu DoS (eng. Denial of Service) napad, pri kojem se ostalim korisnicima Interneta, ali i lokalne mree onemoguava koritenje usluga servera. Za organizaciju je ak puno gore od spomenutog napada ukoliko napadai modifikuje podatke koji se nalaze na serveru. Napadai mogu podvaljivati lana obavetenja serveriima , ili ak programe koji su virusi. Time napadai mogu uveliko natetiti ugledu organizacije. Primer konfiguracije mree sa serverima lociranim izvan lokalne mree U sluaju kada je lokalna mrea konfigurisana na nain da su serveri locirani unutar lokalne mree, konfiguracija lokalne mree i firewall-a je sloenija. Osim dolaznih paketa koji su deo uspostavljene veze potrebno je omoguiti i prolazak poetnih paketa samo prema serverima. Primer konfiguracije mree sa serverima lociranim unutar lokalne mree Konfiguracija lokalne mree sa serverima lociranim unutar lokalne mree ostavlja brojne sigurnosne rupe koje veti napadai mogu iskoristiti. Napadai mogu iskoristiti konfiguraciju firewalla koja proputa i poetne pakete kako bi preko servera dospeli do ostalih raunara u mrei ili barem saznali odreene informacije o njima. 4.6.Konfiguracija mree sa jednim serverom i dva firewal-a Ukoliko organizacija treba lokalnu mreu sa serverima onda su prola dva opisana rjeenja neadekvatna jer omoguavaju razliite napade. Koritenjem dva firewall-a, spreavaju se razliiti oblici napada koji bi inae bili mogui. Kao to je vidljivo sa slike , prvi firewall se spaja na Internet i mreu servera, tzv. vanjska lokalna mrea. Izmeu mree servera i lokalne mree smeta se drugi firewall. Politike proputanja paketa koju firewalli primenjuju su razliite. Firewall koji titi unutranju lokalnu mreu proputa samo one pakete prema unutranjoj lokalnoj mrei samo one pakete koji su deo neke uspostavljene veze. Firewall koji je spojen na Internetom mora uz te pakete proputati i pakete koji su namenjeni serverima. 4.5.Konfiguracija mree sa dimilitarizovanom zonom U prethodnom primeru konfiguracije mree potrebno je koristiti ak dva firewalla. Time se usporava brzina prenosa podataka jer podaci prolaze dve obrade, ali i cena cele mree jer je potrebno iskoristiti jedan raunar kao firewall. Reenje za spomenuti problem je koritenje konfiguracije sa demilitariziranom zonom, koja prua jednaku funcionalnost, ali bru i jeftiniju od prethodno opisane. Firewallu pomou kojeg se filtrira mreni promet dodeljene su dve mree: Interna lokalna mrea i Mrea server , tzv. demilitarizirana zona. Na firewallu je potrebno postaviti takvu konfiguraciju koja e proputati na interfejs prema unutranjoj lokalnoj mrei samo pakete koji su deo uspostavljene veze. Prema serverima je potrebno omoguiti slanje poetnih paketa i sa unutarnje lokalne mree, i sa Interneta. 4.6.Firewall-i zasnovani na hostu U ovom se sluaju koristi raunar umesto routera. To nudi mnogo vie mogunosti praenja aktivnosti koje se odvijaju preko firewalla. Dok firewall zasnovan na routeru nadgleda pakete na IP prazini, hostovi prenose kontrolu na novim aplikacijama. Da bi se osigurali od potencijalnih problema koji bi se mogli pojaviti

zbog propusta u implementaciji sigurnosti u uobiajenoj programskoj podrci za mrene usluge, firewalli zasnovani na hostovima obino koriste posebne verzije programa koji pruaju podrku potrebnim servisima. To su najee ogoljene verzije orginalnih programa koje su zbog svoje kratkoe puno jednostavnije za odravanje, pa je i manja mogunost za sluajne propuste (bagove) koji naruavaju sigurnost. Osnovni nedostatak takvih firewalla je potreba za posebnom programskom podrkom za svaki od servisa koji treba podrati za mreu "iza" firewalla. Kao dodatna mera zatite najee se koristi kombinacija zatite na nivou aplikacije i filtrirajueg routinga kojega takoe obavlja sam host ili router. 4.7.Izolaciske mree Izolaciske mree su vrlo sline firewallima zasnovanim na hostu, osim to se izmeu privatne mree i Interneta ne postavlja host nego mrea. Meutim, ta se mrea moe sastojati i od samo jednog vora konfigurisanog tako da i jedna i druga mrea moe pristupiti izolacijskoj mrei, ali istovremeno tako da izolacijska mrea ne proputa direktan promet izmeu privatne mree i Interneta. Glavna prednost izolacijske mree je u tome to omoguava jednostavnije postavljanje i dodjeljivanje novih Internet adresa, naroito kod velikih privatnih mrea koje bi se inae morale znatno rekonstruisati. To u osnovi znai da raunari "iza" izolacijske mree ne moraju imati adrese koje su poznate raunarima na Internetu. Na taj nain se moe prikljuiti cela mrea raunara "iza" firewalla na Internet , koritenjem samo jedne Internet adrese.

Podeavanje IIS-a

Podesavanje Apache-a

Instalacija Apache Servera 5.0

Instaliranje PHP-a

10

Skidanje packet files

11

root pass

12

13

14

Prilikom instalacije Active Directory-a potrebno je postaviti LDAP (instalirali smo WIN server 2003 na virtuelnu mainu). Nakon toga podesili smo IP adresu, Subnet mask, DNS, I preli na instaliranje AD-a. Ispod su screenshoot-vi instalacije AD-a.

Slika 1

Slika 2

Slika 3

Slika 4

Slika 5

Slika 6

Slika 7

Slika 8

Slika 9

Slika 10

Slika 11

Slika 12

10

Prvoseinstaliraapache2komandom Sudoaptgetinstallapache2 Nakoninstalacijeonsenalaziu/etc/apache2/ Mozeseprovjeritidaliradiakosekucauwebbrowserlocalhost(trebalobidaotvoristranicuna kojojpiseIT'SWORKS) Nakontoganamjepotrebnodainstaliramophp5,mysqlbazupodatakaiphpmyadminsasljedecim komandama: Sudoaptgetinstallphp5 Sudoaptgetinstallmysqlclient Sudoaptgetinstallphpmyadmin Naravno,prilikominstalacijemysqlbazeunosimonazivisifruzaadministatorabaze. Nakontogapotrebnojedainstaliramojoomlunajednomvirtualnomhostu. Prvoskinemoinstalacionifajlsastranicejoomla.org.Nakontogajepotrebnodagaraspakujemo. Joomlajespremnazainstalaciju.Sadajepotrebnooticiu/var/www/. Utomfolderusenalazihtmlfajlkojijedefaultikojiseotvorikadseuwebbrowserukucalocalhost. Njegajepotrebnoobrisati. Potomu/var/www/kreiratidirektorijumnazivajoomla(mozeidrugacije)iutajdirektorijprekopirati raspakovanujoomlu.Nakontogapotrebnojeizkomandnogprozora(iliakosteumeuvremenu instaliralinekiGUIsoftverzaupravljenjebazompodataka)kreiratibazujoomlakojucekoristiti joomla. Akostesvedobrouradili,nakonstoukucateuwebbrowserlocalhoststartatceinstalacijajoomle. Kadasejoomlainstalirapotrebnojeizfolderaukojemjeinstalirana(/var/www/joomla/)obrisati instalacionifajl. Sadajejoomlupotrebnostavitinajedanvirtuelnihost.Otvoritedokumentukojemsenalazehostovi idodatejoomlu,sasljedecomkomandom: Gedit/etc/hosts Kadaseotvoriovajdokumentpotrebnojedodatilinijunpr.127.0.0.1joomla.arm.ri.etf.unsa.ba Toznacidajeimehostajoomla.arm.ri.etf.unsa.ba. Potomseotvorikonfiguracionadatotekagdjesedefinisuostaliparametrizahost.Kucamosljedecu komandu Gedit/etc/apache2/sitesavailable/default

UnutardefinicijehostapotrebnojedodatilinijuServerNamejoomla.arm.ri.etf.unsa.ba Toznacidakadauwebbrowserkucamojoomla.arm.ri.etf.unsa.bapokrenutcesenasainstalirana joomla.UnutardefinicijehostapotrebnojeizmijenitiDocumentRootu/var/www/joomla(jersetu nalazijoomla). Spasitepromjeneirestartujeteapache2komandom: Serviceapache2restart Nakonovogatrebalobikaduwebbrowserukucamojoomla.arm.ri.etf.unsa.badaotvoripocetnu stranicunasejoomle.Akozelimodavrsimoizmjenenastranici,potrebnojeukucati joomla.arm.ri.etf.unsa.ba/administratorteselogovatinajoomlukaoadministrator. Sadajepotrebnoinstaliratiwebmail.Prvoinstaliramopostfixidovecotkomandama: Sudoaptgetinstallpostfix Sudoaptgetinstalldovecot Ukonfiguracionojdatotecipostfixasepromjeniimehostauimenasegservera,dodasenasadomena (unasemslucajucrew.arm.ri.etf.unsa.ba).Ukonfiguracionojdatotecidovecotasespecificirajukoji protokolisekoristezapristupsanducetu(unasemslucajupop3iimap4). Nakontogaseu/etc/hostsdodajosjedanhostkojicesekoristitizawebmail. Iu/etc/apache2/sitesavailable/defaultkopirakonfiguracijaonogprvoghosta(znacikopiraseuistu tudatotekusamoispodovog)ipromjeniseServerNameuimeovoghosta(unasemslucaju webmail.arm.ri.etf.unsa.ba)ipromjeniseDokumentRoot(tozavisiodtogagdjeceteinstalirati webmailaplikaciju).Trebanapomenutidaseoveaplikacijemoguinstaliratiiizvandirektorijuma /var/www/samoondatrebadodatipravuputanjuuDocumentRoottoghosta. Sadasepozeljiinstalitranekawebmailaplikacija(unasemslucajusquirrelmail)komandom: Sudoaptgetinstallsquirrelmail Nakontogaseizvrsepotrebnemodifikacijeteaplikacijetakodaonakoristinasudomenu.

Anda mungkin juga menyukai