Inhoud leereenheid 3. Validatie van invoer en uitvoer. Introductie 31. Leerkern 32. Terugkoppeling 39

Maat: px
Weergave met pagina beginnen:

Download "Inhoud leereenheid 3. Validatie van invoer en uitvoer. Introductie 31. Leerkern 32. Terugkoppeling 39"

Transcriptie

1 Inhoud leereenheid 3 Validatie van invoer en uitvoer Introductie 31 Leerkern 32 1 Invoervalidatie 32 2 Invoer- en uitvoervalidatie voor webapplicaties 35 Terugkoppeling 39 30

2 Leereenheid 3 Validatie van invoer en uitvoer I N T R O D U C T I E In deze leereenheid besteden we aandacht aan een aantal beruchte vulnerabilities uit het pernicious kingdom Input validation and representation. Deze vulnerabilities behoren tot de meest voorkomende en staan steevast bovenaan in de ranglijsten van vulnerabilities. We besteden ook aandacht aan technieken om deze vulnerabilities af te wenden en valkuilen die vermeden moeten worden. In het eerste deel van deze leereenheid kijken we naar invoervalidatie. In het tweede deel kijken naar webapplicaties, waarbij naast invoervalidatie ook uitvoervalidatie een rol speelt. LEERDOELEN Na het bestuderen van deze leereenheid wordt verwacht dat u kunt uitleggen dat alle invoer, van alle mogelijke bronnen, gevalideerd moet worden alvorens de ingevoerde gegevens gebruikt mogen worden geschikte technieken (indirect selection, whitelisting, reguliere expressies, invoerlengte controleren, minimum en maximum waarde van getallen controleren, geparameteriseerde invoer) voor invoervalidatie kunt toelichten en toepassen valkuilen kunt herkennen bij invoervalidatie, zoals het gebruik van blacklisting, het ondermijnen van security door gebruiksvriendelijkheid, het repareren van ingevoerde gegevens en het tonen van gedetailleerde foutmeldingen de security-concepten trust boundaries en security-enhanced API kunt toelichten het gevaar kunt toelichten van invoer waarin controlestructuren, data en metacharacters zijn toegestaan de vulnerabilities SQL injection, path manipulation, command injection en log forging kunt toelichten de vulnerabilities cross-site scripting, HTTP response splitting, open redirects en cross-site request forgery in webapplicaties kunt toelichten vulnerabilities rondom HTTP sessiemanagement kunt toelichten. Studeeraanwijzing In deze leereenheid bestudeert u twee hoofdstukken uit het tekstboek Secure programming with static analysis van Brian Chess en Jacob West. De theorie in deze hoofdstukken wordt met talloze voorbeelden toegelicht. Het is illustratief en leerzaam om deze voorbeelden te bekijken, maar ze behoren niet expliciet tot de tentamenstof. Na bestudering van deze leereenheid moet u in fragmenten programmacode de behandelde vulnerabilities kunnen aanwijzen en kunnen toelichten hoe ze opgelost kunnen worden. De studielast van deze leereenheid bedraagt circa 8 uur. 31

3 Open Universiteit Software security L E E R K E R N 1 Invoervalidatie Studeeraanwijzing Pagina Pagina 124 Pagina Pagina 135 Weblinks Bestudeer hoofdstuk 5 Handling Input (pagina 117 tot en met 173) uit het tekstboek Secure programming with static analysis van Brian Chess en Jacob West. Het voorbeeld in de sectie Configuration Files heeft betrekking op de invoer van een reguliere expressie. De reguliere expressie bestaat uit een concatenatie van maximaal tien capturing groups. Een capturing group is een subexpressie tussen haakjes, bijvoorbeeld (abc). In Example 5.1 is te zien dat de capturing groups worden opgeslagen in array regmatch[10]. Deze array bestaat uit 10 elementen: regmatch[0] tot en met regmatch[9]. Het aantal capturing groups wordt opgeslagen in de variabele re_nsub. Het is mogelijk dat deze variabele, vermeerderd met 1, een waarde bevat die groter dan 10 is. De variabele regexp verwijst dan naar een array met meer dan 10 elementen, maar in het geheugen is slechts ruimte voor 10 elementen gealloceerd. De tekst onderaan pagina 122 geeft aan dat een reguliere expressie met 10 of meer capturing groups een buffer overflow veroorzaakt. Dat is incorrect: de buffer overflow treedt op bij 11 of meer capturing groups. In Example 5.2 wordt deze vulnerability opgelost door de constante AP_MAX_REG_MATCH te introduceren die de grootte van array regmatch aangeeft. Deze constante wordt in plaats van variabele re_nsub gebruikt om de grootte van de array aan te geven. In Example 5.3 wordt op regel 3 getest of de string args[i] begint met de tekst --delimiter=. Als dat zo is, wordt op regel 4 aan de string delimiter de substring van args[i] toegekend beginnende vanaf element 12, wat overeenkomt met de tekst die achter --delimiter= staat. De bedoeling is dat delimiter een enkel karakter bevat, echter elke string met willekeurige lengte wordt geaccepteerd. In de sidebar Static Analysis: Enforce Trust Boundaries komt het begrip taint propagation ter sprake. Tainted data zijn ingevoerde gegevens die mogelijk gevaarlijk kunnen zijn. Taint propagation analyse detecteert de tainted dataflow van bron (invoer van gegevens) naar bestemming (gebruik van gegevens in gevaarlijke operatie). Taint propagation analyse wordt toegepast in statische analyse van programmacode. In leereenheid 10 komt dit uitgebreider aan de orde. Reguliere expressies vormen een krachtig hulpmiddel om invoer te valideren. In Example 5.10 bevat de string regex een reguliere expressie. De escape sequence \\ in een Javastring duidt het backslash-karakter ( \ ) aan. De string regex representeert derhalve de reguliere expressie ^[0-9\-\. ]+$. Hierin duidt ^ het begin van een regel aan, $ het einde van een regel, escape sequence \- het karakter - en escape sequence \. het karakter.. Ontdaan van alle franje luidt de reguliere expressie dus [0-9-. ]+. Deze expressie duidt een reeks aan die bestaat uit één of meer tekens, waarbij elke teken een getal is (0-9), een dash ( - ), een punt (. ) of een spatie ( ). 32

4 Leereenheid 3 Validatie van invoer en uitvoer Het Javapackage java.util.regex bevat drie klassen (Pattern, Matcher en PatternSyntaxException) waarmee gecontroleerd kan worden of een zekere reeks karakters voldoet aan een reguliere expressie. Een object van de klasse Pattern is een gecompileerde representatie van een reguliere expressie. Een Pattern object wordt geconstrueerd door de methode Pattern.compile aan te roepen met een reguliere expressie als argument. Een Matcher object interpreteert de reguliere expressie en matcht de expressie met een input string. Een Matcher object wordt geconstrueerd door de methode Pattern.matcher. Een voorbeeld: Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); De string aaaaab voldoet aan de reguliere expressie a*b. De variabele b heeft daarom de waarde true. Deze reeks opdrachten kan ook verkort geschreven worden als boolean b = Pattern.matches("a*b", "aaaaab"); Pagina 136 In Example 5.11 geeft de string sep de reguliere expressie \s*[.-]?\s* aan. De escape sequence \s duidt een whitespace karakter aan (zoals spatie of tab). De quantifier * duidt nul of meer aan, en? nul of één. De reguliere expressie representeert dus een reeks tekens die bestaat uit nul of meer whitespace karakters, eventueel gevolgd door. of -, en afgesloten door nul of meer whitespace karakters. In Example 5.11 wordt deze reeks gebruikt om de groepen getallen in een telefoonnummer van elkaar te scheiden. OPGAVE 3.1 Schrijf een Java-programma dat een wachtwoord inleest en controleert met behulp van reguliere expressies of dit wachtwoord uit minimaal 8 tekens bestaat waaronder minstens één hoofdletter, minstens één kleine letter, minstens één cijfer en minstens één van de volgende nietalfanumerieke #, $, %, ^, &, *, (, ) en?. Maak gebruik van package java.util.regex en eventueel de Javaklasse RegexTestHarness.java (zie link op Studienet). Pagina 140 Pagina 146 In URL encoding worden gereserveerde karakters weergegeven in de percent encoding. Zo wordt het karakter : gerepresenteerd als %3A, het karakter \ als %5C en het karakter % als %25. Een string wordt in C gerepresenteerd als een array van characters waarbij het laatste character een null character ('\0') moet zijn. Bij geheugenallocatie moet hiermee rekening worden gehouden. De programmacode char a[3] = abc ; is daarom incorrect en dient char a[4] = abc ; te zijn. De functie readlink heeft drie parameters: char *path, char *buf en size_t bufsize. De pointer path wijst naar een string die het pad naar een symbolische link bevat. De functie readlink plaatst de naam van het bestand waarnaar de symbolische link wijst, in de variabele buf. De variabele bufsize geeft de grootte van buf aan. De terugkeerwaarde geeft het aantal characters dat in buf is geplaatst. Bij fouten is de terugkeerwaarde

5 Open Universiteit Software security Pagina Weblinks In C# wordt een OverflowException gegenereerd als een integer overflow optreedt. Java heeft daarentegen geen standaard ingebouwde verdediging tegen integer overflows. Alleen de integer deeloperator (/) en integer modulo-operatie (%) kunnen een ArithmeticException genereren. Verder kent Java alleen signed integer types, behalve dan het type char dat wordt gerepresenteerd als een 16-bit unsigned waarde. Op de cursussite in Studienet vindt u achtergrondinformatie over de getalrepresentatie in Java. OPGAVE 3.2 Een programma bevat de volgende programmacode, waarin alle variabelen van het type integer zijn: size = (elements * sizeof(elements)) + sizeof(header); Er treedt een integer overflow op als size groter is dan MAX_INT. Geef een stukje programmacode dat het optreden van een integer overflow tijdens run-time voorkomt. Pagina Weblinks Pagina 166 Weblinks JDBC (Java Database Connectivity) is een standaard Java-interface om vanuit Java te communiceren met een relationele database. Deze interface heeft de subinterfaces PreparedStatement en CallableStatement waarmee SQL injection voorkomen kan worden. In Example 5.29 wordt een PreparedStatement object toegepast. De regel PreparedStatement stmt = conn.preparestatement(query); stuurt de SQL-query SELECT * FROM items WHERE owner =? AND itemname =? naar het DBMS waar de query wordt gecompileerd. Het PreparedStatement object bevat dus een gecompileerde SQL-query. De vraagtekens in deze query dienen als placeholders (bind parameters). In de opdrachten stmt.setstring(1, username); en stmt.setstring(2, itemname); worden vervolgens waarden aan deze parameters toegekend. Met de opdracht ResultSet rs = stmt.executequery(); wordt de query ten slotte door het DBMS uitgevoerd. Met een geparameteriseerde SQL-query wordt het onderscheid tussen SQL-opdrachten en data expliciet gemaakt. De bind parameters kunnen alleen data bevatten, waarmee SQL-injectie voorkomen kan worden. Correct gebruik van geparameteriseerde queries is daarbij natuurlijk wel een vereiste. Example 5.30 toont hoe het niet moet. Een voorbeeld van een stored procedure in Oracle's PL/SQL is als volgt: CREATE PROCEDURE login (name VARCHAR(100), pwd VARCHAR(100))AS nvarchar(4000) =' SELECT * FROM Account WHERE username=' + 'AND password=' EXEC (@sql) Deze stored procedure kan vanuit Java als volgt aangeroepen worden: CallableStatement proc = connection.preparecall("{call login(?,?)"); proc.setstring(1, username); proc.setstring(2, password); Hier is sprake van een geparameteriseerde call. 34

6 Leereenheid 3 Validatie van invoer en uitvoer OPGAVE 3.3 Bekijk de onderstaande Javacode waarin een stored procedure in Oracle PL/SQL wordt aangeroepen om de postcode van een plaats op te vragen. String name = request.getparameter("name"); String sql = "GetPostalCode('" + name + "');"; CallableStatement cs = conn.preparecall(sql); cs.executeupdate(); String result = cs.getstring(1); cs.close(); a Wat is de vulnerability in deze code? b Geef een voorbeeld van hoe deze vulnerability misbruikt kan worden. c Repareer de code. Pagina 168 Example 5.33 kwam ook in leereenheid 2 (opgave 2.1) aan de orde. 2 Invoer- en uitvoervalidatie voor webapplicaties Studeeraanwijzing Pagina 301 Pagina 303 Pagina Bestudeer sectie 9.1 Input and Output Validation for the Web, sectie 9.2 HTTP Considerations en sectie 9.3 Maintaining Session State (pagina 297 tot en met 336) uit het tekstboek Secure programming with static analysis van Brian Chess en Jacob West. In sectie 9.2 (pagina ) gaan we verder in op de verschillen tussen POST en GET. Op de laatste regel wordt gesteld dat cross-site scripting in 2006 de meest verbreide software vulnerability was volgens CWE. De ranglijsten van software vulnerabilities worden regelmatig bijgesteld (zie leereenheid 2). Cross-site scripting was en is een van de meest verbreide vulnerabilities in webapplicaties. Cross-site scripting (XSS) is een vulnerability ten gevolge van gebrekkige validatie van invoer en uitvoer door een webserver. In het tekstboek komen twee vormen van XSS aan de orde: reflected en stored XSS. Reflected XSS wordt ook wel aangeduid als nonpersistent XSS of type 1 XSS; stored XSS wordt ook wel aangeduid als persistent XSS of type 2 XSS. Bij reflected XSS is er altijd sprake van een of andere vorm van social engineering. Het slachtoffer wordt verleid om op een link te klikken, bijvoorbeeld in een phishing of op een malafide website. De link kan bijvoorbeeld een query parameter met JavaScript-code bevatten. Als de webserver de JavaScript-code terugzendt naar de browser van het slachtoffer, wordt de code daar uitgevoerd. De code kan bijvoorbeeld het cookie van het slachtoffer naar de aanvaller doorsturen. Een ander voorbeeld is dat de code een webformulier aan het slachtoffer toont waarin deze wordt verzocht om informatie in te vullen, die vervolgens naar de aanvaller wordt doorgestuurd. Dit wordt in Figure 9.4 geschetst. Bij stored XSS is social engineering niet nodig. De aanvaller injecteert code in de dynamische content van webpagina s die op de webserver wordt opgeslagen (als verzuimd wordt om deze invoer te valideren). Als een volgende bezoeker deze webpagina s bezoekt, wordt de code naar de browser van deze bezoeker gestuurd (als verzuimd wordt om deze uitvoer te valideren) en wordt de code door de browser uitgevoerd. 35

7 Open Universiteit Software security De oudste vorm van stored XSS trad op bij websites die een gastenboek aanbieden waarin bezoekers een bericht kunnen achterlaten. Een kwaadwillende gebruiker kan aan dit bericht bijvoorbeeld JavaScriptopdrachten toevoegen, die door de browsers van volgende bezoekers wordt uitgevoerd. Dit wordt in Figure 9.5 geschetst. XSS is in de eerste plaats een vulnerability in de webserver, aangezien de webserver malicious content naar de client stuurt. De tussenkomst van de webserver is echter niet altijd vereist, bijvoorbeeld als de code reeds aanwezig is in de browsercache van de client. Een derde vorm van XSS staat bekend als DOM-based XSS, ook wel local XSS of type 0 XSS genoemd. Ook daarbij is geen tussenkomst van de webserver vereist. De aanvaller maakt daarbij gebruik van run-time embedding in webpagina s om kwaadaardige code in de DOM (Document Object Model) te plaatsen. OPGAVE 3.4 Op Studienet vindt u links naar twee animaties waarin voorbeelden van stored XSS worden gegeven. Bekijk deze animaties. Van welke vulnerability maakt Mel gebruik? Pagina Pagina De sidebar geeft een aardige illustratie van de werkwijze van een hacker. Het bestaat veelal uit trial-and-error en het zoeken naar creatieve oplossingen om beveiligingsmechanismen te omzeilen. Zoals toegelicht, lag het gebruik van blacklisting aan de basis waardoor XSS in deze webapplicatie mogelijk is. XSS kan voorkomen worden door invoer- en uitvoervalidatie, bij voorkeur door gebruik te maken van whitelisting en output encoding. Verder is toepassing van het principle of least privilege op zijn plaats, zoals het uitschakelen van scripting talen, toegang tot cookies inperken en gevoelige gegevens niet in cookies opslaan. Op pagina 313 wordt JSP als voorbeeld gegeven. JSP (JavaServer Pages) is gebaseerd op Java en bedoeld voor het server side ontwikkelen van dynamische websites. JSP ondersteunt scripting elementen en tags die vergelijkbaar zijn met HTML en XML markup. De JSP Standard Tag Library (JSTL) implementeert een aantal basisfuncties zoals data formatting. Output encoding, ook wel escaping genoemd, is een techniek die ervoor zorgt dat karakters worden behandeld als data in plaats van metakarakters die deel uitmaken van programmacode. Er zijn talloze manieren voor output encoding in diverse programmeertalen en API s; sommige maken gebruik van escape sequences, andere hebben een geavanceerdere syntax. Welke het beste toegepast kan worden, hangt af van hoe de data gebruikt wordt, zoals in de body van een HTML document, als HTML attribute, in JavaScript, CSS, XML, een URL of een SQL-query. In Example 9.5 wordt HTML entity encoding toegepast, waarbij sommige karakters vervangen worden door hun HTML-equivalent. Bijvoorbeeld het karakter < wordt vervangen door <. In Example 9.6 wordt URL encoding toegepast, waarbij sommige karakters vervangen worden door een % teken gevolgd door de ASCII-waarde in hexadecimale notatie. 36

8 Leereenheid 3 Validatie van invoer en uitvoer Pagina 314 Pagina 327 Bij XSS is de kwaadaardige code ingebed in de body van de HTML-pagina die naar de client wordt verstuurd. Bij HTTP response splitting wordt de kwaadaardige code ingebed in de HTTP-header van de webpagina die naar de client wordt verstuurd. Cross-site request forgery wordt gewoonlijk afgekort tot CSRF of XSRF. OPGAVE 3.5 Op Studienet vindt u een link naar een animatie waarin een voorbeeld van CSRF wordt gegeven. Bekijk deze animatie. Vergelijk deze aanval met de car auction XSS animatie uit opgave 3.4. Wat is het onderscheid tussen CSRF en XSS? Pagina Tot slot Weblinks Omdat HTTP toestandloos is, dient een webapplicatie zelf sessiemanagement te implementeren. Aan het begin van een sessie zal de webserver een session identifier toekennen en deze aan de client meedelen. De client dient deze session identifier in volgende requests mee te sturen, zodat de server deze requests aan de sessie kan koppelen. De session identifier wordt gewoonlijk via een cookie HTTP header, een URL query string of een hidden form field tussen client en server uitgewisseld. De session identifier dient complex en willekeurig genoeg zijn zodat deze niet door een buitenstaander geraden kan worden. Tevens dient de session identifier versleuteld verzonden te worden, bij voorkeur via HTTPS, zodat een buitenstaander deze niet kan afluisteren. Vanuit oogpunt van security dient een sessie ook netjes afgesloten te worden, bijvoorbeeld door een logout-functie. Een gevaar daarbij is dat de gebruiker de sessie verlaat, maar verzuimt om de logout-functie te gebruiken waardoor de sessie open blijft. Het is daarom aan te raden om sessies slechts een beperkte levensduur te geven (gewoonlijk 20 tot 30 minuten), waarna de server de sessie beëindigt. Een vulnerability is verder een incorrecte logout-functie die de sessie niet of slechts ten dele beëindigt. Een voorbeeld is de terugknop waarmee de gebruiker na uitloggen terug kan keren naar de sessie zonder opnieuw te hoeven inloggen. Als afsluiting van deze leereenheid vatten we een aantal technieken samen voor validatie van invoer en uitvoer in webapplicties, zoals weergegeven in de OWASP Secure Coding Practices Quick Reference Guide. Input Validation: Conduct all data validation on a trusted system (e.g., the server) Identify all data sources and classify them into trusted and untrusted; validate all data from untrusted sources (e.g., databases, file streams, etcetera) There should be a centralized input validation routine for the application Specify proper character sets, such as UTF-8, for all sources of input Encode data to a common character set before validating (canonicalize) All validation failures should result in input rejection Determine if the system supports UTF-8 extended character sets and if so, validate after UTF-8 decoding is completed 37

9 Open Universiteit Software security Validate all client provided data before processing, including all parameters, URLs and HTTP header content (e.g., cookie names and values); be sure to include automated post backs from JavaScript, Flash or other embedded code Verify that header values in both requests and responses contain only ASCII characters Validate data from redirects (an attacker may submit malicious content directly to the target of the redirect, thus circumventing application logic and any validation performed before the redirect) Validate for expected data types Validate data range Validate data length Validate all input against a white list of allowed characters, whenever possible If any potentially hazardous characters must be allowed as input, be sure that you implement additional controls like output encoding, secure task-specific APIs and accounting for the utilization of that data throughout the application; examples of common hazardous characters include: < > " ' % ( ) & + \ \' \" If your standard validation routine cannot address the following inputs, then they should be checked discretely: check for null bytes (%00), check for new line characters (%0d, %0a, \r, \n), check for dot-dot-slash (../ or..\) path alterations characters; in cases where UTF-8 extended character set encoding is supported, address alternate representation like: %c0%ae%c0%ae/ (utilize canonicalization to address double encoding or other forms of obfuscation attacks). Output Encoding: Conduct all encoding on a trusted system (e.g., the server) Utilize a standard, tested routine for each type of outbound encoding Contextually output encode all data returned to the client that originated outside the application's trust boundary; HTML entity encoding is one example, but does not work in all cases Encode all characters unless they are known to be safe for the intended interpreter Contextually sanitize all output of untrusted data to queries for SQL, XML, and LDAP Sanitize all output of untrusted data to operating system commands. 38

10 Leereenheid 3 Validatie van invoer en uitvoer T E R U G K O P P E L I N G 3.1 Een reguliere expressie zou er als volgt uit kunnen zien: [ [A-Z]+ [a-z]+ [0-9]+ [!@#$%^&*()?]+ ]{8,. Deze expressie is opgebouwd uit geneste karakterklassen. Helaas ondersteunt package java.util.regex geen nesting. Een alternatief is daarom om vijf aparte reguliere expressies te nemen, en te controleren of het ingevoerde wachtwoord aan elk van deze vijf reguliere expressies voldoet. Het Java-programma kan er bijvoorbeeld als volgt uitzien: import java.io.*; import java.util.regex.pattern; import java.util.regex.matcher; public class RegexTestHarness { public static void main(string[] args) throws IOException { InputStreamReader c = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(c); String[] regex = new String[5]; int i; regex[0] = "[A-Z]+"; regex[1] = "[a-z]+"; regex[2] = "[0-9]+"; regex[3] = "[!@#$%^&*()?]+"; regex[4] = ".{8,"; while (true) { System.out.print("Password: "); String password = in.readline(); for (i=0; i<5; i++) { Pattern pattern = Pattern.compile(regex[i]); Matcher matcher = pattern.matcher(password); if (!matcher.find()) System.out.println("Password does not match regular expression "+regex[i]); 39

11 Open Universiteit Software security Een elegantere oplossing is om gebruik te maken van een reguliere expressie bestaande uit non-capturing groups met een lookahead operatie: import java.util.regex.pattern; import java.util.regex.matcher; import javax.swing.joptionpane; public class RegexTestHarness { public static void main(string[] args) { String regexpr ="^(?=.*[0-9])"+"(?=.*[a-z])"+ "(?=.*[A-Z])"+"(?=.*[!@#$%^&*()?])"+".{8,$"; Pattern pattern = Pattern.compile(regexpr); while (true) { String input = JOptionPane.showInputDialog("password", null); Matcher matcher = pattern.matcher(input); if (matcher.matches()) { System.out.println("Password is ok."); else { System.out.println("Password is not ok."); 3.2 Er moet gelden dat (elements * sizeof(elements)) + sizeof(header) MAX_INT. Deze expressie kunnen we herschrijven als MAX_INT - (elements * sizeof(elements)) - sizeof(header) 0. In deze expressie kan nog steeds een integer overflow optreden als elements * sizeof(elements) > MAX_INT. We herschrijven de expressie daarom tot (MAX_INT - sizeof(header)) / sizeof(elements) elements. In deze expressie treedt geen integer overflow op, aangezien er geldt dat sizeof(header), sizeof(elements) en elements groter dan nul en kleiner dan MAX_INT zijn. We kunnen het optreden van een integer overflow daarom tijdens runtime voorkomen met de volgende code: if ((MAX_INT - sizeof(header)) / sizeof(elements) >= elements) size = (elements * sizeof(elements)) + sizeof(header); else // genereer exceptie of foutmelding, // of repareer bv. met size = MAX_INT; 3.3 a De vulnerability wordt veroorzaakt doordat de SQL-query wordt samengesteld uit een string concatenatie. Er wordt verzuimd om gebruik te maken van geparameteriseerde invoer. Deze vulnerability is vergelijkbaar met Example

12 Leereenheid 3 Validatie van invoer en uitvoer b De ontwikkelaar had in gedachte dat de gebruiker een plaatsnaam invoert. Een voorbeeld is de plaatsnaam Boston. De call is dan GetPostalCode( Boston );. Een aanvaller kan echter bijvoorbeeld een willekeurige opdracht toevoegen zoals '); delete * from users; commit; --. De call luidt dan: GetPostalCode(''); delete * from users; commit; c De gerepareerde code luidt als volgt: String name = request.getparameter("name"); CallableStatement cs = conn.preparecall("getpostalcode(?);"); cs.setstring(1, name); cs.executeupdate(); String result = cs.getstring(1); cs.close(); 3.4 Mel observeert in beide animaties dat de webapplicatie toestaat om code, zoals HTML en JavaScript, in het bericht op te nemen. Op zich is dat niet zorgwekkend. De situatie wordt echter gevaarlijk als de webapplicatie geen invoervalidatie uitvoert om deze code uit het bericht te verwijderen. Het gaat echt mis als de webapplicatie naast invoer- ook uitvoervalidatie verzuimt. Het bericht met kwaadaardige code komt dan terecht bij een andere gebruiker waar de code door diens browser wordt uitgevoerd. De vulnerability is dus gebrek aan validatie van invoer en/of uitvoer. 3.5 Het essentiële onderscheid is dat XSS misbruik maakt van het vertrouwen dat een client in een website of webapplicatie heeft, terwijl CSRF misbruik maakt van het vertrouwen dat de website of webapplicatie in de client heeft. In de car auction XSS-animatie vertrouwt Alice erop dat de getoonde webpagina s legitiem zijn. Een van de webpagina s bevat echter een script waarmee haar cookie naar de webserver van Mel wordt verstuurd. Vervolgens zou Mel dit cookie kunnen gebruiken om spoofing te plegen en zich als Alice voor te doen, maar strikt genomen behoort dat vervolg van de aanval niet meer tot XSS. De CSRF-animatie schetst een vergelijkbaar situatie, waarin Alice erop vertrouwt dat de getoonde webpagina s legitiem zijn. Een van de webpagina s ontlokt echter een request naar de webserver waarin ze een bod uitbrengt. De webapplicatie gaat er van uit dat dit bod door Alice gedaan is, aangezien het bericht afkomstig is van Alice zelf. In feite is het eerste deel van de aanval, waarin Mel de code injecteert in de webserver, een vorm van stored XSS. Het tweede deel van de aanval, waarin Alice onwetend het bod plaatst, is de daadwerkelijke CSRF. 41

Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop

Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop 1 Agenda Injection Cross Site Scripting Session Hijacking Cross Site Request Forgery #1 OWASP #2 top 10 #3 #5 Bezoek www.owasp.org

Nadere informatie

Cursus Software security. Harald Vranken

Cursus Software security. Harald Vranken Cursus Software security Harald Vranken Rondleiding Onderwerp van cursus Cursusmateriaal Cursusstructuur Cursusinhoud per leereenheid (highlights) 2 Waarover gaat de cursus? Software security engineering

Nadere informatie

WEBSECURITY INFORMATICA STUDENTENWERKING. Gemaakt door Bryan De Houwer en Yuri Moens

WEBSECURITY INFORMATICA STUDENTENWERKING. Gemaakt door Bryan De Houwer en Yuri Moens WEBSECURITY INFORMATICA STUDENTENWERKING Gemaakt door Bryan De Houwer en Yuri Moens ISW Informatica studentenwerking voor en door studenten Wat bieden wij aan: Workshops Shell accounts Altijd bereikbaar

Nadere informatie

Back to the Future. Marinus Kuivenhoven Sogeti

Back to the Future. Marinus Kuivenhoven Sogeti Back to the Future Marinus Kuivenhoven Sogeti 1 Commodore 64 2 Commodore 1541 floppy drive 3 Assymetrisch gedrag Een operatie die voor een overgang zorgt.. Waarbij heen minder kost dan terug 4 Assymetrisch

Nadere informatie

What is the advantage of using expression language instead of JSP scriptlets and JSP expressions?

What is the advantage of using expression language instead of JSP scriptlets and JSP expressions? Web 3: Theorievragen No Scriptlets What is the advantage of using expression language instead of JSP scriptlets and JSP expressions? Geen javacode tussen de html. What is the difference between the. operator

Nadere informatie

Dynamische webapplicaties in Java

Dynamische webapplicaties in Java Dynamische webapplicaties in Java October 7, 2006 In java is het mogelijk dynamische webpagina s te implementeren. De code om de dynamische gegevens te genereren staat in servlets of Java Server Pages

Nadere informatie

Plan van aanpak. 1 Inleiding. 2 Onderzoek. 3 Taken. Kwaliteitswaarborging van webapplicaties. Rachid Ben Moussa

Plan van aanpak. 1 Inleiding. 2 Onderzoek. 3 Taken. Kwaliteitswaarborging van webapplicaties. Rachid Ben Moussa Plan van aanpak Rachid Ben Moussa Kwaliteitswaarborging van webapplicaties 1 Inleiding De meeste zwakheden in software worden veroorzaakt door een klein aantal programmeerfouten. Door het identificeren

Nadere informatie

Security web services

Security web services Security web services Inleiding Tegenwoordig zijn er allerlei applicaties te benaderen via het internet. Voor bedrijven zorgt dit dat zei de klanten snel kunnen benaderen en aanpassingen voor iedereen

Nadere informatie

Security Pentest. 18 Januari 2016. Uitgevoerde Test(s): 1. Blackbox Security Pentest 2. Greybox Security Pentest

Security Pentest. 18 Januari 2016. Uitgevoerde Test(s): 1. Blackbox Security Pentest 2. Greybox Security Pentest DEMO PENTEST VOOR EDUCATIEVE DOELEINDE. HET GAAT HIER OM EEN FICTIEF BEDRIJF. 'Inet Veilingen' Security Pentest 18 Januari 2016 Uitgevoerde Test(s): 1. Blackbox Security Pentest 2. Greybox Security Pentest

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Inhoud leereenheid 2. Software vulnerabilities. Introductie 23. Leerkern 23. Terugkoppeling 26

Inhoud leereenheid 2. Software vulnerabilities. Introductie 23. Leerkern 23. Terugkoppeling 26 Inhoud leereenheid 2 Software vulnerabilities Introductie 23 Leerkern 23 1 Taxonomie van software vulnerabilities 23 2 Tot slot 25 Terugkoppeling 26 22 Leereenheid 2 Software vulnerabilities I N T R O

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 Functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Cursusmaterialen 7 2.2 Voorkennis 8 2.3 Leerdoelen van de cursus 8 2.4 Opbouw van de cursus 9 3 Studeeraanwijzing

Nadere informatie

Checklist beveiliging webapplicaties

Checklist beveiliging webapplicaties Versie 1.02-5 oktober 2011 Factsheet FS 2011-08 Checklist beveiliging webapplicaties De beveiliging van webapplicaties staat de laatste maanden sterk in de belangstelling. Diverse incidenten op dit gebied

Nadere informatie

Third party mededeling

Third party mededeling Third party mededeling Vertrouwelijk Klant AFAS Product AFAS Insite Versie 1.0 Auteur David van der Sluis Datum 26 juni 2017 1. Introductie Op verzoek van AFAS verstrekt Computest hierbij een Third Party

Nadere informatie

DOMjudge teamhandleiding

DOMjudge teamhandleiding judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat

Nadere informatie

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008 judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3

Nadere informatie

Webapplication Security

Webapplication Security Webapplication Security Over mijzelf 7 jaar in websecurity Oprichter van VirtuaX security Cfr. Bugtraq Recente hacks hak5.org wina.ugent.be vtk.ugent.be... Aantal vulnerable websites Types vulnerable

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Secure Application Roles

Secure Application Roles Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam

Nadere informatie

Testnet Presentatie Websecurity Testen "Hack Me, Test Me" 1

Testnet Presentatie Websecurity Testen Hack Me, Test Me 1 Testnet Voorjaarsevenement 05 April 2006 Hack Me, Test Me Websecurity test onmisbaar voor testanalist en testmanager Edwin van Vliet Yacht Test Expertise Center Hack me, Test me Websecurity test, onmisbaar

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

UWV Security SSD Instructies

UWV Security SSD Instructies UWV Security SSD Instructies BESTEMD VOOR : Patrick van Grevenbroek AUTEUR(S) : Gabriele Biondo / T. Uding (vertaling) VERSIE : 1.0 DATUM : 20-03-2014 HISTORIE Datum Auteur(s) Omschrijving 20/03/2014 Gabriele

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

Intermax backup exclusion files

Intermax backup exclusion files Intermax backup exclusion files Document type: Referentienummer: Versienummer : Documentatie 1.0 Datum publicatie: Datum laatste wijziging: Auteur: 24-2-2011 24-2-2011 Anton van der Linden Onderwerp: Documentclassificatie:

Nadere informatie

Zest Application Professionals Training &Workshops

Zest Application Professionals Training &Workshops Het in kaart krijgen van kwetsbaarheden in Websites & Applicaties en hoe deze eenvoudig te voorkomen zijn, wordt in Applicatie Assessments aangetoond en in een praktische Workshop behandelt. U doet hands-on

Nadere informatie

Server Side Scripting

Server Side Scripting Server Side Scripting Formulieren & beveiliging Vakopzet C 1 2 3 4 5 6 7 8 9 WC TOETS Lessen Lesweek 1 (47) Vakoverzicht en introductie Lesweek 2 (48) Doornemen Ch3 (40p) Lesweek 3 (49) Deeltoets 1, Doornemen

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Je website (nog beter) beveiligen met HTTP-Security Headers

Je website (nog beter) beveiligen met HTTP-Security Headers Je website (nog beter) beveiligen met HTTP-Security Headers Wat is HTTP? Het HTTP (Hypertext Transfer Protocol) protocol is een vrij eenvoudig, tekst gebaseerd, protocol. Dit HTTP protocol regelt de communicatie

Nadere informatie

Maillijsten voor medewerkers van de Universiteit van Amsterdam

Maillijsten voor medewerkers van de Universiteit van Amsterdam See page 11 for Instruction in English Maillijsten voor medewerkers van de Universiteit van Amsterdam Iedereen met een UvAnetID kan maillijsten aanmaken bij list.uva.nl. Het gebruik van de lijsten van

Nadere informatie

Technical Note. API Beschrijving Aangetekend Mailen

Technical Note. API Beschrijving Aangetekend Mailen AUTHOR APPROVED Technical Note API Beschrijving Referentie: API beschrijving AM Versie: 0.0.7 Datum: 2015-07-24 Aangetekend Bellen B.V. Computerweg 5 Postbus 8307 3503 RH Utrecht T: +31 346 581 731 support@aangetekendmailen.nl

Nadere informatie

Verslag Informatiebeveiliging

Verslag Informatiebeveiliging Verslag Informatiebeveiliging Onderwerp: Cross Site Scripting Auteurs: Marijn marijn at net-force.nl Tha Potterrr Website: http://www.net-force.nl Versie: Versie: 1.1 Datum: 2004-10-14 Inhoudsopgave 1.0

Nadere informatie

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 1 Inhoudsopgave INHOUDSOPGAVE 2 1 VERBINDING MET DE API 4 1.1 QUICK START 4 2 SMS PARAMETERS 5 2.1 VERPLICHTE PARAMETERS 6

Nadere informatie

Deny nothing. Doubt everything.

Deny nothing. Doubt everything. Deny nothing. Doubt everything. Hack to the Future Marinus Kuivenhoven Sr. Security Specialist Houten, 23 juni 2015 marinus.kuivenhoven@sogeti.com 2 Het valt op Wij leren niet van het verleden Zekerheid

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

Y.S. Lubbers en W. Witvoet

Y.S. Lubbers en W. Witvoet WEBDESIGN Eigen Site Evaluatie door: Y.S. Lubbers en W. Witvoet 1 Summary Summary Prefix 1. Content en structuur gescheiden houden 2. Grammaticaal correcte en beschrijvende markup 3. Kopregels 4. Client-

Nadere informatie

Tentamen Imperatief Programmeren

Tentamen Imperatief Programmeren Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Les 9: formulier controle met javascript.

Les 9: formulier controle met javascript. Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet

Nadere informatie

Third party mededeling

Third party mededeling Third party mededeling Vertrouwelijk Klant Product AFAS Outsite / Payroll Cloud Versie 1.0 Auteur David van der Sluis Datum 26 juni 2017 1. Introductie Op verzoek van verstrekt Computest hierbij een Third

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren

Nadere informatie

Proware Cloud Webbuilder Versie 2.30

Proware Cloud Webbuilder Versie 2.30 Proware Cloud Webbuilder Versie 2.30 Laatste update: 02-12-2013 Inhoudsopgave Het principe van open login... 3 Functie- en procedurebeschrijving... 5 Loginfunctie... 5 Bevestigingsfunctie... 5 Demobestanden...

Nadere informatie

Regular Expressions in Java (1)

Regular Expressions in Java (1) Sinds versie 1.4 zijn Regular Expressions (kortweg RegEx) onderdeel van Java. Deze kunnen veel code terugbrengen tot slechts enkele statements. In het eerste deel uit een serie van twee artikelen van Jesse

Nadere informatie

Overheidsservicebus met volledige Digikoppeling connectiviteit. Foutberichten en foutafhandeling

Overheidsservicebus met volledige Digikoppeling connectiviteit. Foutberichten en foutafhandeling Foutberichten en foutafhandeling FOUTEN BIJ ONTVANGST BERICHT OT20308 Generieke fout, maar de meest voorkomende is het niet kunnen vinden van een entrypoint URL Verkeerde URL wordt aangesproken door of

Nadere informatie

Les 15 : updaten van gegevens in de database (deel2).

Les 15 : updaten van gegevens in de database (deel2). Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken

Nadere informatie

Externe pagina s integreren in InSite en OutSite

Externe pagina s integreren in InSite en OutSite Externe pagina s integreren in InSite en OutSite Document-versie: 1.1 Datum: 04-10-2013 2013 AFAS Software Leusden Niets uit deze uitgave mag verveelvoudigd worden en/of openbaar gemaakt worden door middel

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% Naam project Lost And Found Animals Url Lokaal gehost Groepsleden Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% 1. Beveiliging in de toepassing Naam gebruiker Wachtwoord

Nadere informatie

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Dynamische Websites. Week 2

Dynamische Websites. Week 2 Dynamische Websites Week 2 AGENDA Labo 1 GET, POST Navigatie, etc Varia 1 2

Nadere informatie

Formulieren maken met Dreamweaver CS 4/CS 5

Formulieren maken met Dreamweaver CS 4/CS 5 Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

WEBAPPLICATIE-SCAN. Kiezen op Afstand

WEBAPPLICATIE-SCAN. Kiezen op Afstand WEBAPPLICATIE-SCAN Kiezen op Afstand Datum : 1 september 2006 INHOUDSOPGAVE 1 t Y1anagementsamen"'v atting 2 2 Inleiding 3 2.1 Doelstelling en scope ".".. " " " ".".3 2.2 Beschrijving scanproces.. """

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Help! Mijn website is kwetsbaar voor SQL-injectie

Help! Mijn website is kwetsbaar voor SQL-injectie Help! Mijn website is kwetsbaar voor SQL-injectie Controleer uw website en tref maatregelen Factsheet FS-2014-05 versie 1.0 9 oktober 2014 SQL-injectie is een populaire en veel toegepaste aanval op websites

Nadere informatie

Ingebouwde klassen & methodes

Ingebouwde klassen & methodes Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private

Nadere informatie

Reguliere Expressies

Reguliere Expressies Reguliere Expressies Een reguliere expressie (regexp, regex, regxp) is een string (een woord) die, volgens bepaalde syntaxregels, een verzameling strings (een taal) beschrijft Reguliere expressies worden

Nadere informatie

Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO

Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO Handleiding/Manual Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO Inhoudsopgave / Table of Contents 1 Verbinden met het gebruik van

Nadere informatie

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

Nadere informatie

VoipCenter Application Programming Interface (API)

VoipCenter Application Programming Interface (API) Introductie Via de VoipCenter PBX API is het mogelijk om : 1. informatie op te vragen inzake de configuratie van : - SIP-accounts - Telefoonnummers - Tijdfilters zoals feestdagen, vakantieperiodes en kantooruren

Nadere informatie

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK IBAN API Simpel & krachtig Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK Introductie De Betaalfabriek IBAN API is een REST API om IBAN-conversie en validatie te integreren in uw administratiesysteem,

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet. Hoofdstuk 2 Een ASP.NET applicatie met ADO.NET opzetten In dit hoofdstuk ga je een eenvoudige website opzetten, waarbij je een aantal gegevens uit een database ophaalt. Je moet je kennis van ADO.NET dus

Nadere informatie

Handleiding Installatie ADS

Handleiding Installatie ADS Handleiding Installatie ADS Versie: 1.0 Versiedatum: 19-03-2014 Inleiding Deze handleiding helpt u met de installatie van Advantage Database Server. Zorg ervoor dat u bij de aanvang van de installatie

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Tekstboeken 7 2.2 Voorkennis 8 2.3 Leerdoelen 9 2.4 Opbouw van de cursus 10 3 Leermiddelen en wijze van

Nadere informatie

Poging 3: KEY001: SESID: Hiermee zijn we ingelogd als gebruiker DEMO2 :

Poging 3: KEY001: SESID: Hiermee zijn we ingelogd als gebruiker DEMO2 : Portaal A Dit portaal is een portaal geschreven in ASP.NET, en wordt slechts gebruikt (voor zover wij konden beoordelen) door één leasemaatschappij. Zoals bij elke test van een webapplicatie starten wij

Nadere informatie

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Studenten: Peter Asnong Rik Broens Tom De Keyser Daan Gielen Kris Gregoire Koen Olaerts Toon Wouters Inhoudsopgave

Nadere informatie

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11 Web building gevorderden: CSS & JavaScript Karel Nijs 2008/11 Webbuilding gevorderden les 3 JavaScript intro JavaScript invoegen JavaScript statements JavaScript popup berichten JavaScript functies JavaScript

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

MVC BASICS 2. Kevin Picalausa

MVC BASICS 2. Kevin Picalausa MVC BASICS 2 Kevin Picalausa 1 Forms 2 Action en Method Action Vertelt de Browser naar waar de form data (informatie) door te zenden. URL kan relatief of absoluut zijn. Method De manier waarop de form

Nadere informatie

COMP 4580 Computer Security. Web Security II. Dr. Noman Mohammed. Winter 2019

COMP 4580 Computer Security. Web Security II. Dr. Noman Mohammed. Winter 2019 COMP 4580 Computer Security Web Security II Dr. Noman Mohammed Winter 2019 Including slides from: Dan Boneh, David Brumley, Ian Goldberg, Jonathan Katz, John Mitchell, Vitaly Shmatikov and many others.

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek

Nadere informatie

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE MODULENAAM Programmeren 5 MODULECODE B STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja Handelswetenschappen en bedrijfskunde HBO Informatica Evaluatie

Nadere informatie

Inhoud leereenheid 4. Inleiding JavaScript. Introductie 99. Leerkern 100. Zelftoets 108. Terugkoppeling 109

Inhoud leereenheid 4. Inleiding JavaScript. Introductie 99. Leerkern 100. Zelftoets 108. Terugkoppeling 109 Inhoud leereenheid 4 Inleiding JavaScript Introductie 99 Leerkern 100 1 Leren programmeren in JavaScript 100 2 Chapter 1: Introduction 101 3 Chapter 2, paragrafen 1 t/m 5 102 4 Chapter 2, paragrafen 6

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Secure Software Alliance

Secure Software Alliance Secure Software Alliance 6 SSD model SSDprocessen Organisatorische inrichting SSD Business impact analyse (BIA) Onderhoud standaard beveiligingseisen Risico attitude organisatie Sturen op maturity Standaard

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English Handleiding beheer lijst.hva.nl See page 11 for Instruction in English Maillijsten voor medewerkers van de Hogeschool van Amsterdam Iedereen met een HvA-ID kan maillijsten aanmaken bij lijst.hva.nl. Het

Nadere informatie

Koppelvlakspecificatie CGI - DigiD

Koppelvlakspecificatie CGI - DigiD Koppelvlakspecificatie CGI - DigiD Versie 2.3 Datum 17 december 2013 Colofon Projectnaam DigiD Versienummer 2.3 Organisatie Logius Postbus 96810 2509 JE Den Haag T 0900 555 4555 (10 ct p/m) servicecentrum@logius.nl

Nadere informatie

Website beoordeling facebook.com

Website beoordeling facebook.com Website beoordeling facebook.com Gegenereerd op Januari 14 2019 10:26 AM De score is 44/100 SEO Content Title Facebook - Log In or Sign Up Lengte : 28 Perfect, uw title tag bevat tussen de 10 en 70 karakters.

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Java. Basissyllabus. Egon Pas

Java. Basissyllabus. Egon Pas Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een

Nadere informatie

Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service.

Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service. WEB SERVICE WERKING Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service. Aanvullende informatie omtrent de fieldmapping kunt u hier inzien: www.effector.nl/webservice/technischeuitlegfieldmapping.xls

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

Handleiding GRID Token

Handleiding GRID Token Handleiding GRID Token Versie: 1.4 Introductie ProRail maakt voor toegang tot het ProRail-netwerk (werkplek, e-mail en andere diensten) gebruik van een zogenaamd Grid van het merk Cryptocard. Een Grid

Nadere informatie

Katholieke Hogeschool Kempen ASP

Katholieke Hogeschool Kempen ASP Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica ASP www.projectchatroom.be Yorkim Parmentier 3TI4 Andy Geluykens 3TI4 Academiejaar

Nadere informatie

De clientkant van webapplicaties in het universitaire onderwijs

De clientkant van webapplicaties in het universitaire onderwijs De clientkant van webapplicaties in het universitaire onderwijs ir. S. Stuurman universitair docent bij de faculteit Informatica van de Open Universiteit, Sylvia.Stuurman@ou.nl ir. H. Koppelman universitair

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Onderwerp Programming in the large! ( programming in the small)! Bijvoorbeeld: KU Leuven Veel verschillende functionaliteit

Nadere informatie

A.C. Gijssen. 0.3 PHP en MySQL

A.C. Gijssen. 0.3 PHP en MySQL PHP en MySQL A.C. Gijssen 0.3 PHP en MySQL PHP en MySQL 0.4 Inhoudsopgave Voorwoord Deel 1 Over PHP 1.1 Inleiding...13 1.2 Wat is PHP?...14 1.3 De geschiedenis van PHP...15 1.4 Editor...16 1.5 PHP en websites...17

Nadere informatie

Practicum Software & Web Security 2. Instructies voor installatie en gebuik van WebGoat en WebScarab

Practicum Software & Web Security 2. Instructies voor installatie en gebuik van WebGoat en WebScarab Practicum Software & Web Security 2 Instructies voor installatie en gebuik van WebGoat en WebScarab 1 Introductie In deze opdracht ga je aan de slag met WebGoat, een educatieve webapplicatie op gebied

Nadere informatie

Dynamische Websites. Week 3. donderdag 3 oktober 13

Dynamische Websites. Week 3. donderdag 3 oktober 13 Dynamische Websites Week 3 AGENDA Herhaling Cookies Sessions voorbeeld.php Zuiver PHP: initialisatie variabelen instructies HTML minimum PHP nooit HTML in PHP FORM URL HTTP Methode Parameters Verstuurt

Nadere informatie