48
UNIVERZITET U SARAJEVU FAKULTET ZA SAOBRAĆAJ I KOMUNIKACIJE SEMINARSKI RAD INFORMACIONI SISTEMI U SAOBRAĆAJU I KOMUNIKACIJAMA Web tehnologije – razvoj web aplikacija

Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

Embed Size (px)

Citation preview

Page 1: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

UNIVERZITET U SARAJEVU

FAKULTET ZA SAOBRAĆAJ I KOMUNIKACIJE

SEMINARSKI RAD

INFORMACIONI SISTEMI U SAOBRAĆAJU I KOMUNIKACIJAMA

Web tehnologije – razvoj web aplikacija

Profesor: Studenti:V.prof.dr. Mujo Hebibović Edis RuščukićV.asis.mr. Samir Falagić Irna Novalić

Remhad ZolotaSabina Kovač

Page 2: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

2 Seminarski rad Web tehnologije – razvoj web aplikacija

Borko PerendijaSemir Murselović

Sarajevo, maj 2010

SADRŽAJ

UVOD .................................................................................................................................... 3

POJAM WEB APLIKACIJE ............................................................................................ 4

PHP ....................................................................................................................................... 11

MySQL .................................................................................................................................. 14

ASP.NET .............................................................................................................................. 16

AJAX ...................................................................................................................................... 18

HTML, XML ......................................................................................................................... 21

JAVA ....................................................................................................................................... 24

SIGURNOST I RANJIVOST WEB APLIKACIJA ....................................................... 27

ZAKLJUČAK ....................................................................................................................... 34

LITERATURA ...................................................................................................................... 35

2

Page 3: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

3 Seminarski rad Web tehnologije – razvoj web aplikacija

UVOD

U zadnjih deset godina, Internet je prihvaćen od oko milijardu i pol korisnika i poslova kao jeftin kanal za komunikaciju, razmjenu informacija i transakcije sa kupcima. Današnje Web aplikacije su daleko od statitičkih stranica iz sredine devedesetih. Moderne Web aplikacije omogućuju dohvaćanje personaliziranog dinamičkog sadržaja u skladu sa korisnikovim individualnim postavkama. Još važnije, moderne Web aplikacije omugaćavaju unos, procesiranje, pohranu i prijenos povjerljivih korisničkih podataka (npr. osobni podaci, brojevi kreditnih kartica, …) za trenutačno i buduća korištenja. Stvari kao što su webmail, stranice za prijavu (login), forme za podršku, shopping košarice, sustavi za upravljanje sadržajem (CMS) oblikuju moderne Web stranice i prožaju firmama sredstva za komunikaciju sa klijentima.

Korisnici (klijenti) Web aplikacije mogu jednostavno slati i primati podatke putem omiljenog Web pretraživača (Web browser). Najčešće su ti podaci u bazi podataka. Aplikaciji se pristupa preko mreže (Interneta ili intraneta) iz Internet pretraživača (nikakav dodatni softver nije potreban na klijentskom računalu). Web aplikacija generira dinamički sadržaj koji se zatim prezentira u klijentovom pretraživaču. Još jedna prednost za izradu i održavanje Web aplikacija je ta da funkcioniraju bez obzira koji je operacijski sustav ili pretraživač instaliran na klijentskom računalu. Mogućnost popravljanja i održavanja web aplikacije bez uznemiravanja i instaliranja softvera na hiljade klijenata je glavni razlog njihovoj popularnosti.

3

Page 4: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

4 Seminarski rad Web tehnologije – razvoj web aplikacija

POJAM WEB APLIKACIJE

Web aplikacija je aplikacija kojoj se pristupa putem web-a koristeći Internet ili Intranet mrežu.1 Internet = javna mreža temeljena na TCP/IP protokolu (TCP/IP = Transmission Control Protocol/Internet Protocol)Intranet = privatna mreža neke tvrtke ili institucije kojom se podaci također prenoseputem TCP/IP protokola (zaštićen pristup samo korisnicima unutar tvrtke)

Web aplikacije su otvoreni ili zatvoreni sustavi upravljanja sadržajem važnim za vaše poslovanje. To mogu biti "jednostavne" web shop aplikacije, sustavi za upravaljanjem sadržaja, knjigovodstveni sustavi ili specijalizirani sustavi upravljanja i kontrole kompletnog procesa organizacije proizvodnje u najrazličitijim poslovnim granama.Web aplikacije ne moraju nužno značiti da su smještene na internetu i kao takve podložne potencijalnim "napadima hackera" već se lako uz relativno mala uložena sredstva mogu smjestiti u interno okruženje vašeg poslovnog prostora. Web aplikacija je samo naziv za bilo koji oblik software-a (izrađen u nekoj web tehnologiji) koji se izvršava na jednom centralnom mjestu (serveru), a na njega se može istovremeno spojiti neograničeni broj korisnika koristeći samo web browser (Internet Explorer, Firefox i sl.)Korisnici (klijenti) Web aplikacije mogu jednostavno slati i primati podatke putem omiljenog Web pretraživača. Aplikaciji se pristupa preko mreže iz internet pretraživača (nikakav dodatni softver nije potreban na klijentskom računalu). Web aplikacija generira dinamički sadržaj koji se zatim prezentira u klijentovom pretraživaču. Kostur web aplikacija je softverski kostur, koji je dizajniran da podrži razvoj dinamičnih web stranica, web aplikacija i web servisa.

Razlika između Web sajta (čvora), odnosno Web sistema i Web aplikacije:

Web sistem je hipermedijski sistem za prikaz tekstualnih, video, audio i drugih dokumenata. Web aplikacija je Web sistem koji može da izvrši poslovnu logiku pomoću Web browser-a.

Web aplikacije se najčešće sastoje od sljedećih aktivnosti:

1. Korisnik aktivira web preglednik2. Putem web sučelja postavi određeni upit (npr. traži cijenu nekog artikla i sl.)3. Sučelje za upite šalje zahtjev programu na poslužitelju4. Program na poslužitelju daje odgovor na zahtjev koristeći neki izvor podataka 5. Odgovor se iz baze prosljeđuje preko poslužitelja na klijent6. Odgovor preko web sučelja postaje vidljiv korisniku.

1 http://en.wikipedia.org/wiki/Web_application

4

Page 5: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

5 Seminarski rad Web tehnologije – razvoj web aplikacija

Principi rada web aplikacija

Web aplikacija dinamički generira niz html dokumenata koji se mogu vidjeti s pomoću web preglednika

Ako se žele dodati neki dinamički elementi u korisničko sučelje, koriste se skriptni jezici koji se izvode na klijentskoj strani (npr. JavaScript)

Svaka pojedina stranica prikazuje se korisniku kao statični dokument (stranicu), ali se stranice interaktivno mogu mijenjati u aplikaciji

Korisnik može podatke unositi s pomoću web formi koje su uključene u stranice Aplikacija se sastoji od sesija (eng. sessions) Za vrijeme svake sesije, web preglednik interpretira i prikazuje stranice, tj. web

preglednik vrši ulogu sučelja aplikacije prema korisniku.

Razvoj web aplikacija

Problem razvoja Web aplikacija može se rješiti metodološkom i tehnološkom podrškom za svaku fazu procesa. Da bi se kreirala Web aplikacija iole dobrih osobina, sa ograničenim budžetom i vremenom razvoja, projektanti treba da prate precizno definisani razvojni proces, po mogučnosti podržan pogodnim alatima i notacijama. Razlićiti modeli procesa (model vodopada, spiralni model, prototipni model) mogu se prilagoditi i iskoristiti za potrebe razvoja aplikacije.

Osim što se C# programski jezik može upotrebljavati za razvoj stolnih (desktop) aplikacija i (kakve smo do sada obrađivali) i klijent-server aplikacija, može se koristiti i za razvojweb aplikacija.Microsoft okruženje za razvoj web aplikacija naziva se ASP . NET

Razvojni proces web aplikacija:

Faza 1: Korisnički zahtjev i slučajevi korišćenja Faza 2: Analiza Faza 3: Projektovanje Faza 4: Implementacija Faza 5: Testiranje i održavanje

Faza 1. U ovoj fazi se identificiraju korisnički zahtjevi i slučajevi korištenja.

Faza 2. Za vrijeme analize zahtjeva, projektant prikuplja neophodne informacije od naručilaca i budućih korisnika sistema vezane za sadržaj, strukturu, pristup i izgled. Zahtjevi vezani za sadržaj definirajuu informacije specifične za domen aplikacije koje moraju biti raspoložive na samoj Web stranici.

5

Page 6: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

6 Seminarski rad Web tehnologije – razvoj web aplikacija

Faza 3. Bazirana na zahtjevaima, faza projektovanja definira cjelokupnu strukturu web stranice, opisujuči način na koji će ona biti organizovana i kako će se korisnici kretati kroz nju. Bilo koja projektna metodologija se može koristiti, kao što su HDM, RMDM ili OOHDM. Kod projektovanja Web aplikacija HDM razlikuje sloj podataka i sloj pristupa. Sloj podataka je srž aplikacije i modelira strukturu informacije koja predstavlja domen

Faza 4. Faza implementacije kreira Web stranicu na osnovu projekta. U prvom koraku, elementi i veze koji su naznačeni u fazi projektovanja se preslikavaju u odgovarajuće konstrukcije koje poseduje izabrana implementaciona tehnologija. U drugom koraku, stranica se postavlja. Tekuće informacije se ubacuju instanciranjem odgovarajučih struktura koje definiše prethodni korak i definisanjem strukturalnih i aplikacionih veza među elementima. Tada se kreiraju kolekcije da bi obezbedile struktuirane pristupe do sadržaja Web aplikacije.Treći korak uključuje modifikovanje aplikacije da bi zadovoljila posebne zahteve koje koriste Web čitaći koji komuniciraju sa Web serverom korištenjem HTTP. Ovo se može postići prevođenjem implementacije stranice u skup datoteka i direktorijuma koje koristi niz standardnih WWW servera.

Faza 5. Možemo podjeliti održavanje u tri kategorije:

korektivno, je proces popravljanja grešaka koje postoje u implementaciji Web aplikacije. adaptivno - podešavanje Web aplikacije u odnosu na spoljašnje okruženje. perfekciono održavanje, ukljuèuje promenu Web aplikacije kako bi se poboljšao način na

koji su informacije struktuirane ili predstavljene krajnjim korisnicima.

Klijent-server i web aplikacije

Razlika između klijent-server aplikacija i web aplikacija:

-Kod klijent-server aplikacija svaka aplikacija sastoji se od dijela koji se izvodi na poslužitelju (serveru) i dijela koji treba instalirati na korisničko računalo (klijent). Klijent preko svog sučelja daje zahtjeve serveru koji ih izvodi, klijent dobiva izvještaje.

-U slučaju da tvrtka ima veliki broj klijenata, instaliranje i održavanje aplikacija na korisničkaračunala je tada sporo i zahtjevno.

- Kod web aplikacija, nasuprot tome, nije potrebno instalirati aplikaciju na korisničko računalo.

-Web aplikacija umjesto izvršne datoteke (.exe) generira skup dokumenata koji se mogu vidjeti spomoću web preglednika (npr. Internet Explorer, Mozilla Firefox i dr.) koji podržavaju html/xhtml/xml.

6

Page 7: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

7 Seminarski rad Web tehnologije – razvoj web aplikacija

Strukture web aplikacija

Web aplikacije strukturirane su u tri glavna sloja (tzv. troslojna arhitektura ili eng. “three-tiered architecture”):2

1. Prezentacijski sloj – sloj prikaza informacija korisniku putem preglednika

2. Aplikacijski sloj - sloj koji upravlja aktivnostima koje aplikacija treba izvršavati (tj. obradom ili funkcioniranjem aplikacije)

3. Podatkovni sloj – sloj koji upravlja pohranjivanjem podataka u bazu i prikazom podataka iz baze na poslužitelju.

Patern arhitekture Web aplikacija

Patern arhitektura prikazuje šemu osnovne organizacione strukture softverskog sistema,ukazujući na skup predefinisanih podsistema, njihove odgovornosti i moguće veze između podsistema. Mogu se identifikovati tri paterna arhitekture za Web aplikacije:3

• Thin (tanki) Web klijent se koristi za Internet aplikacije sa standardnom konfiguracijom klijenta i browser-om koji podrazumeva rad sa formama. Cjelokupna poslovna logika se izvršava na serveru kao odgovor na traženu stranu od klijent browser-a.

• Thich (debeli) Web klijent se koristi kad se znatni dio poslovne logike izvršava na klijentovom računaru. U tom slučaju klijent koristi dinamički HTML – skriptovane strane na strani klijenta i custom objekti kao što su Java apleti ili ActiveX kontrole za izvršenje poslovne

2 http://www.webmajstori.net

3 http://www.webmajstori.net

7

Page 8: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

8 Seminarski rad Web tehnologije – razvoj web aplikacija

logike. Komunikacija sa serverom i dalje se ostvaruje preko HTTP protokola. Razlika između tankog i debelog klijenta je u ulozi koju ima browser u izvršenju poslovne logike sistema.

Web delivery , pored HTTP protokola, koristi i IIOP, RMI ili DCOM da podrži rad sa distribuiranim objektima. U tom slučaju Web browser se koristi kao isporučilac (delivery) i container uređaj za distribuirani objektni sistem. Ovaj tip arhitekture se odnosi na klijent/server aplikacije sa distribuiranim objektima koje koriste Web server i browser klijenta kao značajne elemente sistema.

Slika 1. Thin Web Client Logical View Slika 2. Logical View of the Thick Web Client architecture pattern

8

Page 9: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

9 Seminarski rad Web tehnologije – razvoj web aplikacija

Slika 3. Logical View of the Web Delivery architecture pattern

Osnove web aplikacije

HTTP - Hyper Text Transfer Protocol HTML - Hypertext Markup Language Forme - Forms Okviri – Frames Tehnologije podrške:

1. Moduli• ISAPI (MS Internet Server API)• NSAPI (Netscape Server API)• JAVA servlets

2. Skriptovane strane• JSP (Java Server Pages)• ASP (MS Active Server Pages)• Cold Fusion

9

Page 10: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

10 Seminarski rad Web tehnologije – razvoj web aplikacija

Primjeri web aplikacija

1. Google pretraga - je zapravo Web aplikacija kojom se pretražuje internet.2. Gmail - jednako popularni i besplatni e-mail servis2. Yahoo - portal i tražilica3. Amazon - najpopularnija Web trgovina4. PayPal - posrednik kod plaćanja5. Facebook - društvena mreža5. Wordpress - jedan od popularnijih blog/CMS sustava6. Youtube - video sadržaji7. Wikipedia - online enciklopedija8. Google Maps - online karta9. last.fm - društveni radio

Višeredne web aplikacije

Višeredne aplikacije imaju sljedeće prednosti: – Neovisni slojevi– Preglednost– Prenosivost

Karakteristike: Tri sloja:

– Prezentacijski sloj (eng. Web layer)– Poslovni sloj (eng. business logic layer) – Podatkovni sloj (eng. data layer)

Prezentacijski sloj = korisničko sučelje - JSP, HTML, XML...Poslovni sloj = poslovna logika, tj. rukovanje podacima - ServletiPodatkovni sloj = baze podataka, skladišta podataka

Prednosti i nedostaci web aplikacija

Prednosti:– Rade bez obzira na operativni sustav koji je instaliran na korisnikovom računalu

(programer ne mora raditi sučelje posebno za Windows, MacOS, Unix, ili dr.).Nedostaci:

– Još uvijek nedovoljno usaglašeni standardi za HTML, CSS (Cascading Style Sheet) i DOM (Document Object Model) od strane proizvođača web preglednika

– Korisnik u svom pregledniku može samostalno podesiti neke parametre prikaza, npr. font, veličinu slova, i dr., pa se narušava konzistentnost prikaza aplikacije

– Brzina rada aplikacije ovisi o brzini mrežne povezanosti sa poslužiteljem na kojem se nalazi aplikacija (brzini Interneta ili intraneta)

– Problemi sa sigurnošću na mreži (zaštita protiv upada, virusa i dr.)

10

Page 11: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

11 Seminarski rad Web tehnologije – razvoj web aplikacija

Prednosti web aplikacija u odnosu na slične "desktop" sustave su mnogobrojne:

- Lako održavanje- Promjene se mogu raditi "on-line" dok je aplikacija aktivna i korisnici ju koriste,- Za pristup aplikaciji korisnik treba samo web browser (tj. PC, Mac računalo, ili mobitel)- Idealne su ako imate više fizički odvojenih lokacija Vaše tvrtke,- Niska cijena (kupuje se samo jedna aplikacija, a ne desetak ili stotinjak licenci po računalu)

Podjela web aplikacija

Prema osnovnoj podjeli web aplikacije možemo podijeliti na slijedeće: Ajax ASP ASP.NET CSS ColdFusion Java EE HTML JavaScript Perl PHP Ruby, including Ruby on Rails CGI ISAPI/NSAPI XML

PHP

PHP je programski jezik interpreterskog tipa namjenjen izradi softverskih aplikacija koje se izvršavaju na Windows ili na UNIX-olikim serverima (npr. Linux). Podržava i proceduralno i objektno orjentirano programiranje. Najčešće se koristi kao razvojna platforma za interaktivne Internet stranice.

PHP je nastao iz PHP/FI kojeg je 1995. godine napravio Rasmus Lerdorf, kombinirajući Perl skripte na svojim osobnim web stranicama. Godine 1997. pojavilo se drugo izdanje PHP/FI-a - verzija 2.0, napisano u C-u.

Danas se koristi nova verzija PHP-a (PHP 5) koja je u potpunosti stabilna. Dolazi sa još više modula za podršku raznim novim tehnologijama (npr. XML), te će omogućava potpuno objekno orjentirano programiranje (prema uzoru na Javu).

11

Page 12: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

12 Seminarski rad Web tehnologije – razvoj web aplikacija

Značajke PHP-a

PHP je open-source server-side skriptni programski jezik za dinamičko generiranje HTML koda.

Drugim riječima, PHP je skriptni programski jezik pomoću kojeg možete kreirati HTML stranicu na serveru prije nego što je ona poslana klijentu popunjenu dinamičkim sadržajem. Govorimo o radu sa template - ima. Ovim načinom generiranja sadržaja klijent ne može vidjeti kod (skriptu) koji je generirao sadržaj koji gleda, već ima pristup čistom HTML kodu.

Open-source u gornjoj definiciji znači da svatko tko želi može skinuti izvorne PHP kodove pisane u C-u i, ukoliko ih razumije, može ih mijenjati po svojoj volji te dodavati nove funkcije PHP-u. Štoviše, svi su pozvani da sudjeluju u razvoju novih verzija PHP-a. Izvorne kodove i instalacijske datoteke možete skinuti sa službenog PHP sitea.

Server-side programiranje i usporedba PHP-a sa ostalim server side tehnologijama PHP je jedna od najnaprednijih i najkorištenijih server-side skriptnih tehnologija danas u upotrebi. On je svojom sintaksom slićan mnogim drugim slićnim jezicima, čak i ima istoznačne (iste po sintaksi i funkcionalnosti) funkcije kao i neki drugi jezici kao što su C ili Perl. To znači da jednu radnju možete izvesti korištenjem više različitih funkcija.

Funkcioniranje PHP-a

PHP na strani web servera predstavlja pretprocesor kome se prosljeđuju PHP skripte. Ovo u praksi radi na slijedeći način, kreirate HTML stranice i u njih dodate i svoje PHP skripte, date stranice obavezno imaju ekstenziju "*.php". Kada ih postavite na web server i korisnik ih zatraži putem svog browser-a, web server će na osnovu ekstenzije prepoznati da se radi o PHP stranicama i proslijedit će ih instaliranom PHP pretprocesoru. Potom će pretprocesor izvršiti programski kod i rezultat vratiti web serveru, koji nakon toga sve šalje browser-u. Rezultat procesiranja su najčešće dinamički kreirane HTML stranice, koje se zasnivaju na podacima iz neke od baza podataka, najčešće MySQL.

PHP datoteke mogu sadržavati:4

o Teksto HTML tagoveo Skripte

PHP datoteke mogu imati nastavak (ekstenziju): ".php", ".php3", ili ".phtml". PHP datoteka se izvršava na poslužitelju, a zatim se vraća pregledniku kao običan HTML.

4 http://pear.php.net

12

Page 13: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

13 Seminarski rad Web tehnologije – razvoj web aplikacija

Tipovi podataka koje podržava PHP su:

o Cijeli brojevi (integer) o Realni brojevi (floating-point numbers) o Tekstualni podaci (String) o Nizovi o Objekti

Varijable u PHP-u

o Varijable se koriste za pohranjivanje vrijednosti, npr. brojeva, stringova ili nizova, kako bi se mogli koristiti više puta u skripti.

o Sve varijable u PHPu počinju znakom: $, ako se znak “$” zaboravi staviti ispred imena varijabli, skripta neće raditi.

PHP funkcije: Operatori u PHP-u

o Array Funkcije o Datum i Vrijeme o Direktorijske Funkcije o File Funkcije o FTP Funkcije o MySQL Funkcije o Regularni Izrazi o Sessions o String Funkcije o Varijable

13

Page 14: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

14 Seminarski rad Web tehnologije – razvoj web aplikacija

MySQL

MySQL je relacioni sistem za upravljanje bazama podataka (RSUBP) koji ima široku primjenu, ujedno je i baza podataka koja se najviše koristi pri radu u PHP-u. Razvijen od Švedske firme TcX. Višenitni je sistem za rukovanje relacionim bazama podataka, kontrolira tko smije koristiti baze, vodi evidenciju o procesima. Baza koja se sastoji od tablica sa stupcima koji su međusobno povezani. Međusobne veze su definirane ključnim vrijednostima u stupcima.

Odnosi u bazi :5

• One-to-One • One-to-Many • Many-to-Many

Kao što smo već spomenuli u uvodu prednost PHP-a pred drugim web skriptnim tehnologijama je rad sa bazama podataka, jedna od najčešće korištenih je MySQL baza podataka. MySQL je poslužitelj za bazu podataka (database server).

Karakteristike MySQL-a:

o Baza podataka u MySQL-u je u relacijskom modeluo Pogodan je za male i velike aplikacijeo Podržava SQL standard (SQL = Structured Query Language, tj. jezik za upite na

relacijskim bazama podataka)o Izvršava se na brojnim platformamao Besplatan je za download i upotrebu

Upiti (queries)

o Upit je pitanje ili zahtjev koje postavljamo bazi podataka.o Upitom tražimo iz baze određenu informaciju i dobivamo povratnu informaciju (recordset

koji odgovara postavljenom upitu)o Upiti se na relacijskim baza obavljaju s pomoću SQL jezika upita

5 http://www.webapplist.com

14

Page 15: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

IlidžaKovači bbDalilaBukva

TarčinLuke 111AdiKalem

ZavidovićiStari drum 19IgorMarković

GradAdresaImePrezime

Redak = jedan slog tablice stupac = jedan atribut tablice

IlidžaKovači bbDalilaBukva

TarčinLuke 111AdiKalem

ZavidovićiStari drum 19IgorMarković

GradAdresaImePrezime

Redak = jedan slog tablice stupac = jedan atribut tablice

Bukva

Kalem

Marković

Prezime

Bukva

Kalem

Marković

Prezime

15 Seminarski rad Web tehnologije – razvoj web aplikacija

Primjer upita:

SELECT Prezime FROM Djelatnici

Ovaj upit traži sve podatke u stupcu Prezime tablice “Djelatnici”, i vratit će sljedeće podatke:

Što je to što MySQL čini tako posebnim:

o Dostupan je na Internetu i pri tome je besplatan. Ovo je veliki kontrast drugim komercijalnim sistemima za baze podataka (kao što su Oracle, MS SQL, Informix i sl.), kreiranih od strane velikih kompanija, koji su pri tome veoma skupi.

o Brzinao SQL-orijentacija

15

Page 16: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

16 Seminarski rad Web tehnologije – razvoj web aplikacija

o Lakoća upotrebeo Portabilnosto Rapidni razvojo Interoperabilnosto Programibilnost

Tipovi podataka u tablici baze:

U tablici baze, atributi (stupci) mogu imati sljedeće tipove:o Numeričkeo Tekstualneo Datumskeo Ostale (enumeracije i set-ove)

ASP.NET

Nešto prije popularizacije PHP-a, na Web scenu stupa Microsoft, izdavanjem Option Packa za Windows NT Server, u kojem unutar IIS-a 4.0 (Internet Information Services) uvodi značajnu novost - prvu verziju tehnologije za web programiranje zvane Active Server Pages ili ASP.

Dvije godine kasnije, izlaskom Windowsa 2000, izlazi i IIS 5.0 sa ASP-om 3.0 što će, budućnost će pokazati, biti ujedno i posljednja inačica "klasičnog" ASP-a.

ASP.NET (Active Server Pages) je Microsoftov jezik za programiranje i kodiranje web stranica koji se koristi zajedno sa HTML-kodovima. ASP koristi skript jezik na strani servera da bi komunicirao sa drugom aplikacijom (koja, npr. obrađuje podatke). Novost kod ASP-a je da se ta skripta izvodi na serveru neposredno prije nego se stranica pošalje korisniku. Zapravo, rezultat izvođenja skripte je nova stranica. Novija verzija ASP-a se zove ASP.NET i dio je Microsoft-ovog NET koncepta.

Prednost ovakvih web stranica jeste to što mogu biti dinamične, interaktivne i sadržiti informacije sakupljene u bazi podataka (eng. database). ASP kodovi se učitavaju direktno na serveru i ne vide se u korisnikovom Internet pregledniku.

Posljednjih godina je kreiranje dinamičkih web aplikacija na strani servera postalo najvitalniji dio web razvoja. Sada, zahvaljujući ASP.NET-u i C#-u, možete izgraditi čistije, moćnije web aplikacije, i to možete uraditi brže nego ikada ranije.

16

Page 17: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

17 Seminarski rad Web tehnologije – razvoj web aplikacija

Nabrojati ćemo nekoliko prednosti ASP.NET-a i to:

- može se pisati sa svim .NET-kompatibilnim jezicima, uključujući VB i C#- ASP.NET aplikacijama stoji na raspolaganju cijela .NET Framework platforma - pisanje iz Visual Studio.NET (GUI, integrisani debugger)- sintaksa velikim dijelom kompatibilna sa ASP (.aspx umjesto .asp je najlakša migracija na

ASP.NET)- dodavanje ASP.NET funkcionalnosti sa samo nekoliko linija code-a.

Korištenje ASP-a u odnosu na druge platforme za razvoj dinamičkih web aplikacijaProces formiranja ASP stranice:6

1. Kreira se HTML stranica zajedno sa skript kodom

2. Kod skripte se izvodi i kao rezultat nastaje nova stranica

3. Nova stranica se šalje korisniku; korisnik ne mora znati da li je ta stranica statička ili je nastala kao rezultat nekog programa koji se izvodi na serveru.

ASP stranice su vrlo slične HTML stranicama, jer sadrže HTML kod zajedno sa skript kodom. Osnovna razlika je dodatni skript kod. ASP stranice imaju ekstenziju .ASP, dok HTML stranice imaju ekstenziju .HTM ili .HTML

6 http://aspjavascript.com

17

Page 18: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

18 Seminarski rad Web tehnologije – razvoj web aplikacija

AJAX

AJAX je skraćenica od Asynchronous JavaScript And XML. AJAX je vrsta programiranja koju je učinio popularnom Google 2005. godine (sa Google Suggest-om). AJAX nije novi jezik programiranja, već novi način da se koriste postojeći standardi. Pomoću AJAX-a vi možete da kreirate bolje, brže i prijateljskije web aplikacije sa stanovišta korisnika. AJAX je zasnovan na JavaScript i HTTP zahtevima.

Karakteristike AJAX-a

Aplikacija temeljena na HTML tehnologiji nefleksibilna je i kao takva teško prilagodljiva dinamičkom sadržaju koji bi se na njoj eventualno nalazio.Preglednik koji pokreće aplikaciju ne bi trebao biti opterećen sveukupnim mogućim sadržajem izbora korisnika u aplikaciji nego samo izvršavanjem aplikacije. Za uobičajenu web aplikaciju temeljenu na HTML tehnologiji, odnosno web stranicu, preglednik nije ništa drugo nego običan terminal. Nema nikakve podatke o tome gdje se trenutni korisnik nalazi u općem toku podataka. Sve te informacije pohranjene su na web poslužitelju, uglavnom u korisnikovim varijablama, što je i uobičajeno. 7

Ukoliko se radi u Java programskom jeziku ili pak u okruženju temeljenom na .NET tehnologiji, varijable pohranjene na poslužitelju su dio već ugrađenih API funkcija, zajedno sa zahtjevima prema poslužitelju, njegovim odgovorima i MIME6 (Multipurpose Internet Mail Extensions) tipovima.

Kao rezultat svake korisničke interakcije sa web aplikacijom, novi dokument se šalje web pregledniku, sadržavajući istu mješavinu podataka. Preglednik tada ponovo odbacuje stari odnosno već prikazani dokument, te nam podnosi novi jer nije prilagođen nikakvim drugim radnjama. Točnije, preglednik ne zna kako bi zadržao bitne stvari iz svih dokumenata, kao i one koje se ne mijenjaju, a osvježavao samo one na koje korisnik utječe. Nakon što korisnik odabere odjavu sa stranice, aplikacija se zatvori.

AJAX aplikacija seli jedan dio logike sa poslužitelja na preglednik. Nakon prijave za rad, nešto složeniji dokument biva poslan pregledniku, a njegov velik dio je JavaScript kod. Ti podaci ostaju na strani korisnika, iako se izgled modela vjerojatno mijenja kao rezultat korisnikove interakcije sa aplikacijom.

7 http://www.asp.net/ajax

18

Page 19: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

19 Seminarski rad Web tehnologije – razvoj web aplikacija

Životni vijek AJAX web aplikacije

U životnom ciklusu Ajax aplikacija, poslužitelj ima dvostruku ulogu. Prva je isporučavanje aplikacije našem web pregledniku. Druga uloga poslužitelja je komunikacija s klijentom. Ta uloga sastoji se od analize upita te isporuke traženih podataka na zahtjev. Kod standardne web aplikacije, sâm kôd poslužitelja je uglavnom vrlo složen iz razloga što mora nadgledati rad korisnikovog toka rada i odluka tijekom izvođenja aplikacije, te cijelo to vrijeme u pozadini obrađivati transakcije. Također, kôd je pisan u određenom jeziku, za određen broj konvencija i pravila koja određuju što poslužitelj može, a što ne može napraviti. Jezik poslužitelja tada može biti vezan za određenu računalnu arhitekturu i operacijski sustav ili samo sklopovlje.

AJAX - web aplikacija

Postoje dvije vrste aplikacija koje danas prevladavaju, a to su desktop aplikacije i web aplikacije. Aplikacije poznate po brzini i vrlo velikoj dinamičnosti su desktop aplikacije dok su web aplikacije puno sporije ali prednost im je što pružaju neke usluge koje desktop aplikacijama nikada neće biti dostupne što je i razlog zbog čega su prihvatljivije od desktop aplikacija. Upravo taj nedostatak brzine ili sporost web aplikacija u odnosu na desktop aplikacije korigiran je razvojem AJAX‐a.

Kod arhitekture softverskog sustava tipa server/klijent koriste se dva tipa klijenata:- “Tanki klijent” (thin client) – je minimalni klijent; minimalno korištenje resursa hosta;

obrada podataka (poslovna logika) je na strani servera.- “Debeli klijent” (fat, rich, thick client) – je klijent koji obavlja i dio posla obrade

podataka; dio poslovne logike je prebacen na stranu klijenta. Tradicionalne web aplikacije radile

19

Page 20: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

20 Seminarski rad Web tehnologije – razvoj web aplikacija

su s tankim klijentima, sva obrada bila je na strani servera, a klijent je prikazivao samo staticki sadržaj u obliku HTML stranice. Najveci nedostatak tankog klijenta je da sva interakcija aplikacije i korisnika ide preko servera. Svaki korisnikov zahtjev treba se proslijediti serveru. Klijentu se odgovor servera vraca opet kao staticki sadržaj.

Ajax problemi

- mnoštvo JavaScripta- potrebno testiranje i manja prilagodba različitim preglednicima- orisnik ne očekuje promjenu podataka na dijelu stranice niti čekanje na prijenos podataka- potrebno vizualno upozorenje- integracija s preglednikom Weba‐a- neprirodna funkcionalnost gumba "Back" i "Refresh"- teško spremanje "trenutne" stranice u Bookmarks/Favorites- Optimizacija za pretraživače Web stranice.

Sigurnost

Kad pokrenemo neku Ajax aplikaciju, web poslužitelj šalje skup JavaScript naredbi pretraživaču koji se nalazi na nekom udaljenom računalo, o kojemu poslužitelj zna vrlo malo. Pretraživač tada započinje s izvođenjem tih istih naredbi. Puštajući preglednik da započne izvršavanje, njegovi korisnici polažu puno povjerenja u Ajax aplikaciju i njezine autore. Proizvođači tog pretraživača kao i razni standardi, redovito pretpostavljaju da to povjerenje nije uvijek opravdano, te su ugradili sigurnosne mjere kako bi spriječili izvršavanje zloćudnog kôda.8

8 http://www.asp.net/ajax

20

Page 21: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

21 Seminarski rad Web tehnologije – razvoj web aplikacija

HTML, XML

HTML

Upotrebljavajući SGML kao predložak, u ljeto 1991. godine napravljene su prve specifikacije HTML-a (Hyper Text Markup Language). HTML je podskup Standard Generalized Markup Languagea (SGML) za razmjenu elektronskih dokumenata.

SGML je meta-jezik za definiranje i standardiziranje strukture dokumenata. SGML tako|er opisuje gramatiku koju možemo koristiti za dizajniranje drugih markup jezika. HTML nije programski jezik kao što su C++, Java, Pascal ili Perl. HTML je bio fiksiran programski jezik sa tačno definisanim setom naredbi, u obliku HTML tagova,kojih se svi HTML dokumenti moraju pridržavati.

Iako je sazrijevao i razvijao se kroz period od svog nastanka do danas, omogućujući manipulaciju i korištenje slika u HTML dokumentima i integraciju sa ostalim tehnologijama, HTML je prvobitno bio namjenjen samo formatiranju teksta, što se može vidjeti i iz njegovog punog imena. Napravljen je kako bi omogućio developerima da definišu kako će se tekst u njihovim dokumentima prikazati na korisničkom računaru, te da omogući korisniku pristup ostalim dokumentima povezanih hyperlinkovima. HTML dokument čine posebni tagovi umetnuti u ASCII dokument. Te tagove tumače programi Web pretraživača, koji oblikuju i prikazuju dokument.

HTML dokument se sastoji od dva logična dijela: glave i tijela.

Glava sadrži informacije o dokumentu; tijelo sadrži informacije samog dokumenta. Kao što se može pretpostaviti, zaglavlje je zatvoreno s <HEAD> i </HEAD, a tijelo je zatvoreno<BODY> i </BODY> tagovima. Glava HTML stranice sadržava informacije vezane uz sam dokument. U zaglavlje se mogu smjestiti različiti tagovi. Tijelo HTML stranice sadržava većinu elemenata koji se vide kad stranicu gledate pomoću Web pretraživača. Tu unosite sve elemente koje želite da ljudi vide, kao što je tekst, grafika, veze (URL-ovi), popisi i tablice.

Osnovna HTML sintaksa sastoji se od tri komponente: tagovi, atributi i URL-ovi. Svaka od tihkomponenti detaljno opisuje kako se ti elementi trebaju oblikovati i prikazati.

Tagovi

Osnovni građevni element HTML-a su tagovi koji govore Web pretraživaču kako prikazati tekst i grafiku zajedno s drugim oblikovanim informacijema. Tagovi se pišu u oštrim zagradama (<tag_name>), a većina tagova treba i završni tag (</tag_name>)

21

Page 22: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

22 Seminarski rad Web tehnologije – razvoj web aplikacija

Atributi

Ponekad tagovi trebaju bolje opisati tačnu informaciju, na primjer, gdje se nalazi datoteka.Atributi se koriste zajedno sa tagovima kako bi dali više detalja o izvršavanju taga.

URL-ovi

Web resursima se pristupa preko opisnih adresa poznatim kao uniform resource locators (URLovi).Sve čemu pristupate na Webu ima URL. HTML koristi URL-ove za određivanje lokacije potrebne datoteke ili druge Web stranice koje su povezane preko hipertekst veza.

Slika: Jednostavna HTML stranica

XML

XML je kratica za EXtensible Markup Language - odnosno jezik za označavanje podataka. Ideja je bila stvoriti jedan jezik koji će biti jednostavno čitljiv i ljudima i računalnim programima.

Princip realizacije je vrlo jednostavan: odgovarajući sadržaj treba se uokviriti odgovarajućim oznakama koje ga opisuju i imaju poznato, ili lako shvatljivo značenje. Format oznaka u XMLu vrlo je sličan formatu oznaka u npr. HTML jeziku. Danas je XML jezik vrlo raširen i koristi se za različite namjene: odvajanje podataka od prezentacije, razmjenu podataka, pohranu podataka,

22

Page 23: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

23 Seminarski rad Web tehnologije – razvoj web aplikacija

povećavanje dostupnosti podataka i izradu novih specijaliziranih jezika za označavanje. XML je standardizirani jezik i za njegovu standardizaciju brine se World Wide Web Consortium.

XML je jezik koji objedinjuje jednostavnost HTML-a i izražajnu snagu SGMLa. Da bi se izradio taj jezik moraju biti ispunjeni slijedećih 10 uvijeta:9

1. XML mora biti izravno primjenjiv preko interneta2. XML mora podržavati širok spektar primjena3. XML mora biti kompatibilan s SGLM-om4. Mora biti lako pisati programe koji procesiraju (parsiraju) XML dokumente5. Broj opcionalnih "feature-a" u XML-u mora biti apsolutno minimalan, u idealnom slučaju

jednak nuli6. XML dokumenti moraju biti čitljivi ljudima, te u razumnoj mjeri jednostavni7. Standard mora biti specificiran što prije8. Dizajn XML-a mora biti formalan i precizan9. Kreiranje XML dokumenata mora biti jednostavno10. Sažetost kod označavanja dokumenta XML-om je od minimalnog značaja

XML atributi

XML atributi nude podatke koji dodatno opisuju XML elemente. Podaci koji se navode kao atributi mogu biti zanimljivi čovjeku koji gleda sadržaj XML dokumenta (npr. ime osobe koja je kreirala poruku) ili računalnom programu koji parsira XML dokument (npr. vrsta i veličina fonta kojim se treba prikazati sadržaj poruke na ekranu). Atributi imaju svoj naziv i vrijednost koja se navodi pod navodnicima.

9 http://www.w3schools.com/XML/xml_xsl.asp

23

Page 24: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

24 Seminarski rad Web tehnologije – razvoj web aplikacija

JAVA

Programski jezik, razvijen od strane Sun Microsystems koorporacije, čija je namjena stvaranje programa, koji se bezbjedno download-uju na vaš računar i odmah interpretiraju, bez straha od virusa ili neke druge štete na vašem računaru.

JAVA je jednostavan, objektnoorijentiran, distribuiran, interpretiran, robustan, siguran,prenosiv, visokoucinkovit, višenitan i dinamicki programski jezik.

Karakteristike JAVA-e

Jednostavnost

- brzo se uči jer je broj stvari koje treba upamtiti malen- iako temeljena na C++ izostavljene su sve nejasne i konfliktne situacije (C++--)- umjesto GO TO naredbe, BREAK i CONTINUE za nadziranje programa- nema pokazivača (programeri se ne mogu oslanjati na memorijske adrese niti saznavati

njihov sadržaj)- automatsko upravljanje memorijom (garbage collector).

Objektna orijentiranost

- usredotočenost na objekte i metode pomoću kojih se obavlja neki posao- osnovni element građenja programa u Javi je KLASA (skup metoda i varijabli koje

obavljaju određeni zadatak)- Java detaljno prati stanje svakog od objekata, a objekti sadrže sve informacije o svojim

matičnim objektima.

Distribuiranost Java ima ugrađene sve osnovne funkcije za rukovanje mrežnim protokolima.

Prenosivost

- neovisnost od platformi- napiši jednom, izvršavaj bilo gdje, bilo kada i zauvijek !- vezana uz značajku – interpretiranje.

24

Page 25: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

25 Seminarski rad Web tehnologije – razvoj web aplikacija

InterpretiranjePrevođenje i izvršavanje Java aplikacije podijeljeno je u dvije faze:

1. Java kompilator iz izvornog koda programa stvara bajt-kod (tzv. J-kod)2. Java izvršni sustav koji interpretira bajt kod i prevodi njegove naredbe u naredbe specifične za računalo na kojemu se izvršava aplikacija.

Robusnost- Javina namjena za opću elektroniku stavila je naglasak na robusnost- precizno određivanje tipova podataka I deklariranja metoda omogucava Java kompilatoru

pronalaženje programskih pogrešaka- Java memorijski sustav sam vodi brigu o oslobađanju i zauzimanju memorije- sustav iznimaka omogučava jednostavnu obradu pogrešaka u programu.

Sigurnost- predmet velikih rasprava- Interpreter provjerava ispravnost bajt-koda tijekom izvršavanja i sprječava izvršavanje

sumnjivog koda i koda koji bi sadržavao nedozvoljene Interpreter određuje memorijski raspored klasa

- Interpreter provjerava svaku od naredbi tijekom izvršavanja, a od 1997 mogučnost “potpisivanja Java aplikacija”.

Učinkovitost

- Java – križanac između interpreter i kompiliranog jezika- brzi interpretirani jezik- JIT (Just-In-Time) kompilatori.

25

Page 26: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

26 Seminarski rad Web tehnologije – razvoj web aplikacija

Višenitnost

- bez ikakvih dodataka, standardno podržava višenitno izvršavanje programa- višenitnost omogučava programeru da unutar svog programa pokrene više niti izvršavanja

i time ubrza rad programa.

DinamičnostJava programu se bez problema mogu dodavati novi objekti8.1.1. Java tipovi podataka

Dvije su osnovne skupine Java tipova podataka i to: jednostavni i složeni.10

Jednostavni- cjelobrojni (byte, short, int, long)- za brojeve s pomičnim zarezom (float, double)- znakovni (char)- logićki (boolean)

Složeni- polja- klase- sučelja

Osnovna osobina JAVA tipova: fiksna domena (podrućje), zbog osiguranja portabilnosti.

10 http://java.sun.com

26

Page 27: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

27 Seminarski rad Web tehnologije – razvoj web aplikacija

SIGURNOST I RANJIVOST WEB APLIKACIJA

Sigurnost Web aplikacija je postala gorući problem unutar cjelokupne sigurnosti Interneta.U zadnje četiri godine čak više od 50% svih ranjivosti u CVE (Common Vulnerabilities andExposures) bazi su ranjivosti Web aplikacija.

Najugroženije i najnesigurnije su Web aplikacije koje su posebno izrađene za određenog korisnika po njegovoj specifikaciji. Najčešće ranjivosti web aplikacija su:

- izvršavanje napadačkog koda- curenje informacija- SQL ubacivanje- razdvajanje HTTP odgovora - SSI ubacivanje

Klasifikaciji Klase ranjivosti, odnosno klase napada se dijele na:

1. Napadi na autentifikaciju

Autentifikacija, sa gledišta Web aplikacije, je proces kojim se provjerava identitet korisnika određene usluge Web aplikacije.Brute force napadi predstavljaju automatizirani proces koji se koristi metodom pogađanja i promašaja kako bi se otkrilo korisničko ime, lozinka, kriptografski ključ ili broj kreditne kartice. Ova vrsta napada je vrlo česta i relativno uspješnaNedovoljna razina autentifikacije nastupa kada Web aplikacija omogućava potencijalnom napadaču pristup osjetljivom sadržaju ili funkcionalnosti, a da se pritom napadač nije propisno autentificirao.Nedovoljnom zaštitom korisnikove lozinke se omogućava napadaču da ilegalno dobije, promijeni ili obnovi lozinku drugog korisnika.

2. Ranjivost na autorizaciju

Autorizacija, s gledišta Web aplikacija, je proces kojim se utvrđuje da li određeni korisnik, usluga ili aplikacija ima potrebna dopuštenja za izvođenje određene radnjeNedovoljnom autorizacijom, Web aplikacija omogućava napadaču pristup sadržaju ili funkcionalnosti koja bi inače trebala biti zaštićena višom razinom sigurnosti.Nedovoljnom kontrolom trajanja korištenja usluge, Web aplikacija omogućava napadaču korištenje starih vjerodajnih identifikacijskih brojeva (engl. Session ID) za autorizaciju.

27

Page 28: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

28 Seminarski rad Web tehnologije – razvoj web aplikacija

Slijed napada je sljedeći:1) Napadač pristupi Web aplikaciji kako bi dobio trenutni Session ID. Web aplikacija mu vraćaSession ID s vrijednošću 1000.2) Pošto napadač zna da se radi o inkrementirajućem algoritmu za generiranje Session ID-a,napadač jednostavno izračuna vrijednost sljedećeg Session ID-a (vrijednost 1001).3) Napadač izmjeni vrijednost Session ID-a unutar Cookie-a ili URL-a na vrijednost 1001 iupućuje zahtjeve Web aplikaciji sve dok se ne prijavi sljedeći korisnik. Nakon što se korisnikprijavi, napadač može korisiti njegove privilegije koristeći izračunati Session ID.

Fiksacija usluge

Fiksacijom usluge napadač podvaljuje korisniku fiksni vjerodajni identifikacijski broj (engl. Session ID), koji kasnije napadač koristi za autorizaciju.Postoji mnoštvo napadačkih tehnika pomoću kojih se Session ID može fiksirati na neku eksplicitnu vrijednost. Najčešće tehnike su Cross-site scripting napadi i posebno prilagođeni HTTP zahtjevi. Cilj ove tehnike je, nakon što napadač postavi Session ID na neku fiksnu vrijednost, sačeka korisnika da se prijavi na tu predefiniranu sjednicu s podvaljenim Session ID-om. Nakon što se korisnik prijavi, napadač upotrebljava taj Session ID, pridobiva korisnikov identitet i koristi njegove privilegije.Bez aktivne zaštite protiv fiksacije usluge, napad se može izvesti nad bilo kojom Web aplikacijom koja korisi Session ID-e kako bi identificirala korisnike. Web aplikacije koje koriste Session ID-e se najčešće oslanjaju na Cookie , nešto manje koriste URL i skrivena polja. Nažalost, upravo Web aplikacije koje koriste Cookie su najranjivije jer je većina današnjih napada usmjerena baš prema Cookie-ma.Uobičajna fiksacija usluge se sastoji od 3 sljedeće faze:1. Postavljanje Session ID-aNapadač postavlja klopku za određenu Web aplikaciju kako bi pridobio njen Session ID,ili postavlja neki vlastito skrojeni Session ID (ovisi o sustavu na koji aplikacija radi).2. Fiksacija uslugeNapadač predstavlja klopku ili vlastiti skrojeni Session ID određenom korisniku, te gauvjerava da ta usluga potječe od sam Web aplikacije.

28

Page 29: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

29 Seminarski rad Web tehnologije – razvoj web aplikacija

3. Ulazak i korištenje uslugeNapadač čeka dok se korisnik ne ulogira na traženu Web aplikaciju. Kada to korisnik napravi,tada napadač posjeduje fiksirani Session ID kojima preuzima korisnička prava i identitet.Pogledajmo sljedeći primjer koji prikazuje fiksaciju usluge. Slika 3.2. prikazuje web poslužiteljonline.worldbank.com na kojem je postavljena bankovna Web aplikacija usmjerena premakorisnicima. Session ID -evi se prosljeđuju korisnicima koristeći URL argument sessionid.

U prvom koraku, napadač koji je također legitimni korisnik bankovnog sustava, se ulogira na poslužioca (1) i dobije session ID s vrijednošću 1234 (2). Nakon toga napadač pošalje posebnoskrojeni hyperlink http://online.worldbank.dom/login.jsp?sessionid=1234 korisniku, te pokušava namamiti korisnika da pritisne hyperlink (3). Korisnik pritišće hyperlink, koji otvara poslužiteljsku stranicu za ulogiravanje u korisnikovom Web pregledniku (4). Potrebno jenaglasiti da je za prilikom prihvata zahtjeva login.jsp?sessionid=1234, Web aplikacija većotvorila sjednicu za danog korisnika i nova sjednica nije potrebna. Na kraju, korisnik upisuje svoje korisničko ime i lozinku (5) te ih prosljeđuje poslužitelju kako bi mu dodijelio pristup bankovnom računu. Ali, napadač također zna session ID , te može pristupiti korisnikovom računu koristeći account.jsp?sessionid=1234 (6). Kako je session ID već bila unaprijed fiksirana prije nego što se korisnik ulogirao, kažemo da se korisnik ulogirao u sjednicu postavljenu od napadača.

29

Page 30: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

30 Seminarski rad Web tehnologije – razvoj web aplikacija

3. Napadi na klijentsku stranu

Napadi na klijentsku stranu su orijentirani prema korisnicima Web aplikacija. Kada korisnik posjeti određenu Web aplikaciju, uspostavlja se povjerenje između korisnika i poslužitelja, odnosno Web aplikacije. Korisnik očekuje od Web aplikacije da će mu ona dostaviti ispravan sadržaj i da se prilikom njegovog korištenja Web aplikacije neće dogoditi nikakav napad na njega.Ubacivanje nepostojećeg sadržaja je vrsta napada kojom napadač želi uvjeriti korisnika da je određeni sadržaj legitiman i da ne potječe s nekog vanjskog izvora.

Primjer: OSL web (slika 4.1). Na službenoj stranici FER OSL-a je primijećena Cross-site scripting ranjivost. Općenito, da bi testirali pojedinu Web aplikaciju na XSS ranjivost, potrebno je ubaciti jednostavnu Javascript alert poruku <script>alert(XSS)</script> u dio Web aplikacije kojise može nanovo vidjeti (najčešće URL ili poruke unutar nekog foruma). Nakon što se postavi poruka, potrebno je pogledati da li će Web preglednik reagirati pop-up prozorom s porukom. Ako se prozor pojavi, to je znak da se skripta izvršila i da postoji XSS ranjivost.

U našem slučaju, posljedica XSS napada je krađa Cookie-a. Koristeći sljedeći skrojeni link koji u sebi sadrži skriptu prikaže se pop-up prozor koji ispiše korisnički Cookie:http://www.osl.fer.hr/index.php?option=com_remository&Itemid=27&func=select&id=<script>alert(document.cookie);</script>Iz primjera je vidljiv način na koji se može ukrasti korisnički identitet.Ovo je jedna od češćih napadačkih tehnika, pa je potrebno provesti dodatne sigurnosne mjere kako bi se izbjegla ova vrsta napada:

30

Page 31: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

31 Seminarski rad Web tehnologije – razvoj web aplikacija

● Onemogućavanje skripti kada one nisu potrebne. Na ovaj način se sprečava izvršavanje kodaunutar korisničkog Web preglednika putem skripti (unutar URL-a), ali i dalje postoji opasnostod posebno skrojenih napadačkih HTML dokumenata koji se najčešće prosljeđuju korisnikuputem e-maila.● Filtriranje korisničkih zahtjeva. Na ovaj način, Web aplikacija uvijek provjerava korisničkezahtjeve i filtrira posebne meta znakove definirane HTML specifikacijom kako bi ustanovila10Slika 4.1. XSS ranjivostda li korisnički zahtjev sadrži skriptu. Ukoliko zahtjev sadrži skriptu, Web aplikacija sprečavaprikazivanje štetnog HTML dokumenta unutar korisničkog Web preglednika.● Kodiranje stranica. Cross-site scripting napadi se mogu izbjeći ukoliko Web poslužiteljpravilno kodira generirane stranice kako bi onemogućio nenamjerno izvršavanje skripti.

4. Logičke ranjivosti

Logičke ranjivosti dozvoljavaju napadačima korištenje napadačkih tehnika koje su namijenjene narušavanju ili zloupotrebi poslovnog toka (engl. workflow) Web aplikacije.Postoje razni primjere aplikacijske logike, a najpoznatiji su: proces za obnovu lozinke, registracija računa ili online kupovina.

Napadi automatiziranim procesima nastupaju kada Web aplikacija omogući napadaču izvođenje automatiziranog procesa koji bi se inače po svojoj prirodi trebao ručno izvesti odstrane korisnika.Narušavanje kontrole procesa nastupa kada Web aplikacija dopusti napadaču zaobilaženje ili promjenu uobičajnog kontrolnog toka aplikacije. Ova vrsta napada je česta ukoliko se korisnički stanje ne provjerava unutar određenih aplikacijskih procesa.

Alati za otkrivanje ranjivosti Web aplikacija

Organizacije koje za svoje poslovne procese koriste Web aplikacije, susreću se s sve većim problemom zaštite Web aplikacija. Čak 95% organizacija su bile žrtve barem jednog sigurnosnog incidenta vezanog uz Web aplikacije.Kako bi se pronašle i identificirale ranjivosti, koriste se različiti alati za ispitivanje sigurnosti. Alati se po načinu rada mogu podijeliti u dvije skupine:

1. Alati za ručno otkrivanje ranjivosti

Ručno otkrivanje ranjivosti je najstarija metoda provjere sigurnosti Web aplikacija. Nekada,ali i danas u manjoj mjeri, programeri u procesu razvoja Web aplikacija, koriste alate za ručno otkrivanje kako bi ispitali Web aplikacije.

31

Page 32: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

32 Seminarski rad Web tehnologije – razvoj web aplikacija

Najčešće ranjivosti Web aplikacija koje se otkrivaju ručnim ispitivanjem su:

● mogućnost modifikacije cijene proizvoda● krađa identiteta korisnika● stvaranje lažnog korisničkog računa● manipulacija poslovnom logikom● povećanje korisničkih privilegija● ilegalni prijenos novčanih sredstava

2. Automatizirani alati za otkrivanje ranjivosti

Glavni cilj automatiziranih alata je automatizacija procesa otkrivanja unutarnjih struktura Web aplikacije i snimanje mogućih točaka napada kako bi se otkrile ranjivosti. Automatizirani alati su složeni sustavi koje provode istraživanje struktura i stabla linkova,analizu i testiranje Web aplikacija u potrazi za tehničkim ranjivostima.

Attack Tool Kit (ATK) je besplatni alat razvijen u Visual Basic-u za Windows platformu koji se koristi za brzo otkrivanje poznatih ranjivosti.

Wapiti je alat otvorenog koda za automatizirano otkrivanje nepoznatih vrsta ranjivostiWeb aplikacija. Napisan je u Python programskom jeziku pod GPL licencom pa se može slobodno koristiti i prilagoditi korisničkim potrebama. Dijelovi Wapiti-a su korišteni u programskoj implementaciji sustava za otkrivanje vrste Web aplikacija.

Sustavi za ispitivanje sigurnosti web aplikacija

Sustav za ispitivanje sigurnosti Web aplikacija je modularni sustav pomoću kojeg se vrši proces otkrivanja ranjivosti u Web aplikaciji. Specijalisti i provaljivači najčešće otkrivaju ranjivosti automatiziranim alatima i analizom programskog koda Web aplikacije otvorenog koda.Nakon otkrivanja ranjivosti, specijalisti opisuju i klasificiraju ranjivost, te naznačuju ranjivi dio Web aplikacije (najčešće parametar) i čak opisuju cjeloviti napad pomoću kojeg se može kompromitirati Web aplikacija.Programski okvir za automatizirano ispitivanje Web aplikacija se naziva WSAT – WebSecurity Assessment Tool.Korištenje modularnog sustava omogućava lakšu prilagodbu postupku ispitivanja ranjivosti Web aplikacija.

32

Page 33: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

33 Seminarski rad Web tehnologije – razvoj web aplikacija

Gledano iz perspektive WSAT-a, postupak ispitivanja ranjivosti Web aplikacije prolazi kroz sljedeće faze:11

- prikupljanja informacija,- određivanje vrste i Web aplikacije - ispitivanje poznatih ranjivosti i analiza uspješnosti napada.

WSAT se sastoji od sljedećih modula:- modul za prikupljanje informacija ili Crawler modul,- modul za određivanje vrste i verzije Web aplikacije ili Fingerprint modul i- modul za otkrivanje ranjivosti ili Exploit modul.

Modul za prikupljanje informacija je zadužen komunikaciju i prikupljanje informacija izWeb aplikacije.Modul za određivanje vrste Web aplikacije, na temelju informacija dobivenih od modula za prikupljanje informacija, utvrđuje vrstu i verziju Web aplikacije.Modul za otkrivanje ranjivosti, nakon otkrivanja vrste i verzije Web aplikacija, pregledava svoju XML bazu ranjivosti kako bi pronašao već poznatu ranjivost za prethodno otkrivenu vrstu i verziju Web aplikacije.

11 http://www.linkovi.net

33

Page 34: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

34 Seminarski rad Web tehnologije – razvoj web aplikacija

ZAKLJUČAK

Web aplikacija je aplikacija kojoj se pristupa putem web-a koristeći Internet ili Intranet mrežu.Problem razvoja Web aplikacija može se rješiti metodološkom i tehnološkom podrškom za svaku fazu procesa.

Svi smo bili svjedoci korjenitih promjena koje su potresale web u zadnjih 10 godina. Do prije desetak godina sajt je bio jedan direktorijum na nekom serveru u kome su se nalazili međusobno povezani dokumenti. Nikakve dinamike među njima nije bilo. Kako se web razvijao polako se počela ukazivati potreba za moćnijim riješenjem, koje će unjeti više dinamike i olakšati razvoj i održavanje web sajtova.

Tako su nastali dinamički sajtovi iza kojih stoje web aplikacije kakve su danas najčešće sreću. Nastali su portal sistemi, sistemi za upravljanje sadržajem, alati za upravljanje projektima, e-banking rešenja i mnoge druge manje ili više kompleksne aplikacije. Ono što je developerima donedavno nedostajalo je mogućnost direktnog odgovora na korisnikov zahtjev bez potrebe za ponovnim učitavanjem kompletne stranice. Zahvaljujući današnjim web aplikacija a prije svega Ajax konceptu 3 developeri su napokon dobili tu mogućnost.

Ako se u obzir uzmu sve činjenice budućnost web aplikacija čini se svijetlom, posebno kada poslovni korisnici uvide sve prednosti koje one donose (pojednostavljeno održavanje, platformska nezavisnost i dr.). Web aplikacije će postajati sve sličnije desktop aplikacijama. Naravno, neke desktop aplikacije nikada neće biti zamenjene web aplikacijama (editori fotografija, razvojna okruženja i tako dalje), ali sistemi za kolaboraciju i upravljanje projektima, skladišta fotografija, sistemi za upravljanje dokumentima i sadržajem, webmail servisi itd. – to su savršena mjesta gdje web aplikacije već danas predstavljaju provjerena i pouzdana riješenje.

34

Page 35: Is Seminar Ski Rad- Web Tehnolgije - Razvoj Web Aplikacija Edis

35 Seminarski rad Web tehnologije – razvoj web aplikacija

LITERATURA

Internet stranice:

- http://www.webmajstori.net- http://www.webapplist.com- http://www.sitepoint.com- http://java.sun.com- http://www.linkovi.net- http://www.w3schools.com- http://www.w3.org- http://www.os-umag.hr- http://www.os-zakanje.skole.hr- http://www.html.net- http://www.html-indexer.com- http://www.php.net- http://pear.php.net- http://oliver.efos.hr- http://www.w3.org- http://www.w3schools.com/XML/xml_xsl.asp- http://www.asp.net- http://aspjavascript.com- http://www.asp.net/ajax- http://www.ajax.org- http://www.java.com- http://java.sun.com

35