Säkra Designmönster (Secure Design Patterns)

Storlek: px
Starta visningen från sidan:

Download "Säkra Designmönster (Secure Design Patterns)"

Transkript

1 Säkra Designmönster (Secure Design Patterns) Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

2 Säkra designmönster Beskrivningar eller mallar som beskriver en generell lösning på ett säkerhetsproblem och som kan användas i många olika situationer. Ett designmönster är tänkt att minska antalet sårbarheter som av misstag introduceras i kod och att minska konsekvensen av sårbarheterna. Tre kategorier: arkitektur, design och implementation. 2

3 Kategorier Arkitektur: Fokuserar på högnivåallokering av ansvar mellan olika komponenter, och kommunikationen mellan komponenterna: Privilege separation (PrivSep) Design: Adresserar problem med designen av en komponent: Secure factory Secure chain of responsibility Implementation: Lågnivå, applicerbara i vissa funktioner i ett system: Secure logger Clear sensitive information 3

4 Privilege separation (PrivSep) Syfte: Reducera mängden kod som körs med specialrättigheter (admin/root) utan att minska funktionaliteten. Motivation: I många applikationer är det endast ett fåtal operationer som faktiskt kräver administrativa rättigheter, samtidigt som en stor mängd komplex kod kan köras med låga rättigheter utan att det förändrar utfallet. 4

5 Privilege separation (PrivSep) root Lyssna på trafik på nätverket. Begäran från en användare root Skapa en process som har minsta möjliga rä;gheter. Utan rättigheter Auten>sera (komplex kod) root Skapa en process med auten>serad användares rä;gheter. Användare FortsäD köra programmet som användaren. 5

6 Privilege separation (PrivSep) Utan rättigheter Auten>serar (komplex kod) Användare FortsäD köra programmet som användaren. root Lyssna på nätverket. root Skapa process med minsta möjliga rä;gheter. Majoriteten av koden körs med låga eller användarens rättigheter. Om det finns en sårbarhet så kommer den som attackerar endast få låga rättigheter. Specialtestning och verifiering kan göras på kod som körs med administrativa rättigheter. root Skapa en process med användarens rä;gheter. 6

7 Secure Factory Syfte: Separera säkerhetsaspekterna av att skapa ett nytt objekt ifrån objektet själv. Motivation: An användare får tillgång till ett objekt som har funktionalitet som beror på användarens rättigheter. 7

8 Secure Factory AbstractSecureFactory +getinstance() : AbstractSecureFactory +getobject(givencredentials : SecurityCredentials) : SomeObject ConcreteSecureFactory1 +getobject(givencredentials : SecurityCredentials) : SomeObject ConcreteSecureFactory2 +getobject(givencredentials : SecurityCredentials) : SomeObject Att skapa SomeObject görs genom: AbstractSecureFactory.getInstance().getObject(securityCredentials) Det returnerade objektet, SomeObject, är ett objekt som har de korrekta rättigheterna. 8

9 Secure Factory Inne i fabriken: 1. Använder den nuvarande konkreta implementationen av AbstractSecureFactory. 2. Inspekterar SecurityCredentials som skickades vid anropet. 3. Skapa en instans av en (för rättigheterna) passande SomeObject. SomeObject LowPrivilegeSomeObject HighPrivilegeSomeObject MidPrivilegeSomeObject 9

10 Secure Factory Den som anropar, samt SomeObject, innehåller inte någon kod eller logik för att kontrollera rättigheter. SomeObject returneras alltid från fabriken, och fabriken väljer korrekt implementation. Det är lätt att byta hur rättigheter kontrolleras genom att byta konkret implementation av AbstractSecureFactory. Konkreta implementation av SomeObject behöver inte implementera kod för funktioner som inte ska användas av den som ber om objektet. LowPrivilegeSomeObject implementerar inte kod för att kunna skriva till disk. 10

11 Secure Chain of Responsibility Avsikt: Koppla bort logiken som avgör rättigheter från den del av programmet som begär en viss funktionalitet. Motivation: Applikationer behöver ofta tillåta och avslå vissa funktioner beroende på vem som anropar. 11

12 Secure Chain of Responsibility Hantera begäran Hantera begäran Hantera begäran eller avvisa hela begäran Begäran samt användarens autentisering Rapport generator för chefer Rapport för sta>s>ker Rapport för säljavdelning Skicka vidare begäran om rättighetskontroll misslyckas Skicka vidare begäran om rättighetskontroll misslyckas 12

13 Secure Chain of Responsibility Valet av funktionalitet är dolt från den som anropar, vad som returneras beror på användarens rättigheter. Den som anropar vet inte om vart dess begäran har hanterats. Extremt enkelt att lägga till och ta bort hanterare i kedjan. Kan till och med göras dynamiskt. Hantera begäran Hantera begäran Hantera begäran eller avvisa hela begäran Begäran samt användarens autentisering Rapport generator för chefer Rapport för sta>s>ker Rapport för säljavdelning Skicka vidare begäran om rättighetskontroll misslyckas Skicka vidare begäran om rättighetskontroll misslyckas 13

14 Secure Logger Avsikt: Förhindra att en attack delger potentiellt användbar information om ett system genom loggar, samt förhindra att en attack kan döljas från loggar. Motivation: Ett systems loggar innehåller ofta väldigt mycket användbar information om systemet och dess användare. 14

15 Secure Logger Applikation Logg Säker loggskrivare Skyddad data Logg-vy Oskyddad data Loggläsare 15

16 Secure Logger Det går inte att på vanlig väg läsa loggfiler eftersom de nu är krypterade. Loggläsaren är nödvändig för access till loggfiler, och den kräver autentisering. En attack som lyckas få innehållet i loggfilerna har ingen nytta av innehållet. Applikation Logg Säker loggskrivare Skyddad data Logg-vy Oskyddad data Loggläsare 16

17 Clear Sensitive Information Avsikt: Det är möjligt att känslig information har sparats i resurser som återanvänds efter att en applikation har avslutats eller en användarsession slutförts. Känslig information ska förstöras i dessa resurser. Motivation: I många fall så innebär frigörandet av resurser inte att de tas bort. Till exempel så markeras minne som ledigt, och innehållet tas först bort när någon behöver platsen. Detta kan göra att information som är känslig som man tror är borttagen kan läcka. 17

18 Clear Sensitive Information Frigör resurs Rengör data Lämna till pool Applikation Frigör aldrig direkt Pool Hämta resurs 18

19 Clear Sensitive Information ClientInfo::~ClientInfo() { this->ipaddr = 0; } this->trustlevel = BOGUS; this->numfaultyrequests = 0; 19

20 Secure Design Patterns Ett designmönster är tänkt att minska antalet sårbarheter som av misstag introduceras i kod och att minska konsekvensen av sårbarheterna. När man använder designmönster så utnyttjar man många års erfarenheter från andra som gjort misstag, och du använder best practice. Det hjälper också när man pratar om kod och design med andra utvecklare. Många användbara säkra designmönster: C. Dougherty, K. Sayre, R. C. Seacord, D. Svoboda, K. Tagashi. Secure Design Patterns. Technical Report CMU/SEI-2009-TR

21

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

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.

Läs mer

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Designprinciper för säkerhet och Epilog Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Designprinciper för säkerhet Tumregler och utgångspunkter

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015 Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk

Läs mer

Mobilt Efos och ny metod för stark autentisering

Mobilt Efos och ny metod för stark autentisering Mobilt Efos och ny metod för stark autentisering I och med lanseringen av E-identitet för offentlig sektor, Efos, kommer Inera att leverera komponenter som möjliggör att en användare ska kunna logga in

Läs mer

WEBBSERVERPROGRAMMERING

WEBBSERVERPROGRAMMERING WEBBSERVERPROGRAMMERING Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets syfte Undervisningen i ämnet

Läs mer

TDDD78 Objektorientering: Lagring och livstid

TDDD78 Objektorientering: Lagring och livstid jonas.kvarnstrom@liu.se 2017 TDDD78 Objektorientering: Lagring och livstid Tre sorters variabel (1): Lokal 3 Deklareras i en metod Lokal variabel Varje anrop får sin egen "kopia": Två anrop till foo()

Läs mer

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

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors 1ME323 Webbteknik 3 Lektion 6 API Rune Körnefors Medieteknik 1 2019 Rune Körnefors rune.kornefors@lnu.se Agenda API (Application Programming Interface) Mashup Flickr API Google Maps API Labb 6 2 API (Application

Läs mer

OWASP Topp 10 2013. De 10 allvarligaste riskerna i webbapplikationer. 2013-10-03 OWASP East Sweden: Uppstartsmöte

OWASP Topp 10 2013. De 10 allvarligaste riskerna i webbapplikationer. 2013-10-03 OWASP East Sweden: Uppstartsmöte OWASP Topp 10 2013 De 10 allvarligaste riskerna i webbapplikationer 2013-10-03 OWASP East Sweden: Uppstartsmöte Vad är OWASP Topp 10? Är ett av OWASP mest populära projekt Är inte en standard Fokuserad

Läs mer

Webbserverprogrammering

Webbserverprogrammering Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015 Objektorienterad Programkonstruktion Föreläsning 7 24 nov 2015 Observer (GoF) Man definierar ett "ett-till-många"-förhållande mellan objekt så att när ett objekt byter tillstånd så uppdateras alla beroende

Läs mer

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Separation of Concern Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Modulär design Fördelar med välgjord modulär design: Lätt att utvidga Moduler går

Läs mer

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

Läs mer

Teknisk testning för otekniska testare

Teknisk testning för otekniska testare Teknisk testning för otekniska testare SAST, 16-feb-2017 Rikard Edgren Nordic Medtest rikard.edgren@nordicmedtest.se Nordic Medtest utför testning och kvalitetssäkring och bidrar till mer användbar och

Läs mer

Mobilt Efos och ny metod för stark autentisering

Mobilt Efos och ny metod för stark autentisering Mobilt Efos och ny metod för stark autentisering I och med lanseringen av E-identitet för offentlig sektor, Efos, kommer Inera att leverera komponenter som möjliggör att en användare ska kunna logga in

Läs mer

Introduktion till säkerhet Grundläggande begrepp

Introduktion till säkerhet Grundläggande begrepp Introduktion till säkerhet Grundläggande begrepp Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Förändringar Två ytterliga riskanalysmetoder

Läs mer

Om fem stycken :GameObject ligger i vägen för b:bullet så kommer alltid loopen köras fem gånger. Välj ett alternativ

Om fem stycken :GameObject ligger i vägen för b:bullet så kommer alltid loopen köras fem gånger. Välj ett alternativ 1 Interaktionsdiagram Givet följande sekvensdiagram: Om object:gameobject inte överlever träffen skall den tas bort från världen. Enligt GRASP mönstret Information Expert är det klassen GameObject som

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Mobilt Efos och ny metod för stark autentisering

Mobilt Efos och ny metod för stark autentisering Mobilt Efos och ny metod för stark autentisering I och med lanseringen av E-identitet för offentlig sektor, Efos, kommer Inera att leverera komponenter som möjliggör att en användare ska kunna logga in

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

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

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande: WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

Läs mer

Capitex dataservertjänst

Capitex dataservertjänst Capitex dataservertjänst Beskrivning Capitex dataservertjänst fungerar som en mellanhand för arbetet mellan klienterna och databasen. Detta reducerar frekvensen och storleken på den nätverkstrafik som

Läs mer

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers. Designmönster - EMW Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp arbetar på Inst. för Datavetenskap, Cth & Gu, 50% och Software

Läs mer

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod

Läs mer

Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad:

Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad: I N T E R N T Säkerhetskrav på extern part För enskild individs direktåtkomst till Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad: Dokumentnamn: Säkerhetskrav på extern part

Läs mer

Projekt Fake för Virtutech

Projekt Fake för Virtutech Kungl. Tekniska Högskolan NADA 2D1954, Programutvecklingsprojekt för D3 Period 3-4, 2003 Grupp A6, Uppdrag 30e för Virtutech Projekt Fake för Virtutech User Requirements Document (URD) Lars Dobos Marcus

Läs mer

Lösenordsregelverk för Karolinska Institutet

Lösenordsregelverk för Karolinska Institutet Lösenordsregelverk för Karolinska Institutet Dnr 1-213/2015 Version 2.0 Gäller från och med 2015-05-18 Sida 2 av 7 Lösenordsregelverk för Karolinska Institutet - Sammanfattning Syfte Det övergripande syftet

Läs mer

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Objektorienterad Programkonstruktion. Föreläsning jan 2016 Objektorienterad Programkonstruktion Föreläsning 13 19 jan 2016 Tentamen Del I, E del Flervalsfrågor 20/25 krävs för godkänt, ger betyg E Upp till 7 möjliga bonuspoäng Del II, Högrebetygsdel Problemfrågor

Läs mer

5 säkerhetsaspekter att tänka på vid skapandet av din digitala assistent

5 säkerhetsaspekter att tänka på vid skapandet av din digitala assistent 5 säkerhetsaspekter att tänka på vid skapandet av din digitala assistent Digitala assistenter börjar bli vardag för många människor. Fler och fler styr sina mobiltelefoner, bilar, smarta hem, datorer och

Läs mer

Personuppgiftspolicy beebyte AB

Personuppgiftspolicy beebyte AB Personuppgiftspolicy beebyte AB Version 1.0 Antagen 180115 Sida 1 Innehållsförteckning Ansvar och Funktioner...3 Beebytes insamlande av personuppgifter...4 Vad klassas som personuppgifter?...4 Begränsat

Läs mer

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

TDIU01 Programmering i C++

TDIU01 Programmering i C++ TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista

Läs mer

Objektorientering: Lagring och livstid

Objektorientering: Lagring och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Objektorientering: Lagring och livstid Tre sorters variabler Tre sorters variabel (1): Lokal 2 Lokal variabel Deklareras inuti en metod Vid varje anrop

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Klasser - speciella medlemsfunktioner Eric Elfving Institutionen för datavetenskap En klass ansvarar ofta för en resurs. Ibland är resursen så enkel som en datamedlem

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Sync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern.

Sync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern. Sync Master Sync Master är ett tilläggsprogram till Easy Planning som används för att automatiskt synka Outlook kalendrar med EP. Programmet ska installeras på en server som har en Outlook klient installerad.

Läs mer

V3.0 VERSIONSINFORMATIO N

V3.0 VERSIONSINFORMATIO N V3.0 VERSIONSINFORMATIO N Hilti ON!Track Versionsdatum: 09.06.2018 1 Versionens höjdpunkter 2 2 Nya funktioner 3 2.1 Från-plats och kvantitet i Bekräfta leverans 3 2.2 Bekräfta radering av överföringslista

Läs mer

Designmönster i Javascript

Designmönster i Javascript C-uppsats i Datavetenskap Designmönster i Javascript Författare: Fredrik Johansson Handledare: Martin Blomberg Termin:VT11 Kurskod: 2DV40E Abstrakt Programmeringsspråket Javascript har sina brister som

Läs mer

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner Databasföreläsning Del 2 lagrade procedurer, vyer och transaktioner Lagrade procedurer (Stored procedures) En stored procedure är en procedur (funktion) lagrad i en databas, och exekveras direkt på databasservern

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer

Metoder (funktioner) Murach s: kap Winstrand Development

Metoder (funktioner) Murach s: kap Winstrand Development (funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod

Läs mer

TDDD78, TDDE30, 729A Typhierarkier del 3 När och hur vill vi använda dem? Några Best Practices

TDDD78, TDDE30, 729A Typhierarkier del 3 När och hur vill vi använda dem? Några Best Practices TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 3 När och hur vill vi använda dem? Några Best Practices Abstrakt klass eller gränssnitt? (1) 3 Gränssnitt Kan implementera flera Ingen

Läs mer

LATHUND FÖR MALVIN. 1 Registrera ny användare... 2. 2 Logga In... 3. 2.1 Glömt lösenord... 4. 3 Annonsering... 5. 3.1 Skapa annons...

LATHUND FÖR MALVIN. 1 Registrera ny användare... 2. 2 Logga In... 3. 2.1 Glömt lösenord... 4. 3 Annonsering... 5. 3.1 Skapa annons... LATHUND FÖR MALVIN INNEHÅLL 1 Registrera ny användare... 2 2 Logga In... 3 2.1 Glömt lösenord... 4 3 Annonsering... 5 3.1 Skapa annons... 5 3.2 Redigera annons... 8 3.3 Ta bort förmedlad annons... 8 3.4

Läs mer

DIG IN TO. Nätverksadministration

DIG IN TO. Nätverksadministration DIG IN TO Nätverksadministration 2018-04-07 1 Nätverksadministration Systemadministration Active Directory implementation Projektering Nätverksadministration Systemadministration Agenda Vad är Active Directory

Läs mer

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Kent Petersson EMW, Mölndal Datavetenskap, Chalmers epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp

Läs mer

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander F9 - Polymorfism ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Polymorfism - flerformighet Vi vet vad metoden heter (signaturen) Men vi vet inte vid anropet exakt vilken metod som faktiskt

Läs mer

Säkerhet ur ett testperspektiv

Säkerhet ur ett testperspektiv Säkerhet ur ett testperspektiv (Erfarenheter efter 4 år med säkerhetstest på Microsoft) Copyright Prolore AB. All rights reserved. Viktor Laszlo - Prolore Jobbat med teknisk testning i 15 år Var med och

Läs mer

Modul 6 Webbsäkerhet

Modul 6 Webbsäkerhet Modul 6 Webbsäkerhet Serverskript & Säkerhet Webbservrar & serverskript exponerar möjlighet för fjärranvändare att skicka data och köra kod vilket medför risker. Man ska aldrig lita på att alla vill göra

Läs mer

1.1 Runnable och Thread

1.1 Runnable och Thread 1 Trådar 1.1 Runnable och Thread I övningen är ShoutThread hårdkodad att använda just ShoutRunnable. Det typiska förfarandet brukar annars vara att skicka över din Runnable i konstruktor-anropet till Thread:

Läs mer

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017 Separation of Concern Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017 Modulär design Ett programsystem är för stort för att kunna förstås i sin helhet.

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0 Regelverk Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag Bilaga A Tekniska ramverk Version: 1.0 Innehållsförteckning 1 Bakgrund och syfte... 1 1.1 Definitioner 1 2 Inledning...

Läs mer

Biometria Violweb. Installation kundportalaccess - för IT-administratörer. Mars 2019

Biometria Violweb. Installation kundportalaccess - för IT-administratörer. Mars 2019 Violweb Installation kundportalaccess - för IT-administratörer Mars 2019 Sammanfattning Den här anvisningen är till för dig som arbetar som lokal IT-administratör på ett företag som INTE har en avtalad

Läs mer

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

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA) TDP013 Webbprogrammering och interaktivitet AJAX, CORS & jquery Marcus Bendtsen Institutionen för Datavetenskap (IDA) Innan AJAX Ett synkront webb 1. Användaren klickar länk, formulär, bild etc 2. Anrop

Läs mer

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

SCRUM. Marcus Bendtsen Institutionen för datavetenskap SCRUM Marcus Bendtsen Institutionen för datavetenskap 2 Metodik Systematiskt tillvägagångssätt för att garantera utfallet Metodiken behöver passa kontexten och tillgängliga resurser Verifiering av metodiken

Läs mer

Security Target (ST) för The Secure Channel (server)

Security Target (ST) för The Secure Channel (server) Security Target (ST) för The Secure Channel (server) Dokument: Security Target (ST) för The Secure Channel (server) 1 Innehållsförteckning 1 Introduktion (ASE_INT)...3 1.1 ST Referens...3 1.2 Klassificering...3

Läs mer

Tentamen i TDIU16 Process- och operativsystemprogrammering

Tentamen i TDIU16 Process- och operativsystemprogrammering Linköpings universitet Institutionen för datavetenskap 2017-06-03 Tentamen i TDIU16 Process- och operativsystemprogrammering Datum 2017-06-03 Tid 14-18 Institution IDA Kurskod TDIU16 Provkod TEN1 Examinator

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016 Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik

Läs mer

Sync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern.

Sync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern. Sync Master Sync Master är ett tilläggsprogram till Easy Planning som används för att automatiskt synka Outlook kalendrar med EP. Programmet ska installeras på en server som har en Outlook klient installerad.

Läs mer

Gissa det hemliga talet

Gissa det hemliga talet Laborationsanvisning Gissa det hemliga talet Steg 2, laborationsuppgift 1 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i

Läs mer

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Behörighetssystem Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Systemet måste kunna registrera vilka resurser, d v s data och databärande

Läs mer

HP Pull Print-lösningar

HP Pull Print-lösningar HP Pull Print-lösningar Vilken pull print-lösning är rätt för ditt företag? HP förstår att ditt företag är unikt. Detta är orsaken till att vi erbjuder flera lösningar för att använda pull printing. Besvara

Läs mer

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll.

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll. Snabbstartsguide Microsoft Access 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden som hjälper dig att minimera inlärningskurvan. Ändra skärmstorleken eller stäng

Läs mer

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Säkerhet

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Säkerhet Avancerade Webbteknologier 2 AD11g Göteborg 2012 Säkerhet Korta punkter Projekt: Något som behöver redas ut? Product: Public Guid CategoryID {g; s;} Public virtual Category Category {g; s;} Category: Public

Läs mer

Modulär design. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Modulär design. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Modulär design Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Separation of Concern principle Do one thing do it well. Separation of Concern är inte specifikt

Läs mer

KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON

KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON Kom i gång med din handbok Standard Innehåll 1 Börja redigera 2 Arbetsbordet 3 Redaktörsfliken 3.1 Uppstart: Att-göra-listor 4 Redigera innehåll

Läs mer

En verktygslåda för tjänsteorientering

En verktygslåda för tjänsteorientering En verktygslåda för tjänsteorientering Martin Rydman Enfo Zystems SOA definierat Från SOA for Dummies: Vi definierar en tjänstearkitektur som en mjukvaruarkitektur för att bygga applikationer som implementerar

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2010-10-08 Sal Tid 8-12 Kurskod Provkod Kursnamn/benämning TDDD36 TEN2 Projekttermin: Säkra Mobila System Institution

Läs mer

Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri. Marcus Wilhelmsson 6 mars 2013

Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri. Marcus Wilhelmsson 6 mars 2013 Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 6 mars 2013 Innehåll 1 Inledning och mål 3 2 Material och genomförande 3 3 Förberedelseuppgifter

Läs mer

Fördjupande uppsats i datalogi

Fördjupande uppsats i datalogi Fördjupande uppsats i datalogi Design Patterns: Elements of Reusable Object-Oriented Software Inledning Jag har läst boken Design Patterns: Elements of Reusable Object-Oriented Software. Boken, som myntade

Läs mer

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 3.0

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 3.0 Regelverk Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag Bilaga A Tekniska ramverk Version: 3.0 Innehållsförteckning 1 Bakgrund och syfte... 1 1.1 Definitioner 1 2 Inledning...

Läs mer

1 Klasser och objektorientering Vad är objektorientering?

1 Klasser och objektorientering Vad är objektorientering? 1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det

Läs mer

SOLID är en akronym för fem stycken designprinciper som används vid mjukvaruutveckling. SOLID står för:

SOLID är en akronym för fem stycken designprinciper som används vid mjukvaruutveckling. SOLID står för: Lektion 32 Övningar Korta punkter Jag vill ha en redovisning från alla grupper där ni går igenom person för person vad personen har ansvarat för och vad och vem personen har parprogrammerat på. Ta även

Läs mer

Properties. Användbara metoder som kan anropas i propertychanged:

Properties. Användbara metoder som kan anropas i propertychanged: Properties Ett objekt kan ha vissa egenskaper (som beskrivs med instansvariabler). En enkel egenskap X avläses och sätts med metoderna getx() och setx(värde). En indexerad egenskap (från t.ex. en array)

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (12) Skolverkets föreskrifter om ämnesplan för ämnet webbutveckling i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning i form av ett fjärde tekniskt år; beslutade

Läs mer

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser. WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14. Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

Filleveranser till VINN och KRITA

Filleveranser till VINN och KRITA Datum Sida 2017-04-25 1 (10) Mottagare: Uppgiftslämnare till VINN och KRITA Filleveranser till VINN och KRITA Sammanfattning I detta dokument beskrivs översiktligt Vinn/Kritas lösning för filleveranser

Läs mer

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Lab 4, 5 ERD PHP + MySQL Återblick Idag Sessions PHP och MySQL för samband Lab 6 725G54: Genomgång projektuppgift Avstämning av kursmål Om sessions På IDA måste ni göra

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! Titta på WCF klienter och förstå dessa. Vad lektionen omfattar WCF Clients Komma åt endpoints Vi har pratat om WCF i stort och vi har pratat om hur vi bygger

Läs mer

Nyhetsdokument Vitec Energiuppföljning

Nyhetsdokument Vitec Energiuppföljning INFORMATION FRÅN VITEC VITEC Nyhetsdokument Vitec Energiuppföljning Version 1.56 feb 2016 VITEC Affärsområde Fastighet www.vitec.se infofastighet@vitec.se Växel 090-15 49 00 GÖTEBORG: REDEG 1 B, 426 77

Läs mer

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Static vs Dynamic binding Override vs Overload Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Quiz: Gissa typen? Object o = new Square(100,100); Polygon p =

Läs mer

Modulär design Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Modulär design Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Modulär design Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Vad är ett bra program? I kursen pratar vi om bra kod utifrån ett utvecklar-perspektiv, dvs det som gör koden lätt

Läs mer

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Övningsuppgift Bankkonton Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering

Läs mer

Övningsuppgifter kapitel 8

Övningsuppgifter kapitel 8 Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans

Läs mer

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

 «Observable» DataGenerator betyder att klassen DataGenerator ärver från den abstrakta klassen Observable. 1 Klassdiagram Markera om följande påståenden är sanna eller falska: " «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable. Om klassen A ärver från

Läs mer