Ablauf Unit2. Walkthrough



Ähnliche Dokumente
Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Übungen. DI (FH) Levent Öztürk

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

FileMaker und PHP Workshop

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Grundlagen der Informatik 2

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Arbeiten mit einem lokalen PostgreSQL-Server

PostgreSQL auf Debian System

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Projekt Online-Shop:

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Wordpress am eigenen Server installieren

Konzept eines Datenbankprototypen Folie 1 Daniel Gander / Gerhard Schrotter

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

Dateneingabe über ein HTML-Formular in eine Datenbank:

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Datenmanagement in Android-Apps. 16. Mai 2013

Schiller-Gymnasium Hof

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Datenbanken für Online Untersuchungen

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

HTML5. Wie funktioniert HTML5? Tags: Attribute:

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Multimedia im Netz Wintersemester 2011/12

1a) SQL Stored Procedure via IDs

IV. Datenbankmanagement

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Meine erste Homepage - Beispiele

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Datenbanksysteme SS 2007

Webseitenverwaltung. Mit HTML, CSS und ein klein wenig PHP. Steffen Schwientek

Prozedurale Datenbank- Anwendungsprogrammierung

MySQL, phpmyadmin & SQL. Kurzübersicht

PostgreSQL in großen Installationen

Wie richten Sie Ihr Web Paket bei Netpage24 ein

SQL-Injection. Seite 1 / 16

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

Entwicklungsumgebung für die Laborübung

MySQL 101 Wie man einen MySQL-Server am besten absichert

desk.modul : WaWi- Export

NoSQL mit Postgres 15. Juni 2015

Proseminar Datenbanken

Sessions mit PHP. Annabell Langs Sessions in PHP - Annabell Langs 1

Interaktive Webseiten mit PHP und MySQL

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Webdesign-Multimedia HTML und CSS

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Von Keerthikan T. & Siyar Kolusari

Zugriff auf Daten der Wago über eine Webseite

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Sicherheit in Webanwendungen CrossSite, Session und SQL

Inhaltsverzeichnis. Beschreibung. Hintergrund

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

Hackerpraktikum Versuch 4

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Tracking Dog A Privacy Tool Against Google Hacking

"Die HTML-PHP-Schnittstelle -- Ein- und Ausgabe der Daten"

Web Visu Tutorial. Hipecs Web Visu. Übersicht

BillSAFE Payment Layer Integration Guide

Graphen in Apex von Thomas Hernando.

SEMINAR Modifikation für die Nutzung des Community Builders

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

ZSDGMDZFGW... Zehn Sicherheitsprobleme, die gerne mit dem ZendFramework gebaut werden. Ben Fuhrmannek #phpug-köln

PHP Einsteiger Tutorial Kapitel 4: Ein Kontaktformular in PHP Version 1.0 letzte Änderung:

Client/Server-Systeme

Datenbank-basierte Webserver

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

105.3 SQL-Datenverwaltung

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

SSO-Schnittstelle. Inhalt: Beschreibung der Single Sign-On (SSO) Schnittstelle. NetSlave GmbH Simon-Dach-Straße 12 D Berlin

Ü K 307: Interaktive Website erstellen

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Lehrveranstaltung Grundlagen von Datenbanken

DataTables LDAP Service usage Guide

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

TYPO3 und TypoScript

PHPNuke Quick & Dirty

Publizieren im Internet

DB2 Kurzeinführung (Windows)

Arrays. PHP JavaScript Kapitel 9

HTML Teil 2. So kann man HTML-Seiten mit <div> und CSS gestalten. So sehen einfache Formulare aus

Microsoft Office Sharepoint 2010

Einrichtung Secure-FTP

World4You Internet Service GmbH. Hafenstrasse 47-51, A-4020 Linz

SBWL Kurs V - Informationsmanagement

Transkript:

Ablauf Unit2 Vertiefendes Uebungsprojekt - SQL II Gerhard Wohlgenannt Test Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Gruppeneinteilung + Themenvergabe Vorstellung der Arbeitsumgebung Walkthrough Software im Schulungsraum (dia, kate, psql...) Verlinken des Arbeitsverzeichnisses: ln -s ~wohlg/public_html/cgi-bin/sql2/{gruppe} sql2 Struktur: Application :./index.php oder index.py... Administration:./admin Dokumentation :./projekt Zugriff: über das Web: http://xmdimrill.ai.wu.ac.at/ wohlg/cgi-bin/sql2/{gruppe} von extern: ssh j0625050@xmdimrill.ai.wu.ac.at Problemdefintion Durchführbarkeitsstudie UML Use-Case Diagramme + Bewertung muss klar werden was zu tun ist! Analyse (ER-Modell) Design (Datenbank, Interface), Business Logic Implementierung: Datenbank + Constrains erstellen Formulare (vorzugewiese HTML + CSS, eventuell Swing) Dokumentation (Benutzer, Projekt, Installation, Work Reports)

Datenbankentwurf Benutzerinterface Ausgangspunkt: ER-Modell Alle Tabellen sind zu normalisieren Indices für abfragerelevante Felder (!= Datum,...) UNIQUE in Tabellendefition CREATE INDEX Business Logic Constraints NOT NULL, CHECK, Fremd-/Primärschlüssel ON DELETE, ON UPDATE Datentypen Text Encoding: UTF8 1 <meta http - equiv =" Content - Type " 2 content =" text / html ; charset = utf8 " /> Layout: Cascade Style Sheets (CSS) HTML-Formulare <FORM>, <INPUT>, <SELECT> Übergabe der Variablen an/von PHP (POST/GET) HTML-Head HTML-Formulare <html > <head > <link rel =" stylesheet " href =" style. css " type =" text / css " /> <meta http - equiv =" Content - Type " content =" text / html ; charset = utf8 " /> <title >PHP Test </ title > </ head > body { background : # FFFFFF ; } a { color : #0000 FF; } a: active { color : #000000;} h1 { font - family : helvetica ; color : blue ;} input. url { background : lightgrey ; } 1 <body > 2 <h1 > TestFormular </h1 > 4 <form > 5 Name : <input name =" name " /> 6 Url : <input name =" url " /> <br /> 7 <input type =" submit " value =" Abschicken " 8 name =" fertig " /> 9 </ form > 11 </ body > 13 </ html >

Übergabe von Variablen Übergabe von Variablen 1 <html > 2 <head > 3 <link rel =" stylesheet " href =" style. css " 4 type =" text / css " /> 5 <meta http - equiv =" Content - Type " 6 content =" text / html ; charset = utf8 " /> 7 < title > Summenberechnung </ title > 8 </head > 10 <body > 11 <h3 > Summe : </h3 > 12 <form action =" <?= $_SERVER [ PHP_SELF ]?>"> 13 <input name ="a1" value =" <?= $_REQUEST [ a1 ]?>" /> 14 <input name ="a2" value =" <?= $_REQUEST [ a2 ]?>" /> 15 <br /> 16 <input type =" submit " value =" Summe " /> 17 </form > 19 <h3 > Ergebnis </h3 > 20 <? php 21 $a1 = $_REQUEST [ a1 ]; 22 $a2 = $_REQUEST [ a2 ]; 23 if ( $a1 and $a2 ) { 24 $sum = $a1 + $a2 ; 25 echo " Die Summe von $a1 und $a2 ist : $sum "; 26 } 27?> 29 </body > 30 </html > Sessions PHP + PostgreSQL Benutzer bekommt eine eindeutige Id. Variablen serverseitig(!) speicherbar 1 <? php 2 session_start (); 3 if (! isset ( $_SESSION [ count ])) { 4 $_SESSION [ count ] = 0; 5 } else { 6 $_SESSION [ count ]++; 7 } 8?> 9 Diese Seite wurde <?= $_ SESSION [ count ]? > mal 10 angesehen. Vorgangsweise: 1. Datenbankverbindung mit pg connect herstellen. 2. Query vorbereiten und absetzen. 3. Auf Fehler prüfen / Resultate ausgeben. Wiederkehrende Queries pg prepare + pg execute. Einfache Queries pg query params. Queries ohne Benutzereingaben im Querytext pg query.

PHP + PostgreSQL PHP + PostgreSQL 1 <html > 2 <head > 3 <link rel =" stylesheet " href =" style. css " 4 type =" text / css " /> 5 <meta http - equiv =" Content - Type " 6 content =" text / html ; charset = utf8 " /> 7 <title > PHP Test </ title > 8 </head > 10 <body > 11 <h3 > PHP Test </h3 > 12 <? php 13 if ( $_REQUEST [ company_id ]) { 14 $company_id = $_REQUEST [ company_id ]; 15 } 17 $db = pg_ connect (" host = xmdimrill dbname = weblyzard 18 user = albert password = xyz "); 20 $result = pg_ query_ params ( $db, 21 " SELECT company_id, name, url FROM company 22 WHERE company_ id = $1 LIMIT 1", 23 array ( $company_ id )); 25 if (! $result ) { 26 echo " No records present "; 27 exit ; 28 } 30 // Output Table Header 31 echo "<table >"; 32 echo "<tr ><th >Id </th ><th > Company Name </th >"; 33 echo " <th > Company Url </th > </tr >"; PHP + PostgreSQL Security 37 while ( $row = pg_ fetch_ row ( $result ) ) { 38 echo "<tr ><td > $row [0] </ td > </tr >"; 39 echo " <td > 40 < input name =\" name \" size =40 value =\" $row [1]\" / > 41 </td > </tr >"; 42 echo " <td > 43 < input name =\" url \" size =40 value =\" $row [2]\" / > 44 <a href =\" $row [2]\" >[ x]</a > </td > </tr >"; 45 } Why security matters Datenbank Passwort PHP Security Issues (Global Variables), inc-files (-.php!) SQL Injection 47 // Table footer 48 echo " </ table >"; 50?> 51 </body > 52 </html >

Datenbank Passwort PHP Security Issues Jede Gruppe erhält einen Benutzer und Passwort für die PostgreSQL Datenbank Passwort Location: außerhalb des Apache-Trees 1 function getdb () { 2 return pg_connect (" host = localhost 3 dbname = mdb user = albert password = xyz "); 4 } PHP Include Dateien Endung:.php Kritische Dateien: ausserhalb des für den Webserver lesbaren Bereiches Übergebene Variablen immer aus dem $ REQUEST Array auslesen. register globals aktiviert Manipulationen einfacher Dangerous Correct register globals aktiviert. 1 <? php 2 if ( $username == toni and $pwd == secret ) 3 $authorized = true ; 4?> 6 <? php if (! $authorized ):?> 7 <!-- Formular : Eingabe Benutzer + Passwort -- > 9 <? php else :?> 10 <!-- Geheime Informationen -- > 12 <? php endif ;?> register globals deaktiviert. 1 <? php 2 $username = $_ REQUEST [ username ]; 3 $password = $_REQUEST [ pwd ]; 4 if ( $username == toni and $pwd == secret ) 5 $authorized = true ; 6?> 8 <? php if (! $authorized ):?> 9 <!-- Formular : Benutzername / Passwort -- > 11 <? php else :?> 12 <!-- Geheime Informationen -- > 14 <? php endif ;?>

SQL Injection Next unit Benutzereingaben in Queries Gegenmaßnahmen: Prüfen der Benutzereingaben Verwendung von pg query params (preferred) SQL Gruppen: Problemdefinition, UML Diagramme (draft), ER Diagramm (draft) Linked Data Gruppen: Sichtung von LOD sources, Problemdefinition Heute Was tun heute? Gruppen bilden am besten anhand der Programmiersprache (und Themenideen). Wer Python, PHP, Java? Thema überlegen... etwas Zeit lassen.. soll Konsens geben, Spass machen und vom Umfang passend sein Machbarkeitsstudie u Problemdefinition... kurze Beschreibung des Projekts und der Funktionalität Modellierung... UML Diagramme (va. use case) Modellierung... ER Diagram grober Zeitplan... zb mittels Planner Linked Data Gruppen: Sichtung von LOD sources, Problemdefinition Modellierung erst 1 Woche später verlangt