E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Relevanta dokument
Webbsäkerhet för IT-tekniker VT2014 Johan Leitet Nätverkssäkerhet, 1DV425 johan.leitet.se twitter.com/leitet facebook.

Webbsäkerhet. för IT-tekniker VT2013. Johan Leitet johan.leitet.se

E12 "Evil is going on"

E07 "Greased Lightning"

JAVASCRIPT. Beteende

Webbprogrammering. Sahand Sadjadee

JavaScript. DOM Scripting

Webbprogrammering - 725G54 PHP. Foreläsning II

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Säkerhet i applikationslagret och slaget om webben. John Wilander, Omegapoint, Rätt säkerhet, maj 2010

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

E12 "Evil is going on"

E13 "Behind the Wild"

E07 "Greased Lightning"

OWASP Topp De 10 allvarligaste riskerna i webbapplikationer OWASP East Sweden: Uppstartsmöte

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Laboration 1 XML, XPath, XSLT och JSON

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

Att bygga enkla webbsidor

Säkerhet. Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

JS & beteende. TNMK30 - Elektronisk publicering

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Tentamen etjänster och webbprogrammering

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

"HTML5 och relaterade API:er"

2 Inloggning. 3 Inställningar. Användarmanual systeminställningar Förskrivarportalen

Åtkomst till Landstingets nät via Internet

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Elektronisk publicering TNMK30

Laboration 4. Laboration 4, Formulärvalidering. Inledning. Observera. Mål. Genomförande

Webbservrar, severskript & webbproduktion

Materialspecifikationer

JavaScript. En Introduktion

Modul 6 Webbsäkerhet

SKOLFS. beslutade den XXX 2017.

Räkna med ASP.NET Web Forms

Kom igång med Etikettskrivaren 1. Ladda ner följande installationsprogram Ladda ner Drivrutiner för etikettskrivare Zebra

Labora&on 2 HTML och validering övningar/uppgi:er

Exemple på Tentauppgifter Webbprogrammering

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Carl-Oscar Hermansson WEBB DESIGN

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

JavaScript En Introduktion

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

Modul 8 Hantering av indata

JavaScript del 9 Dynamik och animeringar

E09 - Totally Tool Time

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

TDDD52 CSS. Färger. Färger 1/3/13

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Föreläsning 4. CSS Stilmallar för webben

PageSpeed Insights. (utgångsdatum har inte angetts)

PageSpeed Insights. Att komprimera resurser med gzip eller deflate kan minska antalet byte som skickas via nätverket.

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Projektuppgift- Mashup- Applikation

Viktigt angående Kund- och Förskrivarportalen

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Webbteknik II - 1DV449 Laboration 3

Riktiga Vykort Partner webb Teknisk beskrivning

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Åtkomst till Landstingets nät via Internet

E03 "Day 3: 2:00 p.m 3:00 p.m"

86 / 100 Hastighet. PageSpeed Insights. Överväg att Fixa: Utnyttja cachelagring i webbläsare. Minska svarstiden från servern.

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Webmail instruktioner

Two-Factor Authentication. A. Vad är Two-Factor Authentication (Tvåfaktors-autentisering)? B. Hur man ställer in Two-Factor Authentication?

Integration med Vitec Express

Installationsanvisningar. till IST Analys

Karlstads Universitet, Datavetenskap 1

Allmänt beteende hos Konqueror. Burkhard Lück Översättare: Stefan Asserhäll

Nätet. Uppgiften. Nivå

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Manual för din hemsida

Labora&on 8 Formulär övningar/uppgi6er

Ladda ner och konfigurera appen

Visa och dölja element med JavaScript

Lagring i molnet. Per Hellqvist Senior Security Specialist Symantec Nordic AB

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

På många sätt är webben, när det kommer till kritan, en samling länkar. Inom varje given plats, gör länkarna det möjligt att snabbt navigera från ett

Din guide till. Klientinstallation MS Driftservice

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

PageSpeed Insights. Det finns 2 omdirigeringar. Omdirigeringar gör att det tar längre tid innan sidan kan läsas in.

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Java och Javascript. Krishna Tateneni Översättare: Stefan Asserhäll

PageSpeed Insights. Det finns 2 omdirigeringar. Omdirigeringar gör att det tar längre tid innan sidan kan läsas in.

DGC IT Manual Citrix Desktop - Fjärrskrivbord

SÄKERHET KUNSKAPER OM SÄKERHET OCH FÖRMÅGA ATT IDENTIFIERA OCH MOTARBETA ATTACKER

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Säkra webbapplikationer. John Wilander, Omegapoint, KTH maj 2010

ANVÄNDARMANUAL ANSLUTA TILL REGION HALLAND VIA CITRIX

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

TeamViewer Installation och användning

Tillämpad Programmering. Ekonomi + Spel + Javascript

Transkript:

Föreläsning 11, HT2014 Säkerhet, tillgänglighet E11 "Protection" Kurs: 1dv403 Webbteknik I Johan Leitet

E11 Protection Dagens agenda Tillgänglighet Säkerhet

Webbsajt vs. Webbapp Webbsida/webbsajt Webbapplikation Ska alla sidor fungera utan JavaScript?

Tillgänglighet 1) Samma innehåll ska nås med eller utan JavaScript 2) Innehåll eller HTML-kod som enbart är givande med JavaScript ska också skapas med JavaScript 3) All JavaScript-funktionalitet ska fungera oavsett vilken metod som används för att surfa. (mus, tangentbord etc.) 4) Element som normalt sett inte är interaktiva på en sida ska inte vara det med JavaScript 5) Skript ska inte automatiskt vidarebefordra användaren till en annan sida.

Samma innehåll ska nås med eller utan JavaScript <a href= dennasida.aspx?showmess=12 id= showlink /> showlink = document.getelementbyid( showlink ); showlink.addeventlistener( click, function(e) { }); // Hämta meddelande 12 och visa det. e.preventdefault(); Om javascript är aktiverat så hämtar funktionen showmessage meddelandet från servern via ett asynkront anrop och visar det. Sedan returneras false för att undvika att länken aktiveras. Om javascript inte är aktiverat så kommer den aktuella sidan att laddas om. Servern kommer sedan att lägga till meddelandet på sidan och skicka tillbaka till klienten som kommer att visa meddelandet.

Innehåll eller HTML-kod som enbart är givande med JavaScript ska också skapas med JavaScript <input type= submit value= skicka style= display:none /> <a href= # onclick= sendform() />Skicka beställning</a> <input type= submit value= skicka />... sendbutton.classname = hide ; var linkbutton = document.createelement( a ); linkbutton.href = # ; linkbutton.addeventlistener( click, sendform);... myform.appendchild(linkbutton);

All JavaScript-funktionalitet ska fungera oavsett vilken metod som används för att surfa. (mus, tangentbord etc.) <td> <img src= 0.png alt=? /> </td> imgtag.onclick = function(){... } <td> <a href= # > <img src= 0.png alt=? /> </a> </td> atag.onclick = function(){... }

All JavaScript-funktionalitet ska fungera oavsett vilken metod som används för att surfa. (mus, tangentbord etc.) Ramen finns av en anledning... <a href= nysida.html onfocus= this.blur() >Ny sida</a> <a href= nysida.html >Ny sida</a>

Element som normalt sett inte är interaktiva på en sida ska inte vara det med JavaScript

Skript ska inte automatiskt vidarebefordra användaren till en annan sida. Problem: Utan mus så är det mycket svårt att välja en länk utan att alla länkar man passerar triggar onchange. Bättre. Hoppa över onchange och lägg en knapp för att trigga omdirigering. Tryck alt+pil för att bläddra

<noscript> <noscript>denna webbsida kräver Javascript för att fungera</ noscript> alternativt <p id= noscript >Denna applikation kräver JavaScript</p>... document.getelementbyid( noscript ).classname = hide ;...

Säkerhet Säkerhetsrisker med JavaScript i webbläsaren

Säkerhetslösningar Skript körs i en sandlåda (sandboxing): Webbläsaren tillåter enbart att javascript kommunicerar med delar av webbläsaren och via vissa protokoll mot Internet. Det går inte att t.ex. komma åt det lokala filsystemet. Same site origin: Javascript kan enbart komma åt innehåll i fönster och frames där dokumentet har samma ursprung som det dokument som exekverar skriptet. (host, port och protokoll) Det samma gäller för HTTPRequest-objektet.

1) Koden är publik Eventuella problem 2) Utvecklare som förlitar sig på klientsidans kod - Vid validering - Vid inloggningsförfarande - För att stoppa användaren från att genomföra handlingar 3) Ajax-applikationer ökar angreppsytan 4) Nya API:er/ökad komplexitet ökar angreppsytan (HTML5) 5) Luckor i webbläsarimplementationen 6) Denial-of-Service-problem (DOS-attack) 7) Cross-site Scripting (XSS) 8) Cross-Site Request Forgery (CSRF)

XSS XSS går i korthet ut på att en attackerare får sin JavaScript-kod att komma ifrån samma server som originalkoden så att Same site origin sätts ur spel

XSS-attacker text = text.replace(/</g, < ).replace(/>/g, > );

Exempel 1) Skjut in skadlig kod. 2) Arvid går in på sidan Forum med inloggning 3) Arvid klickar på attackerarens länk [Hackerns sida]

Samy is my hero <div id=mycode style="background: url('java script:eval(document.all.mycode.expr)')" expr="var B=String.fromCharCode(34);var A=String.fromCharCode(39);function g(){var C;try{var D=document.body.createTextRange();C=D.htmlText}catch(e){}if(C) {return C}else

Cross-Site Request Forgery (CSRF)

Klient- servervalidering KLIENT SERVER skicka Behandla data Ett klientskript validerar FEL! OK OK Servern validerar

Validera in- och utdata Black listing-filter: Undvik att ersätta farliga tecken. Det finns alltid vägar runt detta. /^[^ ]$/ White listing-filter: Tala explicit om vilka tecken som får anges. Mycket bättre /^[0-9A-ZÅÄÖa-zåäö_]$/ Vad du gör på klienten spelar ingen roll. All säkerhet måste läggas på servern! Kom ihåg detta till nästa kurs...

To spice things up in the bedroom, Douglas Crockford recommends violating the Same Origin Policy. Källa: crockfordfacts.com