Dynamische Websites. Week 6. vrijdag 25 oktober 13

Vergelijkbare documenten
Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D

Les 12 : database koppeling, opmaken van template, webstructuur en afdrukken van gegevens. (deel2).

Dynamische Websites. Week 10

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

Een website maken met databasetoegang.

INFITT01 - Internettechnologie WEEK 8

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

Object Oriented Programming

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

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

8. Koppeling met een database

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

Programmeren met databanken volgens het lagenmodel in C#

Dynamische Websites. Week 9

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

PHP en een MySQL database.

Dynamische Websites. Week 2

Programmeren met databanken volgens het lagenmodel in C#

Technische nota AbiFire Rapporten maken via ODBC

Javascript oefenblad 1

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

VoipCenter Application Programming Interface (API)

Overerving & Polymorfisme

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Software Design Document

ASP.NET Test Jan Van Ryckeghem

return an ; } private I L i s t l i j s t ;

Data Warehouse Script Generator Doel

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

Technische nota AbiFire5 Rapporten maken via ODBC

Voor vragen: of mail naar

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

MVC BASICS 2. Kevin Picalausa

Databases - Inleiding

Katholieke Hogeschool Kempen ASP

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

SPSS VOOR DUMMIES+ Werken met de NSE: enkele handige basisbeginselen. Gebaseerd op SPSS21.0 & Benchmarkbestand NSE 2014

Kleine cursus PHP5. Auteur: Raymond Moesker

Domein API Handleiding

Les 11 : Basis SQL (deel2).

Katholieke Hogeschool Kempen

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

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

DB architectuur.

Bibliotheek in ProcessMaker

Back to the Future. Marinus Kuivenhoven Sogeti

Sparse columns in SQL server 2008

Inhoud. Pagina 2 van 13

Opdrachtformulering (pagina 3 van 7)

Server Side Scripting

Installatie King Task Centre

A.C. Gijssen. 0.3 PHP en MySQL

Excel Controller. Handleiding Excel Controller Wizard

Webapplication Security

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

Datamodelleren en databases 2011

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

1. Databanken. Wat is een databank? Verschillende opslagmethodes

Stage logboek. Datum Uur Omschrijving Persoon 28/jan Voorstelling van het project met Bart, Jorn, Peter, Jochen Iedereen

MEMO. De database server zit op piekmomenten aan een heel hoog CPU gebruik:

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

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

Een introductie tot de TclMySQL bibliotheek

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Query SQL Boekje. Fredrik Hamer

ContentSearch. Deep dive

ODS: Open Directory service. Wat is ODS?

My CRUD functions. Hieronder ziet u een overzicht van de bestandenlijst en functies die we gemaakt hebben en gaan gebruiken.

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

Applicatie-Architecturen

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

DataFlex 19.0 SQL Server

Module 1 Programmeren

Correctievoorschrift VWO NederlandsNederl. Informatica. Tijdvak 1 Woensdag 17 mei uur. College-examen schriftelijk.

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

Fun met webparts in ASP.Net

Pinakes Integrator Client

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

1. Controleren van de aansluiting op de splitter

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Knowledgeable Referenceable Personable Accountable Scalable

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

Een sjabloon (in PHP template genaamd) bevat de volledige

Netwerkprinter Dell 1320C installeren op Ubuntu LTS - Lucid Lynx

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Vakgroep CW KAHO Sint-Lieven

4 ASP.NET MVC. 4.1 Controllers

Inhoudsopgave. Theorie Praktijk Gegevens uit Database halen DML commando s... 14

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

Exercise assistant on-line

INHOUDSOPGAVE Het Boekenwinkeltje Registreer.aspx Opgaven... 97

Introductie en even voorstellen

ASRemote WebService. Via deze webservice kunt u:

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Databanken en webtoepassingen in Java

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet.

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

Transcriptie:

Dynamische Websites Week 6

AGENDA Herhaling Databank SQL Injection Ontwerp

OO _ indien private of protected magic

zo weinig mogelijk php! View MVC home.php confirm.php vehicledetail.php Controller Model Controller navigatie dispatching Vehicle alle logica en gegevens

taak: controller aanmaken index.php taak: navigatie, dispatch controller.php home.php taak: data tonen of opvragen

taak: controller aanmaken index.php taak: navigatie, dispatch controller.php vehicle.php vehicledetail.php home.php taak: data tonen of opvragen taak: data bijhouden

taak: controller aanmaken taak: valideren sanitize index.php taak: navigatie, dispatch validator.php controller.php vehicledetail.php confirm.php vehicle.php taak: data tonen of opvragen taak: data bijhouden

ToDo vehicleoverview.php

AGENDA Herhaling Databank SQL Injection Ontwerp

Vehicle php DB Vehicle_Mapper interface SQL PHP Data Objects (PDO)... postgres drivers implementeren interface

MAPPER vertaalt objecten naar SQL spreekt PDO-interface aan Vehicle_Mapper logisch, werkt met objecten verraadt niets over onderliggende db + construct() +add($vehicle) +update($vehicle) +delete($id) +get($id):vehicle +getall():array...

MAPPER: STAPPEN 1. Connecteren: vb: mysql:host=localhost;dbname=test $db = new PDO($dsn, $user, $password); in methode construct() 2. Aanspreken: wijzigen: $db->exec($sql); bevragen: $db->query($sql); in andere methodes SQL statement

OP WEBONTWERP....db_password.php <?php $dbuser = "r0123456"; $dbpassword = "1234hvp";?> hidden nu reeds op server

IN PROJECT config.php <?php date_default_timezone_set('europe/brussels'); require_once('../.db_password.php'); $db_config = array( 'driver' => 'pgsql', 'username' => $dbuser, 'password' => $dbpassword, 'schema' => 'test_kubeh', r0123456 'dsn' => array( 'host' => 'gegevensbanken.khleuven.be', 'dbname' => 'webontwerp', 'port' => '51314', 2TX3R1 of ) 2TX3R2... );

MAPPER: CONNECTEREN $dsn opbouwen o.b.v. config.php connectie schema-prefix overbodig

MAPPER: WIJZIGEN SQL opbouwen statement uitvoeren

MAPPER: BEVRAGEN SQL opbouwen statement uitvoeren resultaat in associatieve array array omzetten naar objecten

CONTROLLER

AGENDA Herhaling Databank SQL Injection Ontwerp

OK? Wat als: OR 1=1 $sql = "SELECT password FROM users WHERE username = '". $_GET['username']. "';"; $result = $db->query($sql); $value = $result->fetchcolumn(); if ($value == sha1($_get['password'])) { " echo 'your are logged in'; }

RISICO $sql: SELECT password FROM users WHERE username = OR 1=1 $result: alle users en paswoorden 1ste rij: wellicht admin altijd true!

PREPARED STATEMENTS Placeholders in plaats van values statement éénmaal parsen herhaaldelijk oproepen met andere parameterwaarde Voordelen: tijdswinst overzichtelijke syntax structuur query ligt vast, dus veilig

// query met een sql-parameter $sql = "SELECT password FROM users WHERE username = :user_name;"; // statement wordt op voorhand geparsed $stmt = $db->prepare($sql); // php variable linken aan sql-parameter // het moet een string zijn met maximum 15 karakters $stmt->bindparam(':user_name', $_GET['username'], PDO::PARAM_STR, 15); // statement uitvoeren $stmt->execute(); $value = $stmt->fetchcolumn(); if ($value == sha1($_get['password'])) { " echo 'your are logged in'; }

MAPPER

AGENDA Herhaling Databank SQL Injection Ontwerp

EXTRA VEREISTE Ook werknemers registereren Klassen: Employee EmployeeMapper

EMPLOYEE_MAPPER DRY!

Vehicle_Mapper + construct() +add($vehicle) +update($vehicle) +delete($id) +get($id):vehicle +getall():array... aanmaken specifieke SQL, objecten OPLOSSING Db Employee_Mapper + construct() +add($employee) +update($employee) +delete($id) +get($id):employee +getall():array... + construct() +select($sql, $arguments) generieke functionaliteit

Controller MVC Vehicle_Mapper Vehicle Db Employee_Mapper Employee

Controller FAÇADE Garage_Model Vehicle_Mapper Vehicle Db Employee_Mapper Employee

OK? $db1:db Db + construct() +select($sql, $arguments) $db3:db $db2:db te veel connecties!

SINGLETON

AGENDA? Herhaling Databank SQL Injection Ontwerp