Inhoud leereenheid 3. Validatie van invoer en uitvoer. Introductie 31. Leerkern 32. Terugkoppeling 39
|
|
- Jelle Maes
- 8 jaren geleden
- Aantal bezoeken:
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 1 Agenda Injection Cross Site Scripting Session Hijacking Cross Site Request Forgery #1 OWASP #2 top 10 #3 #5 Bezoek www.owasp.org
Nadere informatieCursus 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 informatieWEBSECURITY 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 informatieBack 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 informatieWhat 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 informatieDynamische 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 informatiePlan 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 informatieSecurity 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 informatieSecurity 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 informatieEen 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 informatierecursie 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 informatieInhoud 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 informatieInhoud. 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 informatieChecklist 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 informatieThird 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 informatieDOMjudge 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 informatieTeamhandleiding 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 informatieWebapplication 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 informatieStacks 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 informatieStacks 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 informatieSecure 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 informatieTestnet 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 informatieTaskCentre 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 informatieSparse 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 informatieRecursion. 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 informatieUWV 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 informatieUitwerking 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 informatieIntermax 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 informatieZest 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 informatieServer 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 informatieModelleren 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 informatieJe 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 informatieMaillijsten 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 informatieTechnical 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 informatieVerslag 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 informatieHTTP 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 informatieDeny 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 informatieInhoud. 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 informatieGeneral 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 informatieY.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 informatieTentamen 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 informatieZelftest 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 informatieLes 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 informatieThird 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 informatieLes 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 informatieInhoud. 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 informatieProware 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 informatieRegular 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 informatieOverheidsservicebus 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 informatieLes 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 informatieExterne 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 informatieVoorbeeldtentamen 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 informatieNaam 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 informatieASRemote 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 informatieDynamische Websites. Week 2
Dynamische Websites Week 2 AGENDA Labo 1 GET, POST Navigatie, etc Varia 1 2
Nadere informatieFormulieren 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 informatieINFITT01 - 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 informatieWEBAPPLICATIE-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 informatieProgrammeren (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 informatieHelp! 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 informatieIngebouwde 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 informatieReguliere 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 informatieHoe 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 informatieIn 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 informatieVoipCenter 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 informatieIBAN 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 informatieDBMS. 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 informatieOpen 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 informatieHandleiding 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 informatieInhoud. 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 informatiePoging 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 informatieElfde-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 informatieWeb 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 informatieSettings 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 informatieAdd 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 informatieMVC 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 informatieCOMP 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 informatieTentamen 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 informatieECTS 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 informatieInhoud 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 informatieTechnisch 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 informatieSecure 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 informatieUniversiteit 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 informatieHandleiding 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 informatieKoppelvlakspecificatie 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 informatieWebsite 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 informatieALGORITMIEK: 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 informatieJava. 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 informatieHier 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 informatieVakgroep 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 informatieFour-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 informatieHandleiding 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 informatieKatholieke 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 informatieDe 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 informatieApplicatie-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 informatieA.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 informatiePracticum 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 informatieDynamische 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