Professional Documents
Culture Documents
VrdcentralenAromaiVetlanda
Johan Nilsson
Eddie Tisma
EXAMENSARBETE 2011
DATATEKNIK
UtvecklingavWebbportalfr
VrdcentralenAromai
Vetlanda
Development o f
Web portal for health centre
Aroma in Vetlanda
Johan Nilsson
Eddie Tisma
Detta examensarbete r utfrt vid Tekniska Hgskolan i Jnkping inom
mnesomrdet Datateknik. Arbetet r ett led i den treriga
hgskoleingenjrsutbildningen.
Frfattarna svarar sjlva fr framfrda sikter, slutsatser och resultat.
Omfattning: 10 pong (C-niv)
Datum: 2010-07-13
Arkiveringsnummer:
Postadress:
Box 1026
551 11 Jnkping
Besksadress:
Gjuterigatan 5
Telefon:
036-10 10 00 (vx)
Abstract
ThisexampaperhasbeenmadewiththehealthcarecenterAromain
Vetlanda.Theworkwastodeliveracompletewebportalwithanintegrated
bookingsystem.Theobjectivesweretoprovideacompleteinformative
websiteforAromasuserswiththeoptiontomakeanappointmentfora
vaccinationorhealthcertificate,orderprescriptionsandgetupdate
informationdirectlypublishedbyAromasstaff.AndtogivethestaffofAroma
agraphicalWebinterfacetomanagethecontentandthebookingsystem.
Thereportgoesthroughthebasiclanguageusedandwhy.Furtherittakesup
ithowworksandhowthefinalproductlooksandbehaves.
WerecommendthatyouhavebasicknowledgeaboutHTML,CSSandsome
formofserverlanguagetogetthemostoutofthisreport.
Sammanfattning
DettaexamensarbetehargjortsmedVrdcentralenAromaiVetlanda.
Arbetetgickutpattlevereraenkomplettwebbportalmedintegrerat
bokningssystem.Mlenvarattkunnalevereraeninformativwebbplatsfr
Aromasanvndaremedmjlighetattbokatidvaccinationerochintyg,
bestllareceptochtadelavnyheterdirektpubliceradeavderaspersonal.
Samtattgepersonalenettgrafisktwebbgrnssnittfratthanteraallt
innehllochbokningssystemet.
Rapportengrgrundlggandeigenomvilkasprksomanvntsochvarfr.
Vidareredogrshurarbetetharutfrtsochhurdenslutligaproduktenserut
ochfungerar.
VirekommenderarattmanhargrundlggandekunskaperinomHTML,CSS,
ochngonformavserversprkfrattfutdetmestaavarbete.
Nyckelord
Figurlista
Figur1EttexempelpdengrafiskavynIPHPMyAdmin...........................................................16
Figur2Dreamweaver2010sidhuvudetIfilenindex.php.........................................................17
Figur3ExempelphursidanOmAromasgutidesignstadiet.............................................17
Figur4GoogleTrendsfrsktermen"tidsbokning"..................................................................18
Figur5DepopulrastewebblsarversionermedstdfrCCS3[10].........................................19
Figur6Devanligasteskerhetsriskernaiwebbapplikationer.[11]............................................23
Figur7InloggningsformulrpAromashemsida.......................................................................26
Figur8SHA1krypteringsexempel.............................................................................................27
Figur9MenyniHTMLkod.........................................................................................................30
Figur17SkresultatfrnGoogle................................................................................................33
Figur18Inloggningsformulr.....................................................................................................34
Figur19Anvndare/Administratr...........................................................................................35
Figur20Administrationavbokningar........................................................................................36
Figur21Kopierafrnfregendevecka....................................................................................36
Figur22Visaallabokningar........................................................................................................37
Figur23Hierarkipsidorochundersidor..................................................................................38
Figur24RedigeringsfunktionenRedigerameny.....................................................................39
Figur25BildpGUI:tsomanvndsnrmanredigerarinnehllpsidor..................................39
Figur26BildhanteringgenomCKFinder2..................................................................................40
Figur27Bildspel.........................................................................................................................41
Figur10Bokningsteg1..............................................................................................................42
Figur11Bokningsteg2..............................................................................................................43
Figur12Bokningsteg3..............................................................................................................44
Figur13Bokningsteg4..............................................................................................................45
Figur14Bekrftelsesomskickastillmailen...............................................................................45
Figur15Inloggningmedavbokningskod....................................................................................46
Figur16Avbokningavtid..........................................................................................................47
Innehllsfrteckning
Figurlista.........................................................................................................................................3
1Inledning......................................................................................................................................6
1.1Frord...................................................................................................................................6
1.2Bakgrund...............................................................................................................................7
1.2.1Problembeskrivning.......................................................................................................7
1.2.2Fretagetsbakgrund......................................................................................................8
1.3Syfteochfrgestllningar.....................................................................................................9
1.4Avgrnsningar.....................................................................................................................10
1.5Disposition..........................................................................................................................11
2Teoretiskbakgrund....................................................................................................................12
2.2Programmeringssprk........................................................................................................12
2.2.1HTML............................................................................................................................12
2.2.2CSS...............................................................................................................................13
2.2.3PHP...............................................................................................................................13
2.2.4SQL...............................................................................................................................14
2.2.4JavaScript.....................................................................................................................14
2.2.5jQuery..........................................................................................................................15
2.3Utvecklingsplattform..........................................................................................................16
2.3.1MySQL..........................................................................................................................16
2.3.2PHPMyAdmin...............................................................................................................16
2.3.3Dreamweaver..............................................................................................................16
2.3.4AdobePhotoshop........................................................................................................17
2.4Frunderskning.................................................................................................................18
2.4.1Bokningarpntet......................................................................................................18
2.4.2Anvndningavolikawebblsare.................................................................................19
3Genomfrande..........................................................................................................................20
3.1Inledningsfas.......................................................................................................................20
3.1.2Valavprogrammeringssprk.......................................................................................20
3.1.3Valavprogramutvecklingsmilj..................................................................................20
3.1.4Valavdatabas..............................................................................................................20
3.1.5Frberedandefrgor...................................................................................................20
3.1.5Testmilj......................................................................................................................21
3.2Prestanda............................................................................................................................22
3.3Skerhet..............................................................................................................................23
3.3.1CrossSiteScripting(XSS).............................................................................................24
3.3.2SQLInjections..............................................................................................................26
3.3.3Databaskryptering.......................................................................................................27
3.4Anvndarvnlighetochmlgrupp......................................................................................29
3.5Designochlayout...............................................................................................................30
4
3.5.1Huvudsidan..................................................................................................................30
3.5.2Undersidor...................................................................................................................30
3.5Databasutveckling..............................................................................................................31
3.5.1Designval......................................................................................................................31
3.5.2Avgrnsningarochantaganden...................................................................................32
3.6Skmotorsoptimering.........................................................................................................33
4Resultat......................................................................................................................................34
4.1Designochfunktion............................................................................................................34
4.1.1Inloggning....................................................................................................................34
4.1.2Admingrnssnitt..........................................................................................................34
4.1.3Bokningshantering.......................................................................................................35
4.1.4Menyhantering............................................................................................................38
4.1.5CKEditorVerktygetfrattredigerasidor.................................................................39
4.1.5CKFinderVerktygetfruppladdningavbilder.........................................................40
4.1.6Menybilden..................................................................................................................41
4.1.7Skfunktion..................................................................................................................41
4.1.8Bokningssystemet........................................................................................................42
4.3Databasdesign....................................................................................................................48
5Slutsatsochdiskussion..............................................................................................................49
6Referenser.................................................................................................................................50
7Skord........................................................................................................................................52
8Bilagor........................................................................................................................................53
8.1Bilaga1GoogleTrends....................................................................................................53
8.2Bilaga2Databasdesign....................................................................................................55
1 Inledning
1.1 Frord
Fljanderapportrendelavettexamensarbeteomfattande15hgskoleponginom
DatateknikvidJnkpingsTekniskaHgskola.Rapportenfrklararutvecklandetaven
webbportaltillvrdcentralenAromaiVetlanda.
Projektetharhjlptossattfendjupareinsiktomhurutvecklingsprocessenserutfr
attutvecklaenomfattandewebbportalfrettstrrefretag.
VivillfrstochfrmsttackaAromafrattdegettossmjlighetenattutfra
examensarbetetochfrdentiddesjlvalagtneriprojektet.Vivillockstackafr
handledarefrdenenergihonlagtnerfratthjlpaoss.
Jnkpingmaj2011
EddieTismaochJohanNilsson.
1.2 Bakgrund
1.2.1 Problembeskrivning
DettaexamensarbetergjorttillsammansmedVrdcentralenAroma.Aromarenhelt
nyetableradprivatvrdgivaremedambitionenattbedrivaenmodernprivatvrd.
Drfrmnardeattutvecklaenmodernhemsidamedmjlighetenattbokatideroch
hanteraendelrendendirektgenomhemsidan.Tankenrattderasanvndareska
kunnavndasigtillhemsidanfrhjlp.Devillvenattdenskafungerasomettverktyg
frattunderlttaspecifikaarbetsuppgifter.
Projektetomfattardesign,implementeringochdokumentation.Hemsidanskall
innehllafunktionerfr:
Tidsbokning
Kontaktformulr
Editeringavinnehll
Admingrnssnitt
Skfunktion
Bestllningavrecept
Databas
Devillattsidanskavaraklarisambandmedderasppningijuni2010.Hemsidanska
varaonlinepettwebbhotellmedettegetdomnnamn.
Frutomdefunktionersomsidanskainnehllafinnsdetvenviktigapunktersom
berrprojektet,nmligen:
Anvndarvnlighet
Utseende
Prestanda
Skerhet
Inomanvndarvnlighetenliggertyngdenfrmstiattsidanskavaralttnavigerad,
funktionellochtydlig.UtseendetgrsutefterAromaskravochriktlinjertillsammans
medvrexpertisfrattpbstasttgeanvndarenettbraintryck.Gllandeprestanda
handlardetmestomsmoptimeringarfrnvrsidasomutveckladehemsidan,genom
atttillexempelhanteradatabaskopplingarpettsnabbtochsmidigtstt.
Urettskerhetsperspektivrdetviktigtattpersonligahandlingarintekommerifel
hnderochatthelasidanrskertfrnolikaintrng(tidsbokningenfrstochfrmst).
1.2.2 Fretagets bakgrund
VrdcentralenAromappnadesiVetlandajuni2010.Isambandmedvrdvaleti
Jnkpingsln2010blevdedenstrstanyetableradeprivatavrdgivaren.
Ambitionenrattbedrivaenmodernprimrvrdavhgstamedicinskakvalitprglat
avettvarmtpersonligtbemtande.Devillskapaenintressantochstimulerande
arbetsmiljgenomattarbetaprofessionelltochteambaseratstt.Devillguida
invnarnaiVetlandakommuntillenfriskareframtidochvillfrvaltafrtroendetmed
omsorgochstrstarespekt.
Frattkortfattadeviktigastemlenlistarvidehr:
Hurgrvisidansanvndarvnligsommjligt?
Vilkenmlgruppkommersidanattha?
Vadbrvigrafrattanpassaosstillmlgruppen?
Hurskaviutformasidan?
HurvillAromaattsidanskaseut?
VadharAromafrbehovavhemsidan?
Vilketintryckvilldegeenbeskare?
Hurskavigrasidansskersommjligt?
Hurkommermantadmingrnssnittet?
Hurskaviskyddadatabasenochdesskopplingar?
Hurskatidsbokningenfungera?
HurskaAromahanteratider?
Finnsdetngotbefintligtsystemsomsidanskaintegrerasmed?
Vilkauppgifterkrvsavenkundfrattkunnabokaettmte?
Hurvanligtrdetmedtidsbokningarpntet?
Denmestavgrandedeleniprojektetratthemsidanskaeffektiviserapersonalens
arbete.Tankenvarattmanskullegradettagenomattimplementerafunktionerp
hemsidanfrattkunnahanteradevanligasterendensomidaggrsfrhand.Saker
sombestllningaravrecept,fsvarpolikafrgorochtidsbokningarrngraexempel
psdanafunktioner.
DetslutgiltigamletmedsidanvarattAromaskullefigenomdetsomdebegrav
sidan,attdenuppfyllerderaskravsamtattdeskulleblisnjdasommjligt.Samtidigt
villevisjlvklartlraosssmycketsommjligtunderhelaprojektetsgng.
1.4 Avgrnsningar
Vivaldeattavgrnsaosstillattendastimplementeradeviktigastefunktionernap
hemsidan.Skfunktionenochadmingrnssnittetrngraavdesakersomviintehade
hgprioritetp,utanfokuseradeistlletphurmanskaadministreratidsbokningarna
ochediterainnehllpsidanpettsmidigtstt.
Vaddetgllerskfunktionensfinnsdetettflertalolikafrdigaskmotorersomman
kananvndasigutav,mensomdockkostarpengar.GoogleSiteSearchrettexempel
psdansommanbarabehverinkluderaochdrefterkananpassaefterbehov.
Nackdelenrattprisernabrjarp100dollarperr[1],svivaldeattgraenegen,
menganskasimpelskfunktion.Vibestmdeossfrattkollapolikaalternativfrdet
omdetskullebliaktuelltiettsenareskede.
Detvarlikadantmedadmingrnssnittetsomanvndsfrattunderhllawebbsidorna,
alltsskrivainnyheter,lggatillnyalnkarellerbarandratextpsidorna.Detfinns
enormtmycketspelrumhrmenislutndanvaldeviensmidiglsningsomrlttatt
anvndaochsommanintebehverhasmycketkunskapomfratthantera.
Vikundegjortendelsakerfrattfrbttraskerhetenytterligare,tillexempelgenom
attanvndacertifikatochkryptering.Nackdelenrattdeflestalsningarnasomr
acceptablainomdettaomrdekostarpengar.Svenhravgrnsadevioss.
Omtidenrckertilltnkteviveninfraenstatistiksidasomvisarantaletbokningar,
antaletmailsomskickatsgenomkontaktformulretochantaletbeskarepsidanfr
attlttarekunnaverskdasidansfunktioner.
Ytterligareavgrnsningsomrdenrvalavwebbhotell.Dettarngotsomkanndras
efterhandsdepverkarintesjlvautvecklingenavhemsidanavsevrt.Viskrev
hemsidaniPHP,sdetndrakravetvarattwebbhotelletskullestdjadet,menvivalde
attinteattlgganerngontidfrattjmfraolikahotellfrattkunnahittadenallra
bsta.Istlletvaldeviettwebbhotellsomvianvntossutavtidigare,somvarnratill
handsmedbraservice.
10
1.5 Disposition
Teori
Iteoridelentarviuppteorinsomliggertillgrundfrrapporten.Vijmfrolika
programmeringssprksomvaritintressantafrprojektetochfrklararvarfrvihar
anvntdem.Vifrklarardeolikautvecklingsmiljernaviharanvntfrolikamoment.
Detfinnsvenenfrunderskningpolikasktermergllandebokningarpntet.
Genomfrande
Frklararvalavprogrammeringssprk,utvecklingsmiljer.Vidarefrklarashuroch
varfrvianvndeossutaventestmilj.Vigrvenigenomviktigapunktersomvi
anvndesomutgngspunktnrviutveckladedatabasenellerimplementerade
skerhetslsningar.
Resultat
Idettaavsnitttarviupphurresultatetblev.Vifrklararvarjemomentochvisarmed
bilderhurdetserutochtankarvihadenrviutveckladedet.Islutetfinnsven
resultatetochtankarkringvrunderskningmed.
Diskussion
Frfattarnasegnareflektioner,valavmetoderochproblemsomvistttp,och
eventuellafrbttringariframtiden.
11
2 Teoretisk bakgrund
2.2 Programmeringssprk
Frattnvrtmlanvndeviossutavfleraolikaprogramsprk.Ommanbaraskulle
anvndaHTMLfrmaninteendynamiskhemsida,varfrPHPintroducerades.Drefter
villevivenattAromasjlvaskullekunnaskrivainnyheterochediterasida,vilket
leddeosstillendatabasiformavSQL.Vidaresintroduceradesflerochflersprkoch
vikommeridetattverblickavarochenochfrklaravarfrvianvnderossutavjust
detsprketidettaavsnitt.
2.2.1 HTML
HTML,ellerHyperTextMarkupLanguagesomfrkortningenstrfr,utveckladesaven
personvidnamnTimBernersLeesomjobbadefrfretagetCERN.Hanansgatt
fretagetbehvdeettsystemdrforskarnakundedelamedsigavsinaelektroniska
dokumentochbrjadedrfrutvecklaettinternetbaserathypertextsystem[2].Detta
utveckladesunderdensenaredelenav90talettillattblidenfrstaversionenav
HTML,somidagrdetdominerandeuppmrkningssprketfrwebbsidor.
HTMLrettverktygfrattskapastruktureradeelektroniskadokumentmedhjlpaven
samlingelement,t.ex.paragrafer,listor,lnkar,citationsteckenmm.Dettillterven
inbddningavbilderochobjektiettdokumentochkanvenanvndasfrattskapa
interaktivaformulr.ElementensombyggeruppHTMLkodenbestravskallade
taggaromgivnaavvinkelparentesert.ex.<HTML>.Mankanvenanvndainbddning
avscriptidokumentetfrattndrabeteendeochutseendepvanligHTMLkod.Ett
sdantscriptrJavaScript(se2.2.4).EnannanviktigdelavanvndningenutavHTMLr
CascadingStyleSheets(CSS)(se2.2.2)somanvndsfrattdefinierautseende,layout
ochformateringpinnehlletiettHTMLdokument.Dessakommerviocksatt
frklararistrredetaljsenareiarbetet.
HrnedanfljerettkortexempelphurviharanvntHTML.
Denhrkodenharvianvntfrattskrivautsidfotenmedallakontaktuppgifter!
XHTML(ExtensibleHyperTextMarkupLanguage)rettsprkavklassenXML
XHTMLrenkombinationavdetstruktureradesprketXMLochdenallmntanvnda
standardenHTML.Dettagerprogrammerareettkraftfulltverktygsombyggerp
HTMLsspecifikationermensomhardenstriktastrukturenhosXML.
12
2.2.2 CSS
CascadingStyleSheets(CSS)rettstilmallssprksombeskriverhurolikastilarska
presenterasiettstruktureratdokumentssomHTMLellerXMLdokument.
CSSteknikenrutvecklatavHkonWiumLieochBertBossomlanseradesprket
frstagngeniwebblsarenArgo1994.[3]
CSSkanapplicerasdirektiHTMLsidhuvudetomgivenavtaggarna<style></style>.
NackdelenmeddettarattommanharflernettHTMLdokumentrmantvungenatt
upprepakodenivarjedokument.LsningenpdettarattinkluderaenCSSfili
sidhuvudet.Nedanfljerettexempel.
<link rel="stylesheet" type="text/css" href="css/body.css">
Dettaexempelvisarhurtypebeskrivervilkettypavdokumentdetrochhrefpekarp
undermappencssochdokumentetbody.css.
Dukansedandefinierastilarfrdeelementsomdunskarattmanipulera.Nedan
fljerettexempel.
CSS:
p{font-size 14px; color: #000;}
HTML:
<p>Hello World !</p>
UtskrifteniwebblsarenblirdtextenHelloWorld!medenstorlekp14pxoch
frgensvart.
Sprketrnuuppeisintredjeupplaga(CSS3)somgeranvndarenfleravancerade
stilalternativ,ssomattgedivarochboxarskuggorochrundandehrn.Vilketendast
varmjligtgenombilderitidigareversioner.Idagharnstanallamodernawebblsare
avsenasteversionstdfrCSS3.DockansesinteCSS3nnuvarawebbskerddet
fortfaranderenstordelavbefolkningensominteanvnderdensenasteversionenav
sinwebblsare.
2.2.3 PHP
HypertextPreprocessor(PHP)rettvlkntwebbserversprkkomutfrstagngen
1995.[4]
PHPrskapatRasmusLerdorf,endansk/grnlndaresomfrstbrjadeutveckla
sprketfrattunderhllasinegnapersonligahemsida.Hanvaldedattkalladedetfr
PersonalHomePageToolsmenhandptesedanomtillPersonalHomePage/Forms
Interpreterdhanskrevomskriptenfrattkunnakommunicerameddatabaseroch
arbetamedwebbfomulr.
13
2.2.4 SQL
StructuredQueryLanguage(SQL)rdatabassprksomanvndsatthanteradatai
relationsdatabasersomursprungligenrbaseradprelationsalgebra.[5]
SQLkommerigrundenifrn1970dDrEdgarF.Coddpubliceradeenartikeli
AssociationforComputingMachinery(ACM)journal[6]somskullestfrgrundenav
relationsdatabashanteringssystem.
IBMbyggdevidarepCoddsmodellochskapadesammarSEQUEL(structured
enligshquerylanguage)somsenareskullefnamnetSQL.
SQLsatseranvndsfrattmanipulerainnehlletidatabasen.Satsernakananvndas
frattskriva,lsa,ndradataochtabelleridatabasen.SQLanvndsdrfrframfrallti
webbshopparellerliknandesidordrmanbehverspara,lsaochhanteramycket
data.
Kodexempel:
SELECT namn, arbetsplats FROM Person WHERE stad = 'Jonkoping' ORDER BY
namn ASC;
Dettaexempelvljernamnocharbetsplatsfrntabellenpersondrradenstadrlika
medJnkping,resultatetreturnerassedanibokstavsordningberoendepnamni
nedstigandeordning.
2.2.4 JavaScript
JavaScriptrettobjektorienteratprogramsprksomrskapatavNetscapeoch
nrmarebestmtBrendanEich.r1995ansgmanattHTMLbehvdeettskriptsprk
somvarlttattanvndaavbdeamatrerochprofessionellawebbutvecklare.
UrsprungligensgickJavaScriptundernamnetMochasomsenarendradestill
Livescript,menunderutvecklingenavprogramsprketsbrjadeNetscapestdjaSun
MicrossystemsprogramsprkJavasvaldemanattkalladetJavaScript.[7]
JavaScriptkanimplementerasdirektihtmlkodendrkodenexekverasiwebblsaren
avenJavaScriptmotor.DJavaScriptkodenkrspklientsidan(webblsaren)s
behvssidinnehlletinteladdasom,vilketgrdetvldigtanvndarvnligt.Detr
drfrvldigtsmidigtochvanligtattanvndaJavaScriptfrattkontrolleraochvalidera
t.ex.inputfltiformulrinnandetskickastillenserver.
JavaScriptkanvenanvndasfrattbyggaspelochavanceradefunktioneri
webblsarenmendetanvndsprimrtfrattskapadynamiskafunktionerp
hemsidor.
Kodexempel:
<script type="text/javascript">
14
document.write("Hello, World!");
</script>
DettaexempelskriverutHello,World!iwebblsaren.
2.2.5 jQuery
jQueryrettsnabbladdatlttviktsJavaScriptbiblioteksomanvndsfrattlttkunna
manipulerat.ex.HTMLochCSSelementpettenkeltsttmedbarangrafraderkod.
jQueryrfrnbrjatutvecklatavJrnZaefferochBrandonAaron.Frstareleasenav
jQuerykomden26augusti2006somsnabbtblevvldigtpopulrtochridagdet
absolutmestanvndaJavaScriptsbiblioteketsomfinns[8][9].
jQueryimplementerasenkeltisidhuvudetiHTMLkoden,detrenendafilsom
innehllerDOM,event,effekterochAJAXfunktioner.Detkanenkeltinkluderastillen
lokalkopia:
<script type="text/javascript" src="jQuery.js"></script>
Ellerhnvisadirekttillenkopiapinternet:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/latest/jquery.js"></sc
ript>
Dukansedanenkeltlsaochmanipuleraelementit.ex.HTMLkodenellerhmta
postadevariableriURLochsvidare.Nedanfljerettexempel:
<script type="text/javascript">
$.ajax({
type: "POST",
url: "post.php",
data: "namn=Johan&stad=Jonkoping",
success: function(msg){
alert( "Datanrskickad:" + msg );
}
});
</script>
Dettaexempelpostardatannamn=Johanochstad=Jonkopingtillpost.php.Nr
begranrklarsfrdusvarsmeddelandetpattdatanrskickad.
15
2.3 Utvecklingsplattform
2.3.1 MySQL
VianvndeMySQLsomdatabashanterareivrtarbete.Detrenfriprogramvarasom
idagrenavdetmestpopulradatabashanterarnapmarknaden.MySQLkrsp
servernochgeranvndarnatillgngtillsinadatabaser.VianvnderMySQLframfrallt
frattdatabasverktygetvianvnder,PHPMyAdmin(se2.2.2)administrerardet.
2.3.2 PHPMyAdmin
Fratthanteradatabasenpettsmidigtsttanvndesettwebbinterfacesomkallas
PHPMyAdmin.DenbestravppenkllkodsomrskriveniPHP(se2.2.3)somlter
anvndarenkrakompliceradeSQLkommandongrafiskt.Mankandenkeltskapaoch
administrerasindatabasdrdudirektkansevaddinatabellerochraderinnehller
utanattbehvalistadetiwebblsaren.
PHPMyAdminridagettavdemmestpopulraadministrationsverktygensomfinnsp
marknaden.
Figur1EttexempelpdengrafiskavynIPHPMyAdmin
2.3.3 Dreamweaver
SomtexteditorfrattskrivavrkodanvndesDreamweaver2010,somrett
webbutvecklingsprogram.VivaldeattanvndaDreamweaverp.g.a.ngraviktiga
funktioner.Mjlighetenattanslutaochsparadirekttillenwebbserverfrattkra
serverskript.Funktionenattskaochersttatextochkodefteranvndarens
sktermer.KontrollenavsyntaxfelibdeJavaScript(se2.2.4)ochPHP(se2.2.3),och
16
automatiskautskrivnaskvgartillfilerrngraavdesmidigafunktionernasom
Dreamweaver2010geranvndaren.
Figur2Dreamweaver2010sidhuvudetIfilenindex.php
Figur3ExempelphursidanOmAromasgutidesignstadiet
17
2.4 F
Frunderrskning
2.4.1
1 Bokning
gar p nttet
MedhjlpavGo
oogleTrend
dskanmanuunderskao
olikaskord
dochsestaatistikphu
ur
mnggatrffarju
ustdetspecifikaskorddenhar.Staatistikeninkkluderarveenenprogn
nos
frhurdetkanb
blingotrframt.
ndersktengraskterrmerfrattfrskasehurintressetkankom maattseuti
Viun
framttidenfrjusttidsbokningar.Skteermernaviunderskte
evar:
tidsbokn
ning
bookonlline
ooking
onlinebo
bokaonline
Ivrttfallrdetlitemernischatddetthandlarom
mbokningarfrvaccinnationellerintyg,
menvikanndanvndao
ossavdennaainformatio
onfrattf
enlitenanningomtvvilket
hlld
detrrsigt.GrafeniFigur4visaarhurskm
mngdenharrkatdirekktattdet
komm
merblimerrochmervaanligtattbookatidervverntet.Frattsealllagrafer
hnvvisarvitillBiilaga1.
Figur4GoogleTreendsfrskte
ermen"tidsb
bokning"
ntressantatttseallagraafer.Detmaankanserrattskninggarnakarvvarje
Detrganskain
r.Slutsatsenkaandvaraaattalltmerfflyttarvertillntet,atttbokamtten,hotell,resor
Aromasvalaatt
ellerbilarrbarrangrasakkersomkaatdensenasstetiden.DrmedrA
utkaaverksamhetentillatttkunnabokkatiderpn
ntetettvlldigtbravall,ochngottsom
18
grattdehamnarpdenmodernarefrontenochstickerutmerjmfrtmedmnga
andravrdcentraler.
Figur5DepopulrastewebblsarversionermedstdfrCCS3[10].
19
3 Genomfrande
3.1 Inledningsfas
3.1.2 Val av programmeringssprk
Nrvivisstehursidanskulleseutochvilkafunktionerdenskullehavardetganskaltt
attvljaprogrammeringssprk.Tillskillnadfrnvanligprogramutvecklingsskiljersig
webbprogrammeringenheldel.Vanligtviskanmanprogrammerai
C/C++/Python/Perl/Rubyellerngotavdehundratalssprkensomfinns,ochdetsom
grattgraienasprketgroftagriettannat.
Nrdetgllerwebbenmstemanfrstavetavadsidanskahafrfunktionerinnan
manvljerprogrammeringssprk,sefteratthasattuppvramlvaldeviattanvnda
ossutavPHP,frmstfrattdetrdetmestanvndasprketnrdetgllerserverside
programmeringfrwebbutveckling,menocksvldigtkraftfullt.PHPtillsammansmed
SQLrckervldigtlngt.UtverdetanvndevidevanligasprkenHTML,CSSoch
JavaScriptsomansesvarastandardnrdetgllerhemsidor,dessagroftasinte
undvikaommanskagraenlitemeravanceradhemsida.VianvndevenjQuery,dock
barabegrnsattillfunktionensomblddrarbilderivrtbildspel.
Harningonbefintligdatabassomnivillattviskaintegrerasidanmed?
Harlandstingetngrarestriktionernrdetgllerattboka,t.ex.
vaccinationer?
Hurskaenanvndarelegitimerasig?relegitimationndvndig?
Skaenanvndarekunnaavbokatider?Hurskavilsadet?
20
3.1.5 Testmilj
FrattAromaskullekunnatadelavutvecklingenavsidanvaldeviatthatvsidoruppe
samtidigt,bdamedvarsindatabas.Ensomvaronlinefrderaskunderochensomvi
arbetadepkontinuerligt.Attvivaldeattgradettavarfrattdetlttblirfelnrman
hllerpocharbetarpsidan,mankanskeskriverngotfelikodensmanfrett
felmeddelandeochrkarskrivaettfeliCSSfilenshelasidanserkonstigut.Dettavill
visklartinteattkundernaskarkautfr.
Attanvndatvdatabaservarngotvikomattbehvalitesenaredvitmde
databasenlitedochdellertestadenyafunktionersomskulleutvecklas.Vivilleinte
hellerattoriginaletskulleriskeraattfrsvinna,svisparadedetviktigaienegen
databassomsenarekomattblidenversionensomvarliveochsomviuppdaterade
medutvecklingssidannrviansgdenvarastabilnog.
DettaunderlttadevensamarbetetmedAromaenheldel,eftersomdenrsomhelst
kundeginplnkentillutvecklingssidanfrattsehurlngtviharkommit.Dekunde
ockskommamediderellerkikapsakersomvisjlvakommitframtillochdrefter
kommamedkritikredaniutvecklingsfasen.
21
3.2 Prestanda
VirknarintemedattAromakommerhaextremtstorabesksvolymer,pgrundav
dettaharprestandaoptimeringarintevaritensstordelavvrtarbete.Dockharvi
ndtnkpattoptimerafrfrgningarnatilldatabasensmycketsommjligt.Det
handlaregentligeninteomoptimeringutansnarareomattskrivabrakod.
Ngrasakersomvitnkprhurredundanskommerpverkadatabasenilnga
loppen.Vivillsklartinteattdetskalikamassaspkposteridatabasensomliggerkvar
ochbaratarplats.EttscenariornrAromatarbortenlnktillensidaskainnehllet
dfinnaskvarellerskadetockstasbort?Vivaldeatthakvardessa,utifalldengon
gngvilllggatillbakalnken,menocksomdekanskerkadetabortlnkenav
misstag.MenvirknademedattAromaintekommerndrasinamenyerspassofta,
derasfokuskommersnarareliggapattuppdaterabefintligasidor.
VianvndervenendelJavaScriptkodsomkrslokaltpanvndarensdator.Viharen
funktionsomgromlnkensdenskrivsmedfetstilfrdenaktivasidan.Dettagrsp
tvmenyerochfunktionenkrsenkeltgenomenkodsnuttsomkrsibodyonload
taggen.
NgotannatsomoptimerarsidanytterligarerattvianvndareossavCSSfilerfratt
separerakodochdesign.Dettamedfrattngonsomsurfarinpsidanintebehver
laddaHTMLkodsominnehllerdesignellerformateringfleragnger,utandetrcker
medattladdaenexternCSSfilengng,drefterkommerdensparasicachenoch
laddasdrifrn.
22
3.3 SSkerhett
Dettaarenpunktsomryttterstviktigg.Eftersomsidankanuppdaterasddirektgenomett
admingrnssnitttdrmanko
ommerttiidsbokninge
enochandrrafunktioneerfrunderrhll
rdeetviktigtattskerheten
nrhgpsidan.Detffinnssklarttvissasakerrmanintekkan
skydd
dasigemott,tillexempelomngonurperson
nalenpAro
omaskullerrkatappab
bort
sittl
senordsn
ngonutom
mstendekoommertdet.
Viharfrskttnkapdetallravrstascenariono
ochhurviskkakunnaskkyddaossm
mot
det,ffrstochfrmstgenom
mattfrskaafrhindraintrng,ochgrinteddethurkanvi
graskadornassmsomm
mjligtochhurtckerviigenske
erhetshlenomngotsskulle
intrfffa.
Fiigur6Deva
anligasteskeerhetsriskern
naiwebbapp
plikationer.[111]
Denaallravanligaasteskerhe
etsriskenpdagenswe
ebbsidorrCrossSiteSScripting(XSSS),s
viharrvaltatthaaenegense
ektionfrdeettadrvifrklararvad
ddetr,hu rdetfrhindras
ochvvadsjlvahaargjortfrattfrhindrradet.Nstastoraprob
blemrSQLLInjectionss,nr
manmanipuleraardatabasko
opplingarnaa,dettakom
mmerviocksbehandlaaienegen
on.
sektio
hSQLInjecttionsharvi varitmnaomattskriivaenskerrkod.Vihar
FruttomXSSoch
strukktureratkod
dengenomatthaalladdatabaskop
pplingarsam
mladeienfi l,viharockks
samlaatdefunktiionersomttaremotinddataifrnformulrpettochsam
mmastlle.Tack
varedettafrm
manenbttrreverblickkvervadriiskernakan befinnasiggrent
progrrammeringssmssigt.
Vrtfrstaprob
blemsomvistttepvvarhurinlogggningenskahanteras..Vidaresvvillvi
attdeefunktioneersommankommerttnrmanrinloggadsskavaraotilllgngligom
m
maninterinlogggad,omm
manfrskeerndraensidasgrssfrstenkoontrollfraattse
omm
manrinlogggadellerin
nte,rman inloggadskommerm
mantfunkttionensom
misin
turuppdaterard
databasen,iannatfall blirmanskkickadvidare
etillstartsiddan.Frattt
kunn
nalsadettaapettsmiidigtstthaarvidelatuppfunktion
nensomhannterar
datab
baskopplinggarnaitvssektioner.D
Denenainnehllerdeffunktionerssomintekrver
23
inloggning,ochidenandraliggerfunktionersomkrverdet.Frdelenmeddettaratt
vikangrakontrollenengngochbehverinteriskeraattmissadenpngotstlle.
OmngonurpersonalenpAromaskullerkageutsittlsenordfinnsdetenriskatt
ngonskulleginochndrainnehlletpsidornagenomdeverktygvihartillsidan.
Dettaralltidenrisksomfinnsochngotsomrsvrtattskyddasigemot.Detvitnkt
prattsparavilkenanvndaresomndrarpsidornafrattkunnaavgraiett
senareskedevemslsenorddetrsomlcktutfrattkunnandradet.Fratt
terhmtaossmotngotsdantfinnsocksmjlighetenattgraregelbundna
backuperpdatabasen.
Ominlggetskulleinnehllaovanstendekodskulleallabeskaref
popupmeddelandetXSSsfortderaswebblsareladdarklartinlgget.Dettakan
knappastsessomskadligkod,menltsgaattkodenskulleinnehllaenloopsomvisar
meddelande1000ggr,sfrvarjegngnitryckerpOKkommeretttillmeddelande
upptills1000stharvisats.Nublevdetgenastlitejobbigare.
Ivrtfallharviintesmngaolikainputformulrsomkantnkasutnyttjas,vihar
nstaningastllendrmankanskrivainskadligkodsomsenkanskadaandra
24
anvndare.Drmedkommerviintehellerlgganersmycketviktpdennadelutan
nmnerdetbaralitelttpgrundavattdetrenvldigtstordelutavskerhetenvad
detgllerutvecklingavhemsidor.
Kodenovanserngotkryptiskut,pgrundavformateringen.Dettafrattmanska
kunnaskrivadetiettinlgg.Etttnkbartscenarioivrtfallskullevaraattmanskriveri
ovanstendetextsomskordivrskfunktion.Frnrmanskerefterensktermp
vrsidasfrmanframdusktepochsenvisasdetsomfylldesisomindata.Omvi
skaversttaovanstendekodtillrenHTMLskulledetseutungefrshr:
Omviintehadevalideratvrinputhadevimedandraordfttframett
inloggningsformulrdrdetstrDusktep:.Somniserkommerdetskapasett
formulrdralldataskickastillenfilsomhetertest.asp,dennakanisintursamlaall
datasomskickatstillden.Eftersomdetintefinnsngotkravpattfilenmsteliggap
sammaserversomhemsidankanngonfiskalsenordgenomattspridaenlnkmed
dettainloggningsformulr.
OmngonurpersonalenpAromahadeklickatframtilldennasidagenomettmail
ellerliknanderdetinteheltomjligtattdehadefylltisittanvndarnamnoch
lsenord,ochdrmedgettutsinauppgiftertillpersonensomfrskerattackera
hemsidan.
Somengrundregelkanmansgaattmanattaldrigskalitapklienten,ochdrmed
alltidutfraextrakontrollernrdetgllerinputfrnenanvndare.
25
3.3.2 SQLInjections
SQLInjectionshandlaromattmanipuleradatabaskopplingarna.Mngagngergrman
dettafrattkommatochskrivautdelaravdatabasen.Mendetkanskeocks
anvndastillattkommafrbiinloggningsformulr.Andraanvndningsomrdenkan
varaattmanipuleradatasomskickasmedettformulrsomgrattsidanintefungerar
somdetska.Vikommergigenomngraexempelochsakervigjortfrattfrhindra
detta.
Figur7InloggningsformulrpAromashemsida
Deflestasidoridagenslgeharettadmingrnssnittdrmankanadministrera
hemsidan.Frattdettaskafungeramstedetfinnasngotsttattautentisera
anvndare,dettagrsvanligtvismedinloggningsformulr.Iinloggningsformulretfyller
manianvndarnamnochlsenord,dettaanvndssedanfrattgraenkontrolli
databasenomanvndarenfinnsochomlsenordetstmmerverens.Dennakontroll
somgrsgentemotdatabasenkanmanipulerasochdatabasfrfrgankanndrastill
ngotheltannat.
Dettaniserovanrendatabasfrfrgansomletarefterenanvndaremednamn
UserNameitabellenUser.
Omviivratformulrskulleskriva:or1=1somnamnharmanskrivitSQLsyntaxi
formulret.
Detniserovanrdenslutgiltigafrfrganochsomniserskommer1alltidvaralika
med1.Omdennakodskulleanvndasfrautentiseringsprocedurmanslundakomma
26
frbidennakontrollochdetrprecisdettasomrSQLInjections.Detgrutpattman
utnyttjarsyntaxenfrattkommunicerameddatabasengenomattndraindatasom
skickasgenomformlrochliknande.Detrdrfrytterstviktigtattkantarbort
bokstverochvaliderarindata.Ommantillexempelfrvntarsigensiffrakanman
valideraindatagenomatttabortallaickesiffrorellerheltenkeltavbrytaprocessenom
ettfelupptcksifrvgfrattdskyddadatabasen.
MedSQLInjectionskanmanveneditera,tabortochvisadelaravdatabasen.Omman
skulleskrivainikodenibildenovanfrskullemantaborthelatabellenUsersvilketkan
hakatastrofalafljder.
Ettannatexempelkanvaraattndrainformationenfrensrskildanvndare.Man
skullekunnandradennesemailtillsinegenochdreftergraenfrfrganomsitt
lsenordsomommanhadeglmtbortdet.Drefterskickaslsenordettilldennyae
mailaddressensomndratstillngotheltannat.Mjligheternarmnga,ochide
flestafallrdetsvrtattupptckaproblemiefterhand.
3.3.3 Databaskryptering
Frattillustreraproblemetmedkrypteringavlsenordensomsparasidatabasenskavi
frskageettexempel.Ltsgaattngonattackerarsidanochhittarettskerhetshl
medhjlpavSQLInjections,tackvaredettalyckasattackerarenkommatdelarutav
databasen.Ivrstafallbetyderdettaattattackerarenkommertdentabellsom
innehllerallaanvndarnamnochlsenord.Omlsenordenhadestttiklarttext
kundeattackerarenloggaindirektutanproblem,dettaservisomenskerhetsrisk.
Frattundvikadettaproblemharvikrypteratvralsenordidatabasen.Nren
anvndarefrskerloggaingenomattskrivainsittanvndarnamnochlsenord
kommerdettalsenordetattkrypterasochjmfrasmeddetlsenordsomrsparati
databasen.Eftersombdalsenordenharkrypteratsmedsammafunktionkommer
dessakrypteradenycklarattvaraidentiska.
Dettarintengotsomanvndarekommermrka,dremotkommerdetskydda
lsenordetomdenkrypteradenyckelnskullelckasut.
Figur8SHA1krypteringsexempel
27
KrypteringsmetodenvianvnderossutavheterSHA1ochproduceraren160bitars
lngnyckelifrntextensomskakrypteras.Detsomskapasrenhashstrng,allts
ngotsomintegrattdekryptera.Denendalsningensomfinnsfrattkunnahitta
dendekrypteradestrngenrattletaefterkollisioner,detvillsgaanvndaenbrute
forceteknikfratttestaallamjligakombinationeravstrngarfratthittadenstrngs
varsnyckelridentiskmedoriginalet.Problemetrattdettatarextremtmycket
datorkraftochtid.
28
29
Nedanfljerendetaljeradredogrelsefrhurdesignenphemsidanruppbyggd.
3.5.1 Huvudsidan
Helasidanrigrundenuppbyggdav3sidor.Enindexfildralltinnehllladdasin,en
PHPfilmedalltinnehllochenPHPfilsomskterallkommunikationmotdatabasen.
Sidhuvudethmtassledesintegenomenfunktionutanrhrdkodatdirektiindex
sidan.
Figur9MenyniHTMLkod
SomFigur9MenyniHTMLkodvisarslederallalnkartillindex.php,URLvariablerna
hmtasavfunktionsfilensomisinturharenfunktionfrmotsvarandelnk.Ett
problemvisnabbtstttepnrvibyggdesidanpdethrvisetvaratt
Skmotorsoptimeringinteskulleblioptimal.Titelnpsidanskulleblilikadanpalla
sidor.DettalstevigenomattskrivaenfunktioniPHPsomhanterarsidtiteln,genom
atthmtaURLvariabelnpagefrvarjesidaochskrivautmotsvarandesidtitel.
3.5.2 Undersidor
Eftersomenadministratrskakunnahavaletattlggatill,tabortellerndra
undermenyerpvarjesidahmtasundermenyernaurendatabas.Genomen
genomtnktstruktureringavsidornaochendatabaskanmanenkeltstrukturerasina
egnasidorochmenyer.Frstladdasenhuvudsidansominnehllerhelaenstatisk
meny.Klickarmaninsigpdenmenynkommermantillenhuvudsida,somisintur
laddarensrskildmenysomrkoppladtilljustdensidan.Varjelnkiundermenyngr
sedantillenundersida.
30
3.5 Databasutveckling
FrutomvanligaHTML,JSochCSSfilershmtasvenenvissdelavinformationen
somvisaspsidanifrnenexternklla.Dettafrattsidanskablisdynamisksom
mjligt.Teoretisktsettkandennainformationlagrasivanligatextfiler,vilketdockinte
rintesrskilteffektivt.Avjustdenanledningenharolikadatabaserskapats
databaserrgjordaspecielltfrattkunnahanteramngderavinformationpolika
stt.Dettakapitelhandlaromvrdatabasdesign,somrenlogiskdatamodellfrhurvi
lagrardennaexternakllaochhurvisedanintegrerardenmedhemsidan.
Integreringenmellandatabasenochhemsidanskergenomolikaanvndarvnliga
interface.Databashanteringensktsalltsgenomhemsidan.Frattredigerahemsidor
harvivaltengratisWSYWIGeditorvidnamnCKEditor[12].Viharvengjortetteget
administratrsgrnsnittfrattlggatill,redigeraochtabortundermenyerpvarje
sida.
Idennadelavrapporternanalyserarvikringbehovetochsjlvaanvndningenavden
informationsomsidanskahantera.Genomatttaredapvilkeninformationsom
behvslagrasochlogisktdelauppdenkanvistruktureradatabasenochbrjalagraall
informationenidatabasen.
3.5.1 Designval
DetfinnsvldigtmngaolikatyperavdatabaserSybase,MySQL,Orace,IBMDB2
ochvenMicrosoftAccessochMicrosoftSQLServer.Vikommerintegrvaossneri
skillnader,frdelarochnackdelarfrdetrganskaorelevant.Dremotrdeturett
webbdesignperspektivviktigtattsidanssnabbmjligt.Omflerabeskareladdar
sidansamtidigtvillviinteattdatabasenskagelngsammaladdningstider.IAromas
fallkommerviskerligenaldrigkommauppisdanahgavolymerattdetkommer
pverkaoss.IvrtvalavwebbhotellingickdetenMySQLdatabas.Vilketrdetallra
vanligastesystemetnrdetgllerwebbhotell.FrdelarmedMySQLrattdetr
opensource[13]ochspassutbrettattmanlttkanhittadokumentationoch
kodexempel.
MySQLfinnsattladdanergratisochrdesignatfratttahandomhundratals,ellertill
ochmedtusentalsolikaanvndaresomvillhaaccesstilldatabasennrsomhelst[14].
Vilketrprecisvadmanletareftersomwebbutvecklare.Frgrundlggande
informationomhurendatabasrstruktureradkannilsamerhr[15].Ikortadragr
SQLdatabasstruktureradsomshr:
Endatabasbestravenellerfleratabeller.Entabellbestravenellerfleraraderoch
kolumner.Enpostellerradinnehllerinformationomettspecifiktobjektdrvarje
kolumnrenvisstypavinformation.Varjepost/radharocksenuniknyckel,denna
nyckelrepresenterarochidentifierarvarjeenskiltobjekt.Nrmandesignardatabasen
31
vljermansjlvvilkenavallakolumnersomskavaradenunikanyckeln.
Innanvikundebrjadesignavrdatabasvarvitvungnaatthaenlistamedinformation
omalltsomskakunnalagras.Frstochfrmstletadeviefterstllendrvikangravr
hemsidaflexibelgenomattfrutsgandringarsomvrslutanvndare(idettafall
Aroma)kantnkasviljagra.Detsomvifokuseradepidettastegrattsidanskabli
sflexibelochsimpelsommjligtfrAromaattadministrera.Deskatillexempelinte
behvaanlitaenwebbdesignervarjegngdevillndralitetextpsidan.Drfrsparas
textenfrvarjesidaivrdatabas,frutomattndratextpbefintligalnkar/sidorbr
manvenkunnalggatillheltnya,vilketockspverkarstrukturenpdatabasen.
Vidaresrdetintevemsomhelstsomskakunnaadministrerahemsidan,utanman
mstekunnaloggain.Hrvaldekundenatthaolikainloggningarvilketisinturgratt
vimanharunikaanvndaremedegnainloggningar.Dettagrattvikansparavemsom
ndratpettdokumentsenast.Somngonslsenordskullelckautkanmand
direktsevemsdetrochbytadet.
VidaresantarviattAromaaldrigsjlvakommerginochndraidatabasen.Enannan
saksomrviktigrsjlvaskerhetenidatabasen.Viantarattsidanintekommer
utsttasfrattackerutifrn.Vihart.ex.ingakravfrhurlsenordetskaseutnrman
loggarin.Dremotharvividtagittgrderfrdettagenomattbegrnsainformationen
somlagrasidatabasen.Svenomalltmotfrmodanskullelckautfinnsdetinga
personligauppgiftersompngotsttrknsligaellerkommerkunnaskadangon.
Nrdetgllerskerhetkandennadelasuppi2delar,skerhetenpsidan(somr
integreradmeddatabasen)ochsjlvadatabasenisig.Vikommertauppskerheteni
ettheltegetkapitelsomkommerbehandlaskerhetenpsidan.Vaddetgller
databasenskrvsdetettanvndarnamnochlsenordfrattkommatden.Mankan
venskyddasiggenomattkrypteradelaravdatabasen,tillexempelomngrauppgifter
hadevaritknsliga.Ivrtfallharvivaltattsparalsenordenikrypteradformattka
skerhetenytterligare.
32
3.6 Skmotorsoptimering
SkmotoroptimeringellerSEO(SearchEngineOptimization)rettgemensamtnamn
frhurmankanfrbttrasinsidrankningpskmotorer.Detreninveckladprocess
drmankanvljaattlggaalltfrnettpartimmartillfleramnadersarbetefrattf
soptimalskrankning.SkmotornGooglesomidagansesvaradenviktigaste
skmotornattoptimerafranvndersigavenalgoritmsomkallasPageRankfratt
avgrahurhgtuppensidaskahamnapderasresultatlista.Googleharvalthlla
delaravdennaalgoritmhemligfrattdetinteskavaramjligtutnyttjadenfr
maximalsidrankning.
DAromaredanharettstortklientelochrenlokalrrelsesansgviattdetintevar
avstrreviktattviladealltfrmngatimmarpdettautanattviendastgjordeen
grundlggandeoptimeringavsidan.Vifljdengraenklastegfrattfettbra
skresultat:
Viplaceradesmnganyckelordsommjligtiallarubriktaggarssomh1,h2,h3
osv.
ViundvekattanvndaFlash.
ViminimeradeanvndningenavJavaScriptochDHTML.
Viskrevunikatexterititletaggenpvarjesida.
Figur10SkresultatfrnGoogle
33
4 Resultat
Resultatetavdettaexamensarbeterenstilrentochfunktionellwebportal.Hemsidan
innehllerfunktionerfrattkunnahanteratidsbokningar,editerasidor,laddaupp
bilderetc.Nedanfinnsendetaljbeskrivningavdeolikafunktionerna.
Frattbibehllaenhgskerhetsvaldeviattintehaenfysisklnkphemsidanfr
attkommatillinloggningssidan.VidarevaldeviattintegeAromamjlighetenattskapa
nyaadministratrskontondirektpsidanddetendastskullevaraeneventuellttv
personersomskullesktauppdateringarnapsidan,sviskapadeendastett
administratrskonto.
Aromafickdrfrendirektlnktillinloggningsidandrdetkundeloggainmedsitt
frvaldaanvndarnamnochlsenordsomviskapattdem.
Figur11Inloggningsformulr
4.1.2 Admingrnssnitt
FrattgeAromaettsanvndarvnligtochlttfrsteligtgrnssnittsommjligtefter
inloggningsvaldeviattiintegreraadministrationsdelendirektiPHPkodenfrsidan.
EfterattmanangivitettkorrektanvndarnamnochlsenordsstartasenPHPsession
frenlyckadinloggningochmanblirvidarebefordradtillstartsidandrnyamenyerfr
administratrerhartillkommit.Undervarjeundersidabliradministratrengiven
34
menyvalspecifikafrdenaktivasidan.Detrgenomdennainloggningsomviger
Aromarttigheternaattlggatill,tabortochvisaallabokningar.
Figur12Anvndare/Administratr
4.1.3 Bokningshantering
Bokningssystemetvardenstrstadeleniprojektetattutfra,dvivaldeattinte
anvndaossavettCMSsystemellerfrdigamodulerfrbokningarna.Dettagjordeatt
vikundevaravldigtanpassningsbaratillallanskemlfrhurbokningaroch
bokningsadministrationenskullefungera.
Somviharberttatinnansvarettavvraviktigastemlvarattgrasidans
lttadministreradsommjligtvaldedrfrvenhrattintegraenexternmodulfr
attsktaadministreringenavbokningarna.
Administrationenfungerardlikadantsomfunktionenfrattredigeraensidas
innehll.
Aromavissteintefrnbrjanhurlngatidernaskullevarafrenvaccinationstid,svi
valdeattdesjlvafickhurlngetidenskullevaranrdelggerinettnyttbokningsbart
pass,seFigur13Administrationavbokningar.
35
Figur13Administrationavbokningar
SomFigur13Administrationavbokningarvisarsgesadministratrenvaletnertill
vnsterpsidanattlggatillnyatidersomgllerfrdenaktuellaveckan.Manfr
sedanvaletattlggatillellertabortpassunderdagarnaiveckansomindikerasmedett
plusteckenrespektiveenpapperskorg.
Figur14Kopierafrnfregendevecka
36
Ettproblemsomsnabbtdkuppnrvibrjadetestaadministrationenav
bokningssystemetvarattdetvarvldigtomstndligtattlggainvarjetidpnyttgng
pgngfrvarjevecka.DAromaredanhadefastaavsattatiderfrvaccinationeroch
intygvarjeveckasbyggdeviinennyfunktionfrattkopieratidenfrnfregende
vecka.Frvarjenyveckasominteharngrainlagdapassnnusgesadministratren
valetattkopierafregendeveckaspass(seFigur14Kopierafrnfregendevecka)
tilldenaktuellaveckan.Manfrsedanmjlighetenatttabortellerlggatillnyapass
ochtider(seFigur13Administrationavbokningar).
Figur15Visaallabokningar
Frattkunnaseallaaktuellabokningarsfinnsdetenlnkimenyntillvnstersom
heterVisaallabokningar.Administratrenfrduppettnyttfnstersomvisarlikt
bokningshanterarenvisarveckafrveckaallapasssomfinnsochvilkasomrbokade.
TankenvarattAromalttareskullefenversiktpallatidersomrbokadeutanatt
behvaginpdetaljerfrattsenamnpvarjebokning.
Hrgesenkomplettverblickpvilkapasssomrbokadeochvilkasomnnuinter
det.Informationompersonensombokatpassetvisatisammarutasombokningenfr
passet.
Mankanvljaattvisanstaellerfregendeveckasbokningar,skrivautveckoschema
fraktuellveckaochfrvaccinationsbokningarkanmansedenbokandepersonens
svarpvaccinationsfrgorna.Vidaregesmanvaletattvenseallaintygsbokningarp
37
sammasttsomvaccinationsbokningar,medskillnadenattdetintefinnsngonlnktill
devaccinationsfrgorsomanvndarenfylltisambandmedbokningen.
4.1.4 Menyhantering
Sombeskrivettidigaresladdashelawebbsidansinnehllinienindexsida.
Undermenyernahmtassedanurendatabasdvigeradministratrenvaletattlgga
till,tabortochndraundermenyerpvarjehuvudsida.Detkrvdesdattvisparade
allamenyeriendatabasfrgeensenkeladministrationssommjligt.
Frattkunnastruktureradetordentligtfinnsdetenvisshierarkipallasidor.Dels
finnsdetdesidorsomrkoppladetillhuvudmenyn(densomalltidsyns),surfarmanin
pensdansidasermanattdenisinturharenegenundermeny.Bildennedanvisar
hurdetserutnrmansurfarinpIntygochundersidanInformation.
Figur16Hierarkipsidorochundersidor
SomniserfinnsdettrestyckenundersidorinlagdaunderIntyg.Dessakanmanenkelt
ndragenomattanvndaredigeringsfunktionenndrameny.Hrkanmanlggatill
nya,ndraordningen,bytanamnellertabortlnkar.
38
Figur17RedigeringsfunktionenRedigerameny
Figur18BildpGUI:tsomanvndsnrmanredigerarinnehllpsidor
39
Hrkanmandirektskrivaintextommansvill,mendetfinnsocksmjlighetatt
skrivarenHTMLkod.Detfinnsfrdigafunktionerfratthanteralnkar,tabeller,
flashobjekt,formulr,listorochannatsomenvanlighemsidakantnkasinnehlla.
Nrmanrklartryckermanenkeltpsparaknappen,senkommerdatabasen
uppdaterasmedAJAXprotokolletochsidanndrasliveutanattbehvaladdasomp
nytt.
Figur19BildhanteringgenomCKFinder2
TryckermanpinfogabildiCKEditorn,vljerBlddrapservernskommer
verktygetCKFinderattladdasochdetkommerattseutsompbildenovan.Hrkan
manenkeltbaramarkeraenbildsommanvillinfogatillsinsida.Ombildeninteskulle
finnaskanmanenkeltladdauppdentillservern.Tillvnsterserniven
mappstrukturen,medhjlpavdenkanmanenkeltskapamapparochflyttaomkring
bilderfrattsnabbtochenkeltorganisera.
40
4.1.6 Menybilden
Somniharsettfinnsdetettbildspelpvissasidor.DettarskrivetijQuery,dockvillevi
gradetmjligtfrAromaattsjlvabestmmahurdennaskullebetesig.Dekanskevill
lggatillennybild,tabortenbild,ellertaborthelabildspeletpettsmidigtstt.
Figur20Bildspel
DettalstevigenomattltaPHPbestmmadebildersomskullevisas,menistlletfr
atthrdkodavilkabildersgjordevienfunktionsomskrevutbildfilersomfinnsien
visskatalog.OmmansurfarinpOmaromaskommerdettaPHPscriptletaefteroch
skrivautnamnetpbilderimappenbildspel/om_aroma.Finnsdetingabilder
uppladdadeidennaspecifikamappkommerbildspeletintesynasallt.Frvarjelnki
huvudmenynfinnsdetalltsenkorresponderandemappsomfungerarsomkopplingen
mellansidanochbildspelet.
OmnikollarpFigur19BildhanteringgenomCKFinder2,sserniattdetfinnsen
mappsomheterbildspel.Detrhrallabildernafrvrslideshowbefinnersig.Man
kanalltsenkelthanterabildernagenomdettaverktyg.Laddasdetuppnyabildereller
omngonbildtasbortskommerndringarnaattsynasdirekt.
4.1.7 Skfunktion
Frattutkaanvndarvnlighetenytterligareharviutvecklatenegenskfunktionsom
rplaceradlngstupptillvnsterpsidan,tillsammansmeddevanligastelnkarna.
EftersomAromasjlvagrinochskriversinasidorivrtCMSsystemssparasallt
innehllidatabasen.Meddenvetskapenharvilyckatsstadkommaenngot
kompliceradlsningmenndsmidiglsningfratthmtadataurdatabasen.
Skfunktionenskickarfrfrgningartilldatabasenochletareftersidormedinnehll
sominnehllerskordet.Dreftervisasderesultatirelevansordning,samtattdenger
enbeskrivningpresultatet.Frutomattskapinnehlletpsidornaskerscriptet
41
venigenomnamnplnkar,menyerochundermenyerfrattkunnageentillrckligt
bratrffskerhet.
4.1.8 Bokningssystemet
Bokningssystemetrgjortfrtvolikatyperavbokningar,vaccinationellerintyg.Der
identiskafrutomattenintygsbokninghartrestegmedanenvaccinationsbokninghar
fyra.VaccinationsbokningharettextrastegeftersomAromavillhasvarpettantal
frgorangendepersonenifrgasombokartiden.Frgorsomingrrvikt,tidigare
vaccinationer,ochannatfrattkunnaskerstllaattpatienteninterallergiskellerhar
ngonsjukdomochfrattkunnafrberedavaccinationeninfrbesket.
Frattgradetenkeltfrenkundharvidelatuppbokningariolikastegsmanltt
kangframochtillbakaommanvillndrangot.Detgrdetockslttareattsehur
mycketmanharkvarinnanmanrklarmedbokningen.
4.1.8.1Steg1Attvljaentid
Detfrstastegetrattvljaentid.Anvndarenfrseledigatiderenveckaitaget.Man
kanseochbokapasssmngaveckorframsomdetfinnsinlagdapass.Grmarkerade
passindikerarattpassetinterbokningsbartpgrundavattdagenredanharpasserat
ellerattdetrmindrentvdagarkvarinnanbesketgerrum.Anledningentillatt
manmstebokaenvisstidinnanbesketrfrattfrhindrasenabokningarochge
Aromatidattplanera.
Figur21Bokningsteg1
42
4.1.8.2Steg2Anvndaruppgifter
Istegtvfranvndarenfyllainamn,epostadress,telefonnummeroch
personnummerAllafltrobligatoriska.Manfrinformationomvilkentidmanvalt
ochattmanrtvungenattfyllaiallafltfrattkunnagvidaremedbokningen.Idetta
stegfinnsdettreknapparattvlja,delskanmangtillbakatillsteg1frattvljaen
annantid.Mankanocksavbrytabokningenellersparauppgifternaochgvidaretill
nstasteg.
AllafltvaliderasmedJavaScriptochrdetngotfelskommerenrdtextupp
bredviddetfltsominteklaradevalideringen.Delsmstemanskrivaengiltige
postadress,ettfrnamnochefternamnmedmera.Tidigarehadevivenvalideringav
personnummermeneftersomdettainteglleriallafallpgrundavundantagsvalde
viatttabortdenfunktionen.
Figur22Bokningsteg2
4.1.8.3Steg3Vaccinationsfrgor
Dettastegrdetendasomskiljerenbokningfrvaccinationmotintyg.Bokarmantid
frvaccinationkommerdettastegetframeftersteg2ochmanmstesvarap16
frgor.Detringetkravattallafrgormstevarabesvaradeeftersomvissaavdemkan
varasvraattbesvara.
43
Figur23Bokningsteg3
4.1.8.4Steg4Bekrftelseavbokning
Idetsistastegetbekrftasallainmatningarochmankanantingenvljaattvljaen
annantid,ndrapersonuppgifter,avbrytabokningellerslutfrabokningen.Alla
inmatadeuppgiftersparasundersessionensomduvljerattvljaenannantids
kommermandirekttillbakatilldettastegsmanslipperattbrjaomfrnbrjan.
Efterattanvndarentrycktbekrftaochslutfrsskickasettmailtillangiven
mailadressmedallbokningsinformationochenautomatisktgeneradstrngsom
fungerarsomenkodfrattloggainpsidanochsebokningsinformationellerkunna
avbokabesket.
44
Figur24Bokningsteg4
Figur25Bekrftelsesomskickastillmailen
45
4.1.8.5Mjlighetenattavbokatidfrkund
Medhjlpavavbokningskodenkanenanvndaresurfainphemsidanloggainmed
koden.Vlinloggadvisasinformationomdenaktuellabokningenplusattmankan
avbokatiden.Detfinnsvenendirektlnkmailet,tryckermandrskommerenfrga
uppdrmanbekrftarattmanvillavbokabesket,ochomalltgttbrasfrmanett
meddelandetillbakasomsgerattmanlyckatsavbokasintid.
venhrfinnsdetrestriktioner,tillexempelkanmaninteavbokaombesketgerrum
ommindren2dagar.
Figur26Inloggningmedavbokningskod
4.1.8.6MjlighetenfrAromaattavbokatid
Vidtillfllendrkundenharglmtattavbokasittpassitidelleromkundenintehar
kvarsinavbokningskodkanAromasjlvaginochndrabokningar.Aromakand
avbokatidenellerndrakontaktuppgifterfrdenpersonsombokattiden.Detfinns
venmjlighetattseinformationomavbokadebesk.
FrutomdettakanAromaenkeltlggatillnyatider,skapanyapass,kopierapassfrn
fregendedagellerkopierafrnfregendevecka.Helagrnssnittetfungerarlitesom
enalmanackadrmankansetiderveckovismeddatumochbokningsinformation.Mer
ombokningssystemetkannilsaunderresultatdelen.
46
Figur27Avbokningavtid
47
4.3 Databasdesign
Viskapadedatabasenutefterallaantagandeochkravsomvihade.IBilaga2serni
exakthurdatabasenrdesignadochvilkeninformationsomkommerfinnasmed.En
databasskavaraettrobustsystem,mensomsamtidigtskakunnaklarafrndringar.I
vrtfallsrdatabasenkoppladtillenhemsidaochallasystemsomfinnsdr.Dessa
systemskafungeramedvarandra,varfrmanintebarakanndradetenautanatt
ndradenandra,alltskommermycketfrndringarintekunnatgras.
Frattkunnahanteravrdatabasanvndeviossutavettverktygsomheter
PHPMyAdmin(seFigur1EttexempelpdengrafiskavynIPHPMyAdmin.Dettaverktyg
ingickiwebbhotellet,ochrkopplattilldatabasensmankanadministreradendirekt
verntetgenomattbaraloggain.
BildpheladatabasdesignenkannisepBilaga2.
48
49
6 Referenser
[1]
Googlesitesearch
http://www.google.com/sitesearch/
(20101031)
[2]
WebaccessibilityandDevelopmentGlossary
http://www.joedolson.com/glossary.php
[3]
W3C
http://www.w3.org/
[4]
PHPonHormones
http://itc.conversationsnetwork.org/shows/detail3298.html#
(acc.20070426)
[5]
StructuredQueryLanguage(SQL)
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ib
m.db2.udb.admin.doc/doc/c0004100.htm
(acc.20061027)
[6]
ARelationalModelofDataforLargeSharedDataBanks
Codd,E.F.ARelationalModelofDataforLargeSharedDataBanks.
CommunicationsoftheACM,Vol.13,No.6,June1970,ss.377387
(acc.197006)
[7]
TheAZofProgrammingLanguages:JavaScript
http://www.computerworld.com.au/article/255293/a
z_programming_languages_javascript/.
(acc.20080731)
[8]
UsageofJavaScriptlibrariesforwebsites
http://w3techs.com/technologies/overview/javascript_library/all
(acc20110513)
[9]
jQuery
http://jquery.org/team
(acc20110513)
[10]
BrowserStatistics
http://www.w3schools.com/browsers
50
[11] WebApplicationSecurityStatistics2008
http://projects.webappsec.org/WebApplicationSecurityStatistics
(acc.20101102)
[12]
CKEditor
http://ckeditor.com/
[13]
MySQLDocumentation:MySQLReferenceManuals
http://dev.mysql.com/doc/
[14]
RelationalDatabaseComponents
http://msdn.microsoft.com/enus/library/aa174501(SQL.80).aspx
[15]
Databases
http://msdn.microsoft.com/enus/library/ms189317.aspx
[16]
GoogleTrends
http://www.google.com/support/insights//bin/answer.py?hl=sv&answer=87285
51
7 Skord
B
Bokningssystem35,42
MySQL16
CKEditor31,39
CKEditorn40
CKFinder40
CSS13
PHP12,13
PHPMyAdmin16
SQL14
SQLInjections26
Databas20,31,48
Dreamweaver16
XHTML12
XSS24
HTML12,40
J
JavaScript14
jQuery15
52
8 Bilagor
8.1 B
Bilaga 1 Google Trends
HmtatfrnGoo
ogleFAQ:SSiffrornaidiiagrammetvisarhurm
mngaskninngarsomhar
rhllandettilldetsamm
manlagdaan
ntaletskniingarpGo
oogle
gjortssmedenviisstermif
undeerenlngretid.Deanggerintedennabsolutaskvolymeneftersomreesultatethaar
norm
maliseratsocchvisaspenskalameellan0och100.Varjep
punktidiaggrammethaar
divideratsmedd
denhgstapunkten,1 00.Nrdettintefinnsttillrckligtm
meddatavissas
siffraan0.Siffrorn
nabredvidsktermernnaovanfrd
diagrammettrtotalsum
mmor.
Skteerm1tidsbo
okning
http:///www.googgle.com/insigghts/search/##q=tidsbokniing&cmpt=q
Skteerm2online
ebooking
http:///www.googgle.com/insigghts/search/##q=online%2
20booking&cm
mpt=q
53
Skteerm3bookonline
http:///www.googgle.com/insigghts/search/##q=book%20
0online&cmpt=q
Skteerm4bokao
online
http:///www.googgle.com/insigghts/search/##q=boka%20online&cmptt=q
54
55