Server Side Scripting



Vergelijkbare documenten
Dynamische Websites. Week 3. donderdag 3 oktober 13

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

Dynamische Websites. Week 2

Security web services

Joomla & Security. Ing. Gertjan Oude Lohuis Byte Internet 19 november 2007

Formulier maken en opvangen met php

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

Webapplication Security

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

Javascript oefenblad 1

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

A.C. Gijssen. 0.3 PHP en MySQL

Taak Versleutelen en dan weer terug... 1

PHP & MySQL. Studievaardigheden Jan van Rijn (j.n.van.rijn@liacs.leidenuniv.nl) LIACS, Universiteit Leiden

Werken met bestanden 1

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

ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card)

VoipCenter Application Programming Interface (API)

HTTP SMS API Technische Specificatie messagebird.com versie mei 2014

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Puntjes op de I. Baris Firat

UNIX FAQ. Migratie naar een nieuwe server

Les 9: formulier controle met javascript.

Aanleveren van te verzenden sms berichten aan SMS Via

Resultaten van de scan. Open poorten. High vulnerabilities. Medium vulnerabilites. Low vulnerabilities

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar semester 1

Gebruikershandleiding voor: Beperkte Password protectie met JavaScript

9. MYSQL. Daarin zien we het administratie paneel van mysql.

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

WEBAPPLICATIE-SCAN. Kiezen op Afstand

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting

Technische aansluit documentatie Versie

static file cache Statisch files cachen met realurl, mod_rewrite en mod_expires. ... Helpt het broeikaseffect tegen te gaan. Michiel Roos Netcreators

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

PHP & MySQL. Studievaardigheden Frank Takes (ftakes@liacs.nl) LIACS, Universiteit Leiden

API Specificatie Doc

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

Zest Application Professionals Training &Workshops

Een website maken met databasetoegang.

Dynamische Websites. Week 6. vrijdag 25 oktober 13

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

Les W-04: Een introductie in PHP

Dit kan gebruikt worden in zowel een ASP.NET web applicatie als een desktop applicatie.

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

Object Oriented Programming

SLA level Iron Bronze Silver Gold Platinum

UWV Security SSD Instructies

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 11 maart Versie 1.1.0

Proware Cloud Webbuilder Versie 2.30

Studiewijzer Keuzedeel Verdiepingsoftware (AO)

B3 Programmeren - PHP

HTML. Formulieren. Hans Roeyen V 3.0

SQL & Datamodelleren

Technical Note. API Beschrijving Aangetekend Mailen

PHP: Formulieren. <form action= script.php method= POST >

Lab Webdesign: Javascript 7 april 2008

Performance Essentials

Technische handleiding Mister Cash

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Technische handleiding ideal

LES 11: VAN LOKAAL NAAR ONLINE. Lesoverzicht: Aan de slag Domeinnaam Web hosting FTP gegevens FTP programma s Database exporteren Samenvatting

Web Security. Is echt alles kapot? SDN Event 2 September 2016

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Technische handleiding ideal

Formulieren en waarden posten naar een view

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

Formulieren maken met Dreamweaver CS 4/CS 5

Lesbrief Les 2 Basis CSS

Project 4 - Centrale Bank. Rick van Vonderen TI1C

Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2

MVC BASICS 2. Kevin Picalausa

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Cultuur & Media Werkgroep 1 Introductie

Analyse KeyLock versie Door MartinJM

Handout Bloggen. Les 1: Het maken van een Wordpress Blog

Katholieke Hogeschool Kempen ASP

DRENTHECOLLEGE.NU STUDIEGIDS ICT-LYCEUM Programma van Toetsing en Afsluiting. TE nr1

API Specificatie Doc

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

INHOUDSOPGAVE Het Boekenwinkeltje Registreer.aspx Opgaven... 97

SQL & Relationele datamodellen in interactieve media

Foto web applicatie documentatie

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

Zelftest Inleiding Programmeren

Deny nothing. Doubt everything.

Transcriptie:

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 Ch4+Ch5 (72p) Lesweek 4 (50) Doornemen Ch6+Ch7 (74p) [Ch 8] Lesweek 5 (51) Doornemen Ch9+Ch10 (60p) Lesweek 6 (2) Deeltoets 2, Doornemen Ch11 (32p) Lesweek 7 (3) 12+Ch15] Doornemen Ch13+Ch14 (52p) [Ch Lesweek 9 (5) Deeltoets 3 Maandag voor 12:00 's middags inleveren

Aanbevolen

Vragen Chapter 3?

Controlestructuren

Beslissingsboom

If statements if( conditie ) { # code } elseif ( conditie ) { # code } else { # code } &&! > < >= <=

Formulieren

Versturen van informatie

Superglobal arrays $rijtje = array(0, 1, 1, 2, 3, 5, 8, 13, 21); $_GET['naam'] $_POST['naam']

post/ get INFORMATIE HTTP REQUEST HTTP RESPONSE $_POST['naam'] $_GET['naam'] PHP MySQL Mongo [...] 13

Formulieren POST-INFORMATIE HTTP REQUEST HTTP RESPONSE $_POST['status'] PHP MySQL

/les2/voorbeelden/showvars.php 1. Geef wat HTML weer 2. Toon recursief de inhoud van de $_GET array 3. Geef wat HTML weer 4. Toon recursief de inhoud van de $_POST array

git clone https://github.com/lbrt/ CMD-SSS-2013-2014.git

Kwetsbaarheden

Disclaimer De wellicht controversiële stof die deze werkgroep behandeld is enkel en alleen bedoeld ter educatie. Het doel van deze werkgroep is het verschaffen van dieper inzicht in processen die te maken hebben met computerbeveiliging welke leiden tot een betere beveiliging van door studenten op te leveren projecten. De projecten en handelingen van personen buiten deze werkgroep vallen buiten de verantwoordelijkheid van CMD.

README Wat ik jullie leer mag niet misbruikt worden!

Hacker ethics

Kwetsbaarheden request forging script injection (xss) form-hijacking sql injection

Code injection 1. Mail-form-hijacking 2. Request forging 3. Script injection (XSS) 4. SQL injection

Mail-form-hijacking justus@ju5tu5.nl CC: eenanderadres@example.com, nogeenadres@example.com, etc@example.com

/les2/oefeningen/mailformhijacking/index.php 1. Een controle op \r\n ondervangt het probleem!!preg_match("/[\r\n]/", $_POST['email']) #=> true als \r\n niet voorkomt (door! )

Request forging Dit ziet er raar uit, eens kijken wat er allemaal ingevoerd kan worden...

/les2/oefeningen/requestforging/index.php 1. Hard opgeven welke pagina's op deze manier aangeroepen mogen worden in_array($_get['page'], $toegestanepagina) #=> true als de pagina voorkomt in het rijtje

Script injection (en XSS) Hé een formulier, eens kijken of we daar script in mogen stoppen...

/les2/oefeningen/scriptinjection/index.php 1. Vervang gevaarlijke door ongevaarlijke tekens transform_html($_post['tekst']); #=> <script>alert('muhahaaa');</script>

Hé een formulier, eens kijken of we daar SQL in mogen stoppen... SQL injection

/les2/oefeningen/sqlinjection/unsafe.php Haal gebruikersinvoer altijd door mysql_real_escape_string( ) $safedata = mysql_real_escape_string($evildata); #=> $safedata is veilig om te gebruiken in mysql

/les2/oefeningen/sqlinjection/index.php Beter nog: gebruik mysqli, prepared statements en parameter binding Let op: je moet zelf nog steeds script-injecties afvangen.

Wat te onthouden? 1. Webapps zijn gebaseerd op formulieren Je kunt versturen via GET en POST GET is via de URL, POST via de header 2. Toepassen van formulieren kent altijd veiligheidsrisico's Code injection attacks: Mail-form-hijacking Request-forging Script injection (XSS/Cross site scripting) SQL injection 3. NEEM BEVEILIGINGSMAATREGELEN! Eindgebruikers zijn per definitie evil...

Versleuteling

Encryptie

Decryptie

2 weg encryptie Scythale /ˈskɪtəliː/ abcdefghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyzabcd ß public key encryptie origineel transpositie private key encryptie à

1 weg encryptie md5 à sha1à cryptà salt 7a016ff07fb4b3401504d6fb1f69185c 8d21786de786cc2b81561bc2d3006c71f5f50baf safhbyzzafs6i

/week2/encryptie/index.php 1. Alleen crypt gebruikt salt 2. Crypt is veilige(re) manier om passwords op te slaan 3. Geef nooit je salt weg...

Volgende week: toets 1 4 vragen: 3 theorie vragen Vb. Leg uit wat voor beveiligingsrisico's kleven aan het toepassen van web-formulieren. 1 programmeervraag Vb. Bekijk het volgende stuk code en geef de HTML output die deze code genereert. Hulpmiddelen: boek PHP Solutions (papier of op e- reader; geen gebruik van computer tijdens toets!)

Huiswerk Doornemen Ch4+Ch5 (72p) 4: Lightening Your Workload with Includes 5: Bringing Forms to Life

Bronnen Diagramstijl: Nassi-Shneiderman Diagram (NSD)