eCommerce Systeme - Institut für Informatik - Christian-Albrechts ...

informatikunikiel

eCommerce Systeme - Institut für Informatik - Christian-Albrechts ...

eCommerce Systeme

Arbeitsgruppe Angewandte Informatik (Wirtschaftsinformatik)

Vorlesung: Andreas Speck

Übungen: Sven Feja

Christian-Albrechts-Universität zu Kiel

Institut für Informatik

Raum 404a / 403, Hermann-Rodewald-Str. 3, D-23118 Kiel

Email: andreas.speck@email.uni-kiel.de

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 1 eCommerce Sommersemester 2008


Gliederung

1 Einführung

2 Grundlagen

eCommerce Systeme

3 Wirtschaftliche Konzepte

4 Web Shop Systeme

5 Hochleistungs-eCommerce Systeme

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 2 eCommerce Sommersemester 2008


eCommerce Systeme

Gliederung Einführung

2 Grundlagen

2.1 Protokolle (1)

2.2 Unterstützung durch Betriebssystem

2.3 Protokolle (2)

2.4 Programmierung

2.5 Datenpräsentation

2.6 Sicherheit

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 3 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Netzwerke werden durch geschichtete Protokolle beschrieben:

Protokoll-Stack

Application Layer

Internet Layer

Network Layer

Internet Application

TCP / IP

Network Technology

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 4 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Beispiele für Protokolle auf der Applikationsschicht:

Application Layer

Internet Layer

Network Layer

HTTP FTP Telnet SSH

TCP / IP

Network Technology

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 5 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Warum werden Protokolle geschichtet?

aus [Tan1997]:

A layer should be created where a different level of abstraction is needed.

Each layer should perform a well defined function.

The function of each layer should be chosen with an eye toward defining

internationally standardized protocols.

The layer boundaries should be chosen to minimize the information flow across

the interface.

The number of layers should be large enough that distinct functions need not to

be thrown together in the same layer out of necessity, and small enough that the

architecture does not become unwieldy.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 6 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Vergleich mit dem

Referenzmodell

für Netzwerk-

kommunikation:

Open System

Interconnection

Reference Model (OSI)

of International Standards

Organization (ISO)

Application

Presentation

Session

Transport

Network

Data Link

Physical

Application Protocol

Presentation Protocol

Session Protocol

Transport Protocol

Network Protocol

Data Link Protocol

Physical Protocol

Physical Network (Cable)

Application

Presentation

Session

Transport

Network

Data Link

Physical

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 7 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Grundsätzliche Konzepte eines Referenzmodells:

Ist eine reine Referenz, die angibt:

- welche Dienste vorkommen müssen oder können

- auf welcher Ebene die Dienste angeordnet sind

- welche Dienste miteinander interagieren

Reale Netzwerke

- können die Anzahl der Dienste ändern (meist verringern),

- können die Dienste auf anderen Ebenen anordnen

- und können die Anzahl der Ebenen ändern (meist verringern).

z.B. TCP / IP (4 Ebenen), CAN (2 oder 3 Ebenen)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 8 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Grundsätzliche Konzepte: Peer to Peer Kommunikation

- Dienste auf einer spezifischen Ebene werden als Peers bezeichnet

- diese Dienste kooperieren miteinander

- die jeweils unterlagerten Dienstebenen sind Abstraktionen der

Netzkommunikation

Aufruf

unterlagerter

Dienste

Einpacken

der Daten

Versenden

über Netzwerk

Aufruf

unterlagerter

Dienste

Austausch von

Rechner zu Rechner

kooperierende

Algorithmen

weiterreichen

über Netzwerk

Verbindung

zwischen zwei

Rechnern

Auspacken

der Daten Aufruf

durch unterlagerte

Dienste

Empfangen

über Netzwerk

Aufruf

durch unterlagerte

Austausch von

Rechner zu Rechner

Dienste

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 9 eCommerce Sommersemester 2008


7

6

5

4

3

2

1

2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Netzwerkverbindungen:

Repeater Bridge

(Protokollumwandlung)

Router

(Anpassung

unterschiedlicher

Netzwerke)

Gateway

(vollständige

Umsetzung)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 10 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Genauere Betrachtung einzelner Dienste:

Data Link und Physical: schematisches Modell einer Nachricht

Begin Header (ID) Frame Number DATA Checksum End

Begin: Erkennung, dass eine Nachricht folgt

Header (ID): Adresse des Empfängers, z.T. auch Priorität der Nachricht

Frame Number: Ist die Nachricht Teil eines größeren Datenpakets (Frame),

so wird hier die Nummer der Nachricht innerhalb des Pakets

angegeben (Frame 47, Message 11)

DATA: die Daten, Nutzinformation

Checksum: Maßnahme zur Prüfung der Korrektheit der Nachricht.

Die vorausberechnete Check-Summe, die vom Sender

mitgegeben wurde, muss auch vom Empfänger so berechnet

werden.

End: Erkennung, dass die Nachricht beendet ist

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 11 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Typisches TCP/IP Ebene 2 Protokoll: Ethernet

Zur Erinnerung der Aufbau eines Ethernet-Pakets:

Präambel 8 Bytes Synchronisation

Empfänger 6 Bytes Adresse (11…1 ⇒ Broadcast)

Sender 6 Bytes Adresse

Protokoll 2 Bytes realisiertes Protokoll (z.B. IP)

Daten < 1,5 kBytes nach Abzug der Header höherer Protokollschichten

bleiben ca. 1 kBytes Nutzdaten

Prüfsumme 4 Bytes CRC

Paketlänge ist Kompromiss zwischen Overhead der Verpackung

und Kollisionsgefahr.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 12 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.1 Protokolle (1)

Fehler bei der Übertragung von Daten (Schicht 2 Protokolle)

Ursachen des Verfälschen:

Rauschen, Übersprechen, Echos, elektromagnetische Störimpulse (Bursts)

Störimpuls von 10 ms bei Übertragungsrate 2400 Bit/s ⇒ Burst von 24 Bit

Fehlererkennung redundante Kodierung:

- Fehlererkennende Codes (Error-detecting Code),

ARQ (automatic Repeat Request), d.h. Fehler erkannt ⇒ Wiederholung

- Fehlerkorrigierende Codes (Error-correcting Code)

FEC (Forward Error Correction), geeignete Redundanz ermöglicht

Fehlerkorrektur (z.B. bei Hauptspeicher)

weitere Möglichkeit: Echoverfahren (Zeichen wird reflektiert und damit vom

Sender geprüft)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 13 eCommerce Sommersemester 2008


2 Grundlagen

2.1 Protokolle (1)

TCP / IP Protokoll

eCommerce Systeme

Einordnung realer Dienste wie

TCP und IP gegenüber der im

OSI Modell standardisierten

Dienste

TCP/IP:

TCP = Transmission Control Protocol

IP = Internet Protocol

Telnet, FTP,

SMTP, HTTP, ...

TCP Transmission

Control Protocol

IP Protocol

Ethernet, ATM, ...

Copper, Fiber

Application

Presentation

Session

Transport

Network

Data Link

Physical

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 14 eCommerce Sommersemester 2008

7

6

5

4

3

2

1


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wozu werden Betriebssysteme benötigt?

Beispiele für Rechnersysteme:

1. Controller:

eine einfache Aufgabe, ein Prozess, wenige eingebaute Geräte

(Embedded Devices), meist selbst ein Embedded Device

2. PC oder Workstation:

multifunktional und variabel einsetzbar, mehrere periphere

(und austauschbare) Geräte

mehrere Benutzer mit z.T. unterschiedlichen Rechten,

mehrere Prozesse

3. Maschinensteuerung:

eigentlich Mischung aus 1. und 2.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 15 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Was leisten Betriebssysteme?

Beispiele für Rechnersysteme:

Verwaltung von Prozessen

Verwaltung von Benutzern

Verwaltung von Dateien

allgemein: Verwaltung von Ressourcen

Ansteuerung von (peripheren) Geräten

Austausch zwischen Geräten und den Prozessen der Benutzer

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 16 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Aus was besteht ein Betriebssystem?

Kern des Betriebssystems (Kernel):

• absolute Basisfunktionalität (z.B. Scheduling, Verwaltung von Zugriffen,

bzw. Anfragen)

• Basismodule als Zusatz zum Kern

• Treiber, z.B. Gerätetreiber

• Hilfsprogramme (siehe Abschnitt 1.2)

Achtung: ähnlich wie Kernzugriffe (Kernel Traps) aber nicht gleich,

sondern nur ausprogrammierte Kernel Traps

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 17 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

Kernel Trap

Prozess

z.B. Browser

Zugriff auf Web Server

Kernel

Trap

Kernel

Shell

Treiberprozess

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 18 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

erstes ganz einfaches Beispiel: C Programm „MyNumer.c“

Was ist das?

„normaler“ Programm-Code

}

Kernel Trap:

Ausdruck auf Bildschirm

⇒ Zugriff auf das Gerät Grafikkarte

#include

void main() {

int i = 99;

i = i + 1;

printf(„Hello my number is: %i \n“, i);

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 19 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

C Compilation: C Programm „gcc –o myNumber MyNumer.c“

Einzug eines

Header-Files

#include

(Zugriffsschnittstellenbeschribung)

void main() {

„normaler“ Compilation int i = 99;

Umwandlung zu

i = i + 1;

Maschinen-Code

printf(„Hello my number is: %i \n“, i);

}

Kernel Trap:

auch Systemaufruf genannt

Einbinden von Bibliotheks-Code

⇒ führt die Interaktion mit Kernel aus

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 20 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

Zugriff über einen Systemaufruf (d.h. Kernel Trap)

Was muss bei einem Systemaufruf beachtet werden?

• Kenntnis der Bezeichnung des Aufrufs

• Signatur des Aufrufs:

- Eingangsparameter und deren Bedeutung

- Rückgabeparameter

• eventuell weitere abhängige Aufrufe

Dieses Verfahren wird auch von anderen Programmiersprachen

so nachempfunden (Java, PHP, usw.)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 21 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

Zugriff über Gerätetreiber (Device Drivers)

• Treiber ist Teil des Bibliotheks-Code

• Treiber ist Geräte-abhängig:

zum Anwendungsprogramm wird eine standardisierte Schnittstelle

verwendet;

zum Geräte Controller hin Geräte-spezifisch

• Treiber werden meist vom Gerätehersteller zur Verfügung gestellt

Call Call Call

Anwendungsprogramm Device Driver Device Controller Device

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 22 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?

Grobstruktur der Gerätetreiber (Device Drivers)

vom

Anwendungsprogramm

zum

Anwendungsprogramm

eingehender Systemaufruf

Parameteraufbereitung

Parameter aufgreifen,

zerlegen

in EA-Register ablegen

Geräteaufruf von System

Geräteantwort an System

Verlaufsanalyse

Rücksprung von Systemaufruf

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 23 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Hilfs-Programme zum Zugriff aus UNIX / Linux

Zugriff über Console, z.B. xterm mit einer Command Shell, (z.B. bash)

Grundstruktur der UNIX Aufrufe:

xterm –sb –bg yellow &

aufgerufenes Parameter unabhängiger

Programm Kindprozess

Hilfe und Dokumentation:

xterm –-help oder xterm –h oder man xterm

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 24 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Hilfs-Programme zum Zugriff aus UNIX / Linux

Zugriff über Console, z.B. xterm mit einer Command Shell, (z.B. bash)

Grundstruktur der UNIX Aufrufe:

xterm –sb –bg yellow &

aufgerufenes Parameter unabhängiger

Programm Kindprozess

Hilfe und Dokumentation:

xterm –-help oder xterm –h oder man xterm

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 25 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Hilfs-Programme zum Zugriff aus UNIX / Linux

Hilfsprogramme: Dateirechte

für Dateien

6 : lesen und schreiben

4 : nur lesen

7: ausführbar, lesen und schreiben

5: ausführbar, nur lesen

Standard:

chmod 644 filename

Bei Verzeichnissen gilt immer:

7 lesen und schreiben,

5 nur lesen

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 26 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Hilfs-Programme zum Zugriff aus UNIX / Linux

Hilfsprogramme: Links auf Dateien

ln stellt Links zwischen Dateien oder Verzeichnissen her

entweder Hardware-Links oder symbolische Links (zu bevorzugen)

Optinen: --symbolic oder -s

Beispiel:

ln -s jdk1.3 java

ergibt:

ls -l java

lrwxrwxrwx 1 root root 6 Jan 18 16:34 java -> jdk1.3

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 27 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Dateisystem in UNIX / Linux

Boot

Block

Super

Block

I-Nodes

Data

Blocks

Data

Blocks

I-Nodes sind eine Indirektion zwischen den Datenblöcken der Datei und

den Dateinamen, sie beinhalten u.a.

Name, Rechte und Besitzer, Größe, Verweise auf Datenblöcke, …

dabei sind I-Nodes faktisch Dateiblöcke

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 28 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Dateisystem in UNIX / Linux

Links: Hard Link

Boot

Block

Super

Block

alter Verweis

I-Nodes

neuer Verweis (Hard Link)

Data

Blocks

Data

Blocks

Bei Hard Links wird ein Verweis auf einen (oder mehrere) Dateiblöcke

„hart“ umgebogen.

Vorteil: Die Dateiblöcke werden direkt – also schneller – gefunden.

Nachteil: Bei Fehlern können die alten Verweise nicht mehr rekonstruiert

werden

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 29 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Dateisystem in UNIX / Linux

Links: Soft Link

Boot

Block

Super

Block

neuer Verweis (Soft Link greift auf

bestehnden I-Node zurück)

alter Verweis

I-Nodes

Data

Blocks

Data

Blocks

Bei Soft Links wird ein Verweis auf einen anderen Verweis weitergeleitet.

Nachteil: Beim Zugriff auf Datenblöcke kommt es zu einer Indirektion, d.h.

Zeitverzögerung.

Vorteil: Keine bestehenden Verweise und Datenblöcke gehen verloren.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 30 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Prozesse in Unix / Linux

Prozesse befinden sich in verschiedenen Zuständen

1

(just)

created

2

runnable

5

Meistens befinden sich die Prozesse im Zustand blocked.

Sie warten auf ein Signal.

3

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 31 eCommerce Sommersemester 2008

7

execute

on CPU

4

suspended

8

6

blocked

Zombie


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Prozesse in Unix / Linux

Prozesse

besitzen einen Prozesskontrollblock (Process Control Block, PCB)

mit wichtigen Informationen über den Prozess: z.B. Besitzer, Priorität, Ort

im Speicher, Zustand und Identität

Die Identität wird als Process Identity (PID) bezeichnet.

Anhand diese können Prozesse identifiziert werden:

ps –eaf (fast) alle Prozesse, die auf dem Rechner ablaufen

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 32 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Prozesse in Unix / Linux

Signale an Prozesse

Prozesse sind meist blockiert und warten auf ein Signal.

Beispiele:

Web Server wartet auf ein Signal der Netzkarte, dass ein Zugriff von

außen erfolgt.

Ein Editorprozess wartet auf eine Tastatureingabe.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 33 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Prozesse in Unix / Linux

Signale an Prozesse

Beispiel: Web Server wartet auf ein Signal der Netzkarte, dass ein

Zugriff von außen erfolgt.

1

Kartentreiber

2 Betriebssystem

3

Web

Server

Prozess

1. Netzkarte empfängt Nachricht und gibt diese an

Kartentreiber

2. Kartentreiber informiert Betriebssystem, dass das

Signal versendet werden soll

3. Betriebssystem weckt (deblockiert) Web Server

Prozess auf und informiert, dass ein Signal zugestellt

wurde

4. Web Server Prozess schaut in Signaltabelle nach neu

erhaltenem Signal

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 34 eCommerce Sommersemester 2008

Signaltabelle

4


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Prozesse in Unix / Linux

Signale an Prozesse

Manuelles Versenden von Signalen

kill pid sendet ein Signal an den Prozess mit PID

Beispiel:

kill 99 (PID zuvor mit ps ermittelt)

und wenn ein Prozess hängt, also “abgeschossen” werden muss:

kill -9 1010

-9 ist die Nummer des Signals, 9 = SIGKILL

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 35 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Netzwerkkommunikationsmechanismus in UNIX / Linux und

weiteren Betriebssystemen (Socket)

• ermöglichen den Prozessen den Zugriff auf das Netzwerk

• bieten verschiedene Kommunikationsformen:

- zuverlässiger verbindungsorientierter Byte-Stream

- zuverlässiger, verbindungsorientierte Paketstrom (Paket-Stream)

- unsichere Paketübermittlung (Paket Transmission)

Sending Process Receiving Process

Socket

Connection

Network

User Space

Kernel Space

[A.S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992]

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 36 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Ports

Sockets sind eine Funktionalität des Betriebssystems, die von über Netzwerk

kommunizierenden Prozessen genutzt werden.

Dabei werden den Prozessen feste Zugriffspunkte (Ports) zugeordnet

(z.B. FTP-Prozesse haben den Port 21).

• Portnummern 1 bis1023 Systemprozesse oder systemnahe Prozesse

• Portnummern 1024 bis 5000 werden von der Portverwaltung vergeben

• Portnummern ab 5001 werden ohne Kontrolle vom Anwender vergeben

Eine Verbindung wird daher charakterisiert durch:


File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 37 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Grundsätzlicher Ablauf der Kommunikation über Socket

hier codiert in C:

Server Client

socket(); /* Adr.fam,Art,Prot. */ socket();

bind(); /* Adresse */

listen(); /* Puffer */

accept(); /* Verb.aufbau */

… /* Server ist blockiert */

connect();/* Verb.aufbau */

read(); /* Lesen - Schreiben */ write();

write(); read();

… /* Server ist blockiert */

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 38 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Grundsätzlicher Ablauf der Kommunikation über Socket

Alternative Realisierung in Java (Teil 1, Deklaration der Variablen):

// create socket instance:

Socket socket = (Socket)null;

// I/O – streams:

InputStream instream;

OutputStream outstream;

// define hostname and portnumber:

String hostname = "141.35.45.222";

int portnumber = 1024;

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 39 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Grundsätzlicher Ablauf der Kommunikation über Socket

Alternative Realisierung in Java (Teil 2, Öffnen der Socket-Verbindung):

// open socket

try {

if (socket == (Socket)null) {

socket = new Socket (hostname, portnumber , true);

System.out.println("New Socket created");

// open streams for socket

instream = socket.getInputStream();

outstream = socket.getOutputStream();

}

else {System.out.println("Socket already existing"); }

} catch ( IOException e ) {System.out.println("Socket Error");};

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 40 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Grundsätzlicher Ablauf der Kommunikation über Socket

Alternative Realisierung in Java (Teil 3, Datenaustausch):

public void communicate () throws IOException {

byte b = (byte)0;

b = (byte) instream.read();

System.out.println("Socket has received Byte:" + b);

outstream.write(b);

outsream.flush();

System.out.println("Socket has send Byte: " + b);

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 41 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Grundsätzlicher Ablauf der Kommunikation über Socket

Alternative Realisierung in Java (Teil 4, Socket schließen):

try {

instream.close();

outstream.close();

socket.close();

} catch ( IOException e )

{System.out.println("Socket closed "); };

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 42 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.2 Unterstützung durch Betriebssystem

Durch Socket unterstüzte Protokolle

User

Process

User

Process

TCP UDP

IP ARP

Hardware

Interface

Process Layer

(Application)

Transport Layer

Network Layer

Data Link Layer

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 43 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

TCP / IP Protokollpakete

reale Protokollebenen und deren alternative Dienste

User

Process

User

Process

TCP UDP

IP ARP

Hardware

Interface

Process Layer

(Application)

Transport Layer

Network Layer

Data Link Layer

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 44 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Adressierung mit IP Nummer

IP Nummer: beispielsweise 134.041.035.222

jeweils vier Bytes (Wert 0 bis 255)

• TCP sorgt dafür, daß die Datenpakete „richtig“ bei

der entsprechenden IP ankommen (dazu werden Sequenznummern genutzt, d.h.

man erhält so die richtige Reihenfolge der Pakete sowie die notwendige Anzahl der

Pakete für die Vollständigkeit der gesamten Information)

• jeder Rechner, der ans Internet angeschlossen ist, hat auch eine IP-Adresse

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 45 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Klassifikation der Netzwerke anhand der IP Nummer

Klasse-A-Netze

Klasse-B-Netze

Klasse-C-Netze

http://www.arin.net/ - American Registry for Internet Numbers

http://www.ripe.net/ - Réseaux IP Européens

http://www.apnic.net/ - Asia Pacific Network Information Center

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 46 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Klassifikation der Netzwerke anhand der IP Nummer

Klasse-A-Netze

• erste Zahl einer IP-Adresse ist Netzwerknummer, alle anderen Zahlen sind

Hostnummern

• als Netzwerknummern solcher Netze sind Zahlen zwischen 0 und 127

möglich

• innerhalb eines Klasse-A-Netzes kann der entsprechende Netzbetreiber die

zweite, dritte und vierte Zahl der einzelnen IP-Adressen seiner

Netzteilnehmer frei vergeben

• Das amerikanische Militärnetz ist beispielsweise so ein Klasse-A-Netz

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 47 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Klassifikation der Netzwerke anhand der IP Nummer

Klasse-B-Netze

• die beiden ersten Zahlen der IP-Adresse = Netzwerknummer

• bei der ersten Zahl sind Werte zwischen 128 und 191 zulässig

• bei der zweiten sind Zahl Werte zwischen 0 und 255 erlaubt

• Klasse-B-Netze werden vor allem an große Firmen, Universitäten und

Online-Dienste vergeben

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 48 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Klassifikation der Netzwerke anhand der IP Nummer

Klasse-C-Netze

• erste Zahl einer IP-Adresse eines Klasse-C-Netzes liegt zwischen

192 und 223

• Die Zahlen zwei und drei gehören ebenfalls noch zur Netzwerknummer.

• kleine und mittlere Unternehmen mit direkter Internet-Verbindung, aber

auch kleinere Internet-Provider

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 49 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Typisches TCP/IP Ebene 2 Protokoll: Ethernet

Arbitrierung (Buszuteilungsverfahren) nach CSMA / CD

(Carrier Sense Multiple Access / Collision Detected)

• Sendestation „hört“ am Bus ob Bus frei (Carrier Sense)

• wenn Bus frei, dann wird die Nachricht gesendet

• die Nachricht breitet sich im Bus wie eine Welle aus (Bus flooded)

• alle Stationen hören mit

• falls eine Station feststellt, dass zwei Nachrichten kollidieren (d.h. hört

Mischung aus zwei Nachrichten gleichzeitig), wird ein dominantes

Fehlersignal (Jam) gesendet

• hören die mehreren Sender das Jam-Signal, stellen sie das Senden ein und

warten eine Zeitspanne (Back-off)

Vorraussetzung: Das Versenden eines minimalen Pakets dauert länger als die

Kollisionserkennung und Kollisionsmeldung.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 50 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Typisches TCP/IP Ebene 2 Protokoll: Ethernet

Physikalisches Netzwerk: Kabeltypen und Netzwerkkarten

Original Ethernet (0,4" Koaxialkabel):

Thick Ethernet Yellow Cable oder 10Base5 (10 MBit/s, Basisband, 500m)

Billigere Varianten:

Thin-Wire 10Base2 (10 MBit/s, 185m), 0,25„ Koaxialkabel

Twisted Pair 10BaseT (bis 100 MBit/s, 30m), verdrilltes Telefonkabel

Ethernet-Netzwerkkarten habe eine 48 Bit Adresse (MAC-Adresse).

Ursprünglich waren die ersten 3 Byte für den Hersteller reserviert (von IEEE) und

die anderen 3 Byte für die Gerätenummer.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 51 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Universal Resource Identifier (URI)

Browser

This is a sample text in a document. From the

user's point of view a web document is just a

document which contains links which point to

other documents (or into other documents).

These links may simply be activated by clicking.

Image

Document 1

Document 2

Document n

Wie können Dokumente (bzw. Teile von Dokumente) im Internet eindeutig

lokalisiert und identifiziert werden?

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 52 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2)

Universal Resource Identifier (URI)

URN URL

URI

URN (Uniform Resource Code) and URL (Uniform Resource Locator)

URI: an identifier pointing at any kind of information resource in the web;

superset of URN and URL

URN: the globally unique name of the resource and an address indicates where

it is; has no fixed dependence to the real location

URL: a physical address of an object, defining the access protocol

(scheme. e.g. HTTP)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 53 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Universal Resource Identifier (URI)

Client

1. URN 2. URL 3. URL 4. Resource

UNS

URL und URI Konfusion:

Resource

Server

• HTML 3.2 Spezifikation spricht von URL

• HTML 4.0 Spezifikation spricht von URI

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 54 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Universal Resource Identifier (URI)

URL Schema (Scheme-specific Part of URL)

Beispiel:

http://www.web-server.de:80/users/student

Syntax:

" // " [ user [ " : " password ] " @ " ] host [" : " port] " / " url-path

Semantik:

user: Login eines Benutzers, kann entfallen

password: Passwort eines Benutzers, kann entfallen oder leeres Passwort

host: entweder vollständig qualifizierter Domänenname oder IP-Nummer

port: optional, meist Port-Nummer 80 (Standard für Web Server)

url-path: Rest der URL, spezifiziert den relativen Ort des Dokuments auf dem Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 55 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Universal Resource Identifier (URI)

URL Schema (Scheme-specific Part of URL)

http://www.web-server.de:80/users/student

Scheme Scheme specific Part

ftp: FTP protocol

http: HTTP protocol

https: HTTP over SSL (Secure Sockets Layer)

news: newsgroups or individual articles

nntp: Networks News Transfer Protocol (Usenet news between servers)

mailto: Internet mailing address (SMTP or ESMTP)

telnet: interactive services accessed by telnet protocol

ldap: updating & searching directories over TCP/IP (X.500 directories)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 56 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

A Protocol which

• defines how messages are formatted and transmitted which actions web servers

and clients can perform

• uses reliable connection-oriented TCP

• is stateless

Goal of HTTP:

• easy to implement (light protocol)

• enables the retrieval of text based documents

• (fast protocol)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 57 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

Zugriff auf Server

Hier bekanntes Standardverfahren

Client Server

1. Anfrage an Server

2. Antwort des Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 58 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

Proxy Server und Tunnel

Proxy und Gateway:

1. Anfrage an Proxy

Client Proxy

4. Antwort an Client

2. Anfrage 3. Antwort

an Server an Proxy

Origin Server

Tunnel:

1. Anfrage an Server

Client Tunnel

4. Antwort an Client

2. Anfrage 3. Antwort

an Server an Client

Origin Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 59 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

HTTP Services

Message Specifications:

generic and Entity, Request and Response

Content Negotiation:

Language specific, Quality specific, Encoding specific Variants

Authentication, Identification and Authorization

Persistent Connection (HTTP/1.1)

Chunked Encoding (HTTP/1.1)

when length of content is not known at the beginning of the transfer

Caching

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 60 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

HTTP Caching

Client Cache Server

Cache zwischen Client und Server

Client Server

Cache

Cache auf Seiten des Client

Client Server

Cache

Cache auf Seiten des Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 61 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

HTTP Unterstützung für Cockies

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 62 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

HTTP Unterstützung für Cockies

Cookie Types: Set-Cookie and Cookies

Cookie Content: Comment (optional)

Domain (optional)

Max-Age (optional)

Path (optional)

Secure (optional)

Version (mandatory)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 63 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)

HTTP Unterstützung für Cockies

Eigenschaften:

• Kleine Dateien (


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Nehmen Anfragen von Web Clients in Empfang und antworten durch:

- Auslieferung von Web Seiten (HTML Dokumenten)

- Ausführen von Skripten durch Interpreter, die als Module integriert sind

- Aufruf von externen Skripten über CGI

Aufzeichnen von Informationen:

-Informationen der Clients

- Loging Informationen über Zugriffe und Fehler

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 65 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Charakteristika von Web Server

HTML/HTTP-Server:

• Wartet auf HTTP/SHTTP-Anfragen

• Anfrage = URL + Parameter/Daten

• Aktivitäten des Servers:

– Seite im Dateisystem zu URL suchen und zurückliefern

– Skript im Dateisystem zu URL suchen und mit Parametern ausführen

– Ergebnisse zurückgeben (CGI)

– Sonstiges Mapping von URL und Parametern auf Funktionalität

• HTTP-Server als Gateway zur eigentlichen Anwendung

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 66 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Charakteristika von Web Server

HTTP-Server – Möglichkeiten zur Dynamik:

• Inhalte (z.B. HTML-Seiten), die ausführbare Anweisungen enthalten,

welche der Server interpretiert (Inline PHP)

• SSI, XSSI

• Serverside Scripting: PHP, JSP

• Eigener Prozess: CGI, FastCGI

• Im Kontext des Servers: Servlets, COM-Objects

• Erweiterungen des Web-Servers, z.B. Apache Modules

• Spezialserver, z.B. LEO Wörterbuch, bis zu 400.000 Anfragen täglich ...

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 67 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Anforderungen an Web Server Verfügbarkeit

Geforderte Uptime erlaubte Downtime

Availability Annual Monthly

95% 438 hrs. 36.5 hrs. Beta-Test

99.5% 43.8 hrs. 3.7 hrs. Großteil aller kommer-

99.95% 4.38 hrs. 21.9 mins. ziellen Systeme

99.98% 1.75 hrs. 8.75 mins. Mission-critical Systeme

99.99% 0.88 hrs. 4.4 mins. Real-time

99.999% 0.09 hrs. 0.4 mins. Carrier-quality Systeme

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 68 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Informationsgewinnung durch HTTP-Request

Web-Browser geben mit:

• IP Adresse, z.B.129.28.241.121

• Domain-Name

• Referring Page

• Client-Plattform

• Cookies

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 69 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Informationsgewinnung Benutzerdaten

• Feststellung, welche Person sich hinter Request verbirgt

• IP Adresse in HTTP Request

• Authentifizierung durch Benutzer (Login)

• Speicherung

• URL-Rewriting (Session-Identifikator)

• Cookies (siehe vorherige Folien)

• Vergabe einer Session-ID durch Server (Speicherung bei

Client, Abruf durch Server)

• Client-Zertifikate (für SSL)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 70 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Web Server speichert Information zu allen Anfragen:

• URL

• Zeit

Informationsgewinnung Server Log Analyse

• Client-IP-Adresse

• Browser-Identifikator (Typ, Version, Betriebssystem)

• Referrer-URL

• Meist zuerst Identifikation von User-Sessions und Zuordnung eines Identifikators

• genutzt für Visualisierung oder Data-Mining ...

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 71 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.3 Protokolle (2) Web Server Funktionalität

Internet

Server Cluster (Server Farms)

Load

Balance

Anfrage wird

zum am

wenigsten

belasteten Server

geschickt

Web

Server

Web

Server

Web

Server

replizierte

Inhalte

Appl.

Server

Appl.

Server

Appl.

Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 72 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung

2.4.1 CGI

2.4.2 PHP

2.4.3 JavaScript

2.4.4 Java Applets (extra Dokument)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 73 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung

CGI

• CGI as interface between servers and external applications.

• CGI is a realized by scripting languages, e.g. Perl

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 74 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Communication with the Web Server

Server Environment Variables:

1 Request independent: SERVER_SOFTWARE

SERVER_NAME

GATEWAY_INTERFACE

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 75 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Communication with the Web Server

Server Environment Variables:

2 Request dependent: SERVER_PROTOCOL

SERVER_PORT

REQUEST_METHOD

PATH_INFO

PATH_TRANSLATED

SCRIPT_NAME

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 76 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Communication with the Web Server

Server Environment Variables:

2 Request dependent (continued): REMOTE_HOST

REMOTE_ADDR

AUTH_TYPE

REMOTE_USER

REMOTE_IDENT

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 77 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Access to Server Environment Variables:

#!/usr/bin/perl

print "Content-type: text/html","\n\n";

print "", "\n";

print "", "\n";

print "","\n";

print "", "\n";

print "","\n";

print "Subject of the HTML File","\n";

print "","\n";

$server_name = $ENV{'SERVER_NAME'};

print "The Server Name of the machine is ",

$server_name,"","\n";

print "\n";

print "","\n";

print "","\n";

exit (0);

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 78 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Application dependent Data:

#!/usr/bin/perl

print "Content-type: text/html","\n\n";

print "", "\n";

print "", "\n";

print "","\n";

print "", "\n";

print "","\n";

print "Subject of the HTML File","\n";

print "","\n";

%data = ("name",“Schiller","age",35,"place",“Jena");

print $data{'name'}, " is ", $data{'age'}, " years and

lives in", $data{'place'};

print "\n";

print "","\n";

print "","\n";

exit (0);

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 79 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Perl Program:

Web Server and Perl Execution:

#!/usr/bin/perl

print "Content-type: text/html","\n\n";

print "", "\n";

print "", "\n";

print "","\n";

print "", "\n";

print "","\n";

print "Subject of the HTML File","\n";

print "","\n";

$server_name = $ENV{'SERVER_NAME'};

print "The Server Name of the machine is

",$server_name,"","\n";

print "\n";

print "","\n";

print "","\n";

exit (0);

HTML exportiert durch Web Server:






Subject of the HTML File


The Server Name of the machine is

my_server.wiwi.uni-jena.de




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 80 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Perl Interpreter: perl perl-script.pl

#!/usr/bin/perl

$i = 42;

$square = $i * $i;

print "the square of ", $i, " is ", $square, "\n";

if($i > 1000)

{

$i = 0;

}

while($i


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Perl Interpreter: perl perl-script.pl

#!/usr/bin/perl

$value = 123456;

$partof = substr($value,1,3);

print $partof;

@data = (“Christian",“Albrecht",“Kiel","Germany");

print $data[0], " ", $data[1], " lives in ", $data[2], " ",

$data[3];

for($i = 1;$i


2 Grundlagen

eCommerce Systeme

2.4 Programmierung CGI

Perl Interpreter: perl perl-script.pl

Interpreter Execution:

Option | Meaning

-c Syntax Check

-d Debug Mode

-S Usage of given Paths

-T strict Syntax Check while Execution

-v Perl Interpreter Version

-w Syntax Check and Warnings while Execution

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 83 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

Personal Home Page Tool



PHP Examples



PHP Examples




echo ("or without processing instructions")




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 84 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

• 1994: erste Version von R. Lerdorf: Personal Home Page Tool

einfache Skriptsprache zum Gestalten von Web Pages

• Open Source: PHP Hypertext Preprocessors

• 1995 erste professionelle Systeme PHP/FI (Personal Hompage Tools

Form Interface) als PHP 2

• seit 1997 intensive Weiterentwicklung mit dem Ergebnis 1999 PHP 3

• 2000 Einführung von PHP 4, aktuell PHP 5

•Besonderheit von PHP im Gegensatz zu z.B. Perl: nur als Webskript

implementiert (Perl seit 1986 von L. Wall)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 85 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

• PHP kann vom Web Server direkt interpretiert werden

(Einbindung als Modul) oder

• PHP wird über CGI aufgerufen

• Apache ist der wichtigste dieser Web Server, der PHP Module

unterstützt und gleichzeitig der am meisten verwendete Web

Server

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 86 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

Programmierung: Arrays


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

Programmierung: Multi-dimensional Arrays


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

Programmierung: Integer Variablen






File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 89 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung PHP

Programmierung: Floating Points Variablen

Floating-point Numbers




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 90 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

• ist eine Client-Seitige Scriptsprache:

in HTML Seite eingebettet und wird im Browser (also auf

Client-Seite) ausgeführt / interpretiert

• im HTML Dokument wird JavaScript innerhalb eines

„Script“ Tag definiert:


function checkZahl(obj){

var x =obj.val e;

if (isNaN(x)){

alert(x +“ ist keine Zahl“);

return false;

}else return true;

}


File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 91 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Einfaches Beispiel:

Test auf JavaScript enabled oder disabled in Browser



JavaScript Hello World






JavaScript Hello World



File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 92 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Einsatzmöglichkeiten:

Prüfung und Manipulation von Daten auf Seiten des Clients

z.B. einfach Eingabevalidierungen (siehe JavaScript Funktionen)

– Eingabe nicht leer

– Eingabe ist numerisch oder Ganzzahl

Dynamischer Aufbau von Web Seiten ohne Rückgriff auf

Server, z.B. Anordnen von Graphiken, Aufbereiten von Listen

Nicht geeignet für:

vertragsrelevante Geschäftlogik (z.B. Bonitätsprüfung, …)

Diese muss auf Server ablaufen.

JavaScript wird von unterschiedlichen Browsern unterschiedlich

abgearbeitet! (z.B. MS Internet Explorer, Mozilla oder Firefox)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 93 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Anwendung von JavaScript:

• Aussehen und Inhalt von WWW-Dokumenten beeinflussen (Inhalte

einfügen, Farben ändern, mehrere Frames gleichzeitig beeinflussen, ...)

• Browser steuern (Dialogboxen erzeugen, Browser-Windows öffnen/

schließen, Menüleisten, Statuszeile und Symbolleisten des Browsers

beeinflussen, Anordnung von Frames beliebig definieren, URL des

Dokumentes ändern, die Browser-History benutzen, ...)

• Interaktion mit dem Dokumentinhalt erlauben (Auswerten der

Benutzeraktionen - Click, Seite verlassen, etc.)

• den Client-Zustand lokal speichern/lesen - Cookies, d.h. kann begrenzt

auf die Festplatte des Nutzers schreiben/lesen

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 94 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Nicht geeignet für:

• Graphiken selbständig erzeugen

• hat „keinen“ Zugriff auf Maschinenressourcen

(Ausnahme - Cookies)

Sicherheitsaspekte beachten!

• keinerlei Netzwerkoperationen

Ausnahme: Darstellung beliebiger URL‘s aus dem WWW

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 95 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

- interpretierte Programmiersprache mit rudimentärer Objektorientierung

- wird durch WebBrowser interpretiert

- Objekte z.B. können Web Browser Windows und deren Inhalte repräsentieren

- im wesentlichen auf die Interaktion mit den Nutzern ausgerichtet

(erweiterte HTML Forms)

Syntax ist an C/C++ und Java angenähert, stellt aber eine eigenständige Sprache

dar:

• keine Variablentypisierung notwendig - d.h. Variablen werden

nicht explizit Typen zugewiesen

• Objekte in JavaScript erinnern oft an Arrays oder Collections

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 96 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

JavaScript ist kein vereinfachtes Java sondern eine eigenständige

Programmiersprache

- selbst der Name wurde vom ursprünglichen LiveScript erst später in

JavaScript geändert

(z.B. können mit JavaScript keine Graphiken erzeugt werden, es kann

auch keine Netzwerke nutzen, kann nur begrenzt auf Systemressourcen

zugreifen etc.)

- kann lediglich den Browser und seine Inhalte steuern

� Java kann dies wiederum nur sehr begrenzt

� damit ergänzen sich diese Sprachen eher

JavaScript kann auch zur Entwicklung „großer“, komplexer Programme

verwendet werden. Die Sinnhaftigkeit ist aber zu bezweifeln.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 97 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Programmbeispiel Quadrieren



JavaScript Multiplication with local Variables







input = window.prompt("Insert number to be multiplied by 5:","");

multiplicate(input);



File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 98 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Funktionen und Ereignisse:

Funktionen:

• Verarbeitung von Daten und deren Manipulation

• selbstdefinierte Funktionen und vordefinierte Funktionen

Ereignisse (Events):

• Auffangen von Ereignissen, dadurch werden Funktionen ausgelöst

• Interaktion mit den Anwendern

• Verankerung zu HTML Seiten

Charakteristisches Vorgehen bei allen Web-basierten Systemen!

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 99 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

vordefinierte Funktionen:

mathematische Hilfsroutinen:

• isNaN ist das Argument eine gültige Zahl (is NotaNumber)

• isFinite ist das Argument im gültigen Zahlenbereich

• eval interpretiert das Argument als math. Ausdruck

• Number konvertiert das Argument in eine Zahl

• parseInt konvertiert das Argument in eine Ganzzahl

• parseFloat konvertiert das Argument in eine Dezimalzahl

String (de)codierung fürs Web:

• encodeURI verschlüsselt Sonderzeichen einer URI

• decodeURI entschlüsselt Sonderzeichen einer URI

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 100 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Ereignisse:

JavaScript Aufruf aus einem HTML Formular


Aktivierung durch EventHandler:

• onChange, onClick, onDblClick

• onError, onAbort

• onLoad, onReset, onUnload, onFocus,onBlur

• onKeydown, onKeypress, onKeyup ...

• onMousedown, onMousemove, onMouseover, onMouseup ...

Beispiel Eingabeüberprüfung:


File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 101 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Beispiele für Ereignisse:


onChange bei Verändreungen von Eingabeelementen

onClick bei Mausklick oder Doppelklick auf Element

onFocus tritt ein, wenn ein Element selektiert (aktiviert) wurde

onLoad beim Laden der HTML-Datei in den Browser

onUnload beim Verlassen der HTML-Datei

onMouseover beim Überfahren eines Elements mit der Maus

onMouseout beim Herausfahren der Maus aus Bereich eines Elements

onReset beim Zurücksetzen eines Formulars

onSubmit beim Absenden eines Formulars

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 102 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Syntax: Operatoren

Operatoren dienen z.B. zur Auswertung bestimmter Inhalte von Variablen,

die Verknüpfung von Variablen (ähnliche Syntax / Semantik wie Java)

Vergleichsoperatoren: Logische Operatoren: arithmetische Operatoren:

== gleich

!= ungleich

< kleiner

> größer

größer gleich

3 == 3 ⇒ true

3 > 4 ⇒ false

3 != 4 ⇒ true

“ x“ == “ x“⇒ true

&& logisch UND

|| logisch ODER

! logisch NICHT

if ((a


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Syntax: Variablen und Wertzuweisungen

• Ablage für Integer, Real, Text, … , aber keine explizite Typisierung

• Gültigkeitsbereiche (Scopes) für Variablen (lokal und global)

können implizit oder explizit deklariert werden:

1. direkt im Programmcode

(implizite Deklaration)

immer mit Wertzuweisung:

... Anweisung 1;

Anweisung 2;

... ;

i = 5;

... ;

nname = ´Martin´;

... ;

Anweisung n;

2. explizite Variabelendeklaration:

var i;

var vname = ´Martin´;

... Anweisung 1;

Anweisung 2;

... ;

Anweisung n;

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 104 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Syntax: Gültigkeitsbereiche von Variablen

lokale Gültigkeit



File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 105 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Syntax: Gültigkeitsbereiche von Variablen

globale Gültigkeit






input = window.prompt("Text:","");

multiplicate(input);

document.writeln(result); // in scope


File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 106 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Syntax: Kontrollstrukturen entsprechen denen von Java

Bedingte Anweisung:

if ( condition) {

// expression in true case

}

else {

//expression infalse case

}

Switch-Case Auswahl:

switch(choice)

{

case condition: expression; break;

default : expression;

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 107 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Document Object Model (DOM)

• Repräsentation von Dokumenten als Baum

• Bearbeitung durch Baummanipulation

• Vergleiche XML DOM

DOM Manipulation von verschiedenen Browsern verschieden!

Das W3C definierte 1998 das DOM als Standard.

Die Elemente einer Seite bilden eine hierarchisch geordnete Struktur.

Auf diese Elemente lässt sich mit den Methoden von JavaScript zugreifen.

Die Wurzel einer jeden HTML Seite ist das document, das

dann alle weiteren Formulare und Tags enthält.

Die einzelnen Elemente lassen sich mit ihren symbolischem

Namen oder der Id referenzieren.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 108 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.4 Programmierung JavaScript

Document Object Model (DOM)

Location

Window

Document

Frames 0 ..* 0 ..*

0 ..* Applets Forms

0 ..*

Elements

0 ..*

Options


All


Layers


TextArea


Select


Input


RadioButton


Style


CheckBox

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 109 eCommerce Sommersemester 2008

1

0 ..*

0 ..*

Text/CSS


2 Grundlagen

eCommerce Systeme

2.4 Programmierung Java

(siehe

Programmbeispiele

auf Server)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 110 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation

2.5.1 Strukturierte Dokumente

2.5.2 HTML

2.5.3 XML

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 111 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

SGML: Standard Generalized Markup Language

ISO Standard 8879




Text of Title



Text, Links, Graphics, etc.



SGML oder HTML?

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 112 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

SGML: Standard Generalized Markup Language

ISO Standard 8879

von IBM entwickelt

Ziel: Standard (ASCII) Texte mit unterschiedlichen Formatierungen versehen zu

können;

dazu werden den verschiedenen Textpassagen bestimmte

Formatierungsbefehle zugeordnet

Trennung von Inhalt (Content), Struktur (Syntax) und Darstellung (Presentation)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 113 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

SGML: Grundlegende Konzepte

Chapter

Section

Figure

Document Content:

logical structure, actual content

Book

Chapter

Section

Paragraph

Chapter

Section

Figure

Document Presentation:

consist of a set of rules, e.g. section numbering and formatting or location of footnotes

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 114 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

SGML: Trennung zwischen Inhalt und Präsentation




your name


eCommerce Basics


SGML



Slide #3

This is my text.

my_image.gif




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 115 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

DTD: Document Type Definition

hier einfaches Beispiel des Buches











File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 116 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation Strukturierte Dokumente

DTD: Document Type Definition

Metamodell der DTD:

• Elements

• Model Groups Connectors: (, & |) Occurence: (+ * ?)

• Text Elements

• Exceptions: Inclusion (+) or Exclusion (-)

• Attributes

• Entities

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 117 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation HTML

HTML: Hyper Text Mark-up Language

Beschreibung in DTDs für HTML 4.0:

• transitional DTD (e.g. , , )

• strict DTD: transitional DTDs which are obsolete in HTML 4.0

• frameset DTD: usage of frame in a HTML file

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 118 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation HTML

2 Categories of HTML content elements:

- Block-level Elements

- Inline Elements

1 Content Model:

Block-level elements may contain block-level elements as well as inline elements. They

create the larger structures. Inline elements may contain only data and other inline

elements.

2 Formatting

Block-line elements begin with new lines and are not subject of line breaking.

Inline elements do not necessarily start with new lines and may be broken across lines.



File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 119 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation HTML

HTML: Hyper Text Mark-up Language

Web Browser (Darstellung von Web Sites und Web Applications)

HTML Framework

Text

Listen

Verweise (Links, References)

Tabellen

Bilder

Rahmen (Frames)

Umlaute und Sonderzeichen

Formulare (Forms, Datenaustausch in HTML-Dokumenten)

Farben (Schriftfarbe, Hintergrund, Farbwechsel und Farbtabellen)

Bilder (Images und Image Maps)

CSS, Cascading Style Sheets

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 120 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML: eXtensible Mark-up Language

Dokumente

Parsing

XML Files

SAX Parser

DTD

Erweiterte Konzepte

DOM

Schema

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 121 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML versus HTML

- HTML is inflexible

- SGML is complex

SGML

Declaration

Document

Parser

HTML

DTD

Document XML DTD

XML SGML

Declaration

Parser

XML

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 122 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

Features


you@yourAddress.com

me@myAddress.com

eCommerce Basics Course 2005


This is the contents of the course.



- Tags identify the message as a whole:

the destination and sender addresses, the subject and the text of the message.

Like in HTML, the tag has a matching end tag: .

The data between the tags define an element of the XML data.

It is this ability for one tag to contain others that gives XML its ability to

represent hierarchical data structures

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 123 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

Features

- text-based markup language

- becoming the standard for data interchange on the web

Similar to HTML:

- data is identified by tags ( ... )

(the tags are known as "markup”)

However XML is “well-formed”.

In contrast to HTML:

- XML tags inform what the data means, rather than how to display it.

e.g. HTML tag: ...

e.g. XML tag: ...

Puts a label on a piece of data like a field name in your program.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 124 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Document Structure

Header with

XML Instructions

Document Type

Declaration of

used DTD

Documentation

Content

Root Element

Data Element


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Elements and Attributes

XML DATA Elements

A unit of XML data, delimited by two tags (well-formed). An XML element can enclose other

elements.


..

..


The element contains two elements.

Elements may contain other elements or attributes.

XML DATA Attributes

A qualifier on an XML tag that provides additional information.



title is an attribute, and Section Information is its value.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 126 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

When to use Elements, when Attributes?

There is neither a specification nor a standard!

Rule of Thumb:

use elements for presentable data and attributes for system data.

Elements:

data presented to a client or application; or part of a formula

can be treated as application data and is easily searchable

e.g.: Internet Programming

Attributes:

data used for grouping, letting an application know how to handle sth.




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 127 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Document Type Definition

Einfaches Beispiel







File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 128 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

Basic Parsing: SAX Parser Framework

Simple API for XML

Object Parsing: Document Object Model (DOM)

(based on SAX) [advanced Concept]

Document Definitions for Parsers:

• simple Definition

DTD (Document Type Definition)

• improved Approaches

Schema (Microsoft et al.) [advanced Concept]

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 129 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (course_sample_01.xml)







eCommerce




Overview

eCommerce Introduction



File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 130 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

SAX Parser Framework

SAX Parser Factory:

creates an instance of the parser

Document Handler:

methods which are invoked when an XML tag

is recognized

defines also methods which are invoked when

the parser encounters the text in an XML

element or an inline processing instruction,

respectively.

Error Handler:

Methods error, fatal error, and warning are

invoked in response to various parsing errors.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 131 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

SAX Parser Framework

DTD Handler:

interface which defines methods invoked

when processing definitions in a DTD.

Entity Resolver:

is invoked when the parser must identify

data identified by a URI

The public identifier may be specified in

addition to the URL. The Entity Resolver

can then use the public identifier instead of

the URL to find the document, for example

to access a local copy of the document if

one exists.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 132 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

import javax.xml.parsers.SAXParserFactory;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

public class IP_parser_01 extends HandlerBase {

public static void main (String argv []) {

if (argv.length != 1) {

System.err.println ("Usage: IP_parser_01 ");

System.exit (1);

}

SAXParserFactory factory = SAXParserFactory.newInstance();

try {

// Parse the input

SAXParser saxParser = factory.newSAXParser();

saxParser.parse( new File(argv [0]), new IP_parser_01() );

} catch (Throwable t) {

t.printStackTrace ();

}

System.exit (0); } }

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 133 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Basic Parsing: Call Back Routines (Start and End of Document)

//===========================================================

// SAX DocumentHandler methods

//===========================================================

public void startDocument ()

throws SAXException

{

System.out.println("");

}

public void endDocument ()

throws SAXException

{

System.out.println("...Parsing ends.");

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 134 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Basic Parsing: Call Back Routines (Start and End of Element)

public void startElement (String name, AttributeList atts)

throws SAXException

{

System.out.print("startElement: ");

public void endElement(String name)

throws SAXException

{

System.out.println("endElement: " + name); }

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 135 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Basic Parsing: Call Back Routines (Characters)

public void characters(char[] buf , int start, int end)

throws SAXException

{

System.out.println("start: " + start + " end: " + end);

}

String s = new String(buf, start, end);

System.out.println("characters: " + s);

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 136 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Additional Event Handling: Call Back Routines

A locator is an object that contains the information necessary to find the

document. The Locator class encapsulates a system ID (URL) or a public

identifier (URN), or both!

public void setDocumentLocator (Locator l)

{

// Save this to resolve relative URIs or to

// give diagnostics.

try {

}

System.out.print ("LOCATOR");

System.out.println ("\n SYS ID: " + l.getSystemId() );

} catch (IOException e) {

// Ignore errors

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 137 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Processing Instruction: Call Back Routines

Information contained in an XML structure that is intended to be interpreted by

a specific application.

XML File:



SAX Parser:

public void processingInstruction (String target, String data)

throws SAXException

{

System.out.print ("PROCESSING INSTRUCTION: ");

System.out.println ("");

}

Parsing Result:

PROCESSING INSTRUCTION :

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 138 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Name Space Handlers: Call Back Routines

Specifies a unique label to the set of element names defined by a DTD.

A document using that DTD can be included in any other document without

having a conflict between element names.

The elements defined in your DTD are then uniquely identified so that, for

example, the parser can tell when an element called should be

interpreted according to your DTD, rather than using the definition for an

element called "name" in a different DTD.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 139 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Name Space Handlers: Call Back Routines

Specifies a unique label to the set of element names defined by a DTD.





Here is some data.





Here is some other data (interpret different).





File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 140 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Name Space Handlers: Call Back Routine, continued

2 calls available: Begin and End

Begin:

public void startPrefixMapping (String prefix, String uri)

throws SAXException

{

System.out.print ("Namespace Mapping starts for ");

System.out.println ("prefix: " + prefix + " ; uri: " + uri");

}

End:

public void endPrefixMapping (String prefix)

throws SAXException

{

System.out.print ("Namespace Mapping ends for ");

System.out.println ("prefix: " + prefix");

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 141 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Error Handling: default Handling

three kinds of errors:

• fatal error: occurs in the SAX parser when a document is not well formed, or

otherwise cannot be processed.

• error: is generally a validation error -- in other words, it occurs when an XML

document is not valid, although it can also occur if the declaration specifies an

XML version that the parser cannot handle.

• warning: is generated when the document's DTD contains duplicate definitions,

and similar situations that are not necessarily an error.

CHARS: org.xml.sax.SAXParseException: Expected ""

to terminate element starting on line 20.

...

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 142 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Error Handling. Call Back Routine

A SAXException can be constructed using a message, another exception, or both.

So, for example, when Echo.startDocument outputs a string using the emit

method, any I/O exception that occurs is wrapped in a SAXException and sent

back to the parser:

// ... sth. throwable

} catch (SAXException sxe) {

// Error generated by this application

// (or a parser-initialization error)

Exception x = sxe;

if (sxe.getException() != null)

x = sxe.getException();

x.printStackTrace();

} catch (ParserConfigurationException pce) {

// Parser with specified options can't be built

pce.printStackTrace();

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 143 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Basic Parsing: XML Document (parser_01.xml)

Error Handling: Call Back Routine, another Example

// ... sth. throwable

} catch (SAXParseException spe) {

// Error generated by the parser

System.out.println ("\n** Parsing error"

+ ", line " + spe.getLineNumber ()

+ ", uri " + spe.getSystemId ());

System.out.println(" " + spe.getMessage() );

}

// Use the contained exception, if any

Exception x = spe;

if (spe.getException() != null)

x = spe.getException();

x.printStackTrace();

} catch (ParserConfigurationException pce) {

// Parser with specified options can't be built

pce.printStackTrace();

}

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 144 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Document Type Definition

(course_sample_02.dtd)








%xhtml;





File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 145 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Specifying Elements:


Example:

Special Element Values (Element Definition Type):

The element definition could use one of two special values: ANY or EMPTY.

ANY:

The element may contain any other defined element, or PCDATA.

Usually used for the root element of a general-purpose XML document such as

created by a word processor. Textual elements could occur in any order in

such a document, so specifying ANY makes sense.

EMPTY:

The element contains no contents.


Alternative: Nested elements specified in a parenthesized list of elements.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 146 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Specifying Elements (continued):

Nested Elements:






...

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 147 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Combination of Elements


Both Elements (FirstElement, SecondElement) have to appear exactly once!

Operators

[Default Must apear exactly one time

]

? Must appear once or not at all

+ Must appear at least oncs (1 .. n

times).

* May appear one or many times [0 .. n]

Grouping


or

Operator Description


File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 148 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Parsed Data (only character data, no nested elements):






...

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 149 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Entity References

A reference to an entity that is substituted for the reference when the XML document

is parsed.


It may reference a predefined entity e.g.:



”>



or it may reference one that is defined in the DTD.

Additional Useful Entities:




File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 150 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Entity References

Entity References

References to external Files:

In the XML data, the reference could be to an entity that is defined in the local subset of

the DTD or to an external XML file (an external entity).


DTD:



XML File:

&Homepage;

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 151 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Defining Attributes




The last entry in the attribute specification determines the

attributes default value, if any, and tells whether or not the

attribute is required.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 152 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Defining Attributes

Specification Specifies

#REQUIRED The attribute value must be specified in the

document.

#IMPLIED The value need not be specified in the document.

If it isn't, the application will have a default value it

uses.

"defaultValue" The default value to use, if a value is not specified

in the document.

#FIXED "fixedValue" The value to use. If the document specifies any

value at all, it must be the same.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 153 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML DTD, Document Type Definition Rules

Defining Attributes

Attribute Type Specifies

...(value1 | A list of values separated by vertical bars.

value2 | ...)

CDATA "Unparsed character data".

(For normal people, a text string.)

ID A name that no other ID attribute shares.

IDREF A reference to an ID defined elsewhere in the document.

IDREFS A space-separated list containing one or more ID references.

ENTITY The name of an entity defined in the DTD.

ENTITIES A space-separated list of entities.

NMTOKEN A valid XML name composed of letters, numbers, hyphens, underscores,

and colons.

NMTOKENS A space-separated list of names.

NOTATION The name of a DTD-specified notation, which describes a non-XML data

format, such as those used for image files.*

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 154 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

Document Object Model (DOM)

Defining Attributes

Use the DocumentBuilderFactory class to get a

DocumentBuilder instance (upper left)

produce a Document (a DOM) that

conforms to the DOM specification (lower right).

W3C standardized DOM in 1998.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 155 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

Document Object Model (DOM)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 156 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema

• new but incomplete specification, subject of change

(XML schema is not part of the XML 1.0 specification)

• overcomes some limitations and shortcomings of DTDs

• supports more accurate representations of XML structure

constraints

• provides an XML styling process of constraining data

• Schemas are well-formed and valid XML documents

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 157 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema

• using XML documents for the definition of XML documents

• supporting rudimentary data types

• providing simple and complex elements

(user defined data types)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 158 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema






2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema

Data Types:

string Character strings

boolean Binary valued logic (true or false)

float 32-bit floating point type

double 64-bit floating point type

decimal Standard decimal notation, positive and negative

timeInstant A combination of date and time representing one

single instant time

TimeDuration Duration of time

recurringInsta A specific time that recurs over a

nt

binary Binary data

uri A Uniform Resource Indicator (URI)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 160 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema

Data Types:


< complexType name=" myNAMESPACE:ChapterType">





ChapterType defines the name of the complex element.

Heading is part of the complex element of the type of

string.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 161 eCommerce Sommersemester 2008


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XML Schema


Data Types: Attributes


2 Grundlagen

eCommerce Systeme

2.5 Datenpräsentation XML

XSL: Extensible Stylesheet Language

• Specify display characteristics:

identify data content in an XML file and tell how to

display it with an XSL stylesheet

• Specify tag conversions

• Specify "flow objects" or "formatting objects", and the links

between them

Direct Interpretation of XML Instructions by the Web

Server

Integration of XML in Java Servlets

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 163 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitslücken

Grundsätzlich:

• Versenden und empfangen von statischen Dokumenten

• Versenden und empfangen von dynamischen Elementen

Probleme:

• Daten können von Dritten abgefangen werden

• Schaden auf Seiten des Clients

• Schaden auf Seiten des Servers

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 164 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitslücken

Hacker, Würmer, Phishing und Trojanische Pferde

Abfangen von Passwörtern

- einige Protokolle wie telnet verschlüsseln Passwörter nicht

- Passwörter sind meist einfach und können erraten, oder durch

massives Probieren herausgefunden werden

Bei einer one-way Encryption mit offenem Zugriff zu den

verschlüsselten Passwörtern (z.B. Standard UNIX Password Scheme)

können Passwörter durch raten, verschlüsseln und vergleichen gefunden

werden

- Hackers nutzen diese Passwörter zum Einbruch in Rechner, z.T. Missbrauch

des Rechners

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 165 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitslücken

Hacker, Würmer, Phishing und Trojanische Pferde

Morris Internet Worm

entwickelt durch Robert T. Morris, ein Student der Cornell University, 1988;

nutzt Fehler in Berkley UNIX (Solaris, VAX, andere BSD Systeme)

- versucht eine rsh (Remote Shell) von vertrauten Maschinen zu nutzen

- suche eines Server (finger) der Login Data der User bekannt gibt

- Nutzung des Debug Mode von sendmail SMTP Server welcher die

Server dazu brachte Skripte auszuführen ⇒ weitere Ausbreitung

Schaden:

6000 Maschinen brachen zusammen durch die Last des Weiterverbreitens des Wurms

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 166 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitslücken

Hacker, Würmer, Phishing und Trojanische Pferde

Phishing

Durch Vortäuschen einer offiziellen eMail von einer Bank oder Behörde wird die

Eingabe von Daten (Login und Passwort) auf einer bestimmten Web Seite verlangt.

Diese Web Seite wird von den Phishern betrieben.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 167 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitslücken

Hacker, Würmer, Phishing und Trojanische Pferde

Trojanische Pferde

Wie das antike Vorbild sehen diese vertrauenswürdig aus und werden von

den Benutzern selbst geladen.

Die Tarnung kann z.B. durch Vorgabe einer falschen Herkunft

(z.B. gefälschte IP Nummer) geschehen

Umgeht Sicherheitskonzepte wie Firewalls und Zugriffschutz.

JavaScript unterstützt den Bau von Trojanischen Pferden.

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 168 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicheres Ausführen von Java Applets in Sand Box

Java läuft in einer Sand Box (kein direkter Zugriff zu Systemressourcen)

Die einzelnen Mechanismen sind:

- Byte Code Verifier (Code-Manipulationen schwierig)

- Applet Loader / Class Loader (lädt nur die angeforderten Java Objekte)

- Securiy Manager (kontrolliert den Zugriff auf Systemressourcen)

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 169 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicheres Ausführen von Java Applets in Sand Box

Sand Box:

• Kein Zugriff auf das lokale Dateisystem

• Keine Netzwerkverbindungen

– (außer zum Web-Server-Host)

• Bedingter Zugriff auf Systemfunktionen (System.exit() )

• Kein Zugriff auf lokales Clipboard

• Bedingter Zugriff auf Systemeigenschaften und deren Veränderung

Neue Konzepte:

• Signierte Applets

• Andere Security-Manager

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 170 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

Java Applets bei Client

eCommerce Systeme

Bestehend Sicherheitsprobleme:

- Deniyl-of-Service Atacken (Applet verursacht zu starke Last)

- hidden Communication (Kommunikation zu einem Angreifer,

DNS manipulations)

- illegale Package Names

- Angriffe auf den Class Loader

- Angriffe Security Manager

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 171 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitsarchitektur

• Sicherheitsarchitektur bzw. Sicherheitsinfrastruktur

• Bestandteil einer Gesamtarchitektur, der die Sicherheitsstrategie

durchsetzt

• Realisierung der Verwaltung der sicherheitsrelevanten Informationen

und Konzepte

• Zugangskontrolle

• identifiziert und authentifiziert Benutzer

• Zugriffskontrolle

• erlaubt Zugriff auf Daten nur für berechtigte Benutzer

• Firewalls sind eine spezielle Form der Zugriffskontrolle

• Kommunikationssicherheit / Kryptographie

Zugangskontrolle Zugriffskontrolle auf Prozesse und Daten

Kommunikationssicherheit

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 172 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Sicherheitsarchitektur

Sicherheitsarchitektur bzw. Sicherheitsinfrastruktur

• Bestandteil einer Gesamtarchitektur, die die Sicherheitsstrategie durchsetzt

• Realisierung der Verwaltung der sicherheitsrelevanten Informationen und Konzepte

Zugangskontrolle identifiziert und authentifiziert Benutzer

• Zugriffskontrolle erlaubt Zugriff auf Daten nur für berechtigte Benutzer

Firewalls sind eine spezielle Form der Zugriffskontrolle

Kommunikationssicherheit durch sichere Kommunikationsprotokolle

• Einsatz kryptographischer Verfahren

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 173 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

Firewalls

eCommerce Systeme

Dual-Homed Firewall

• ziemlich sicher, aber relativ inflexibel

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 174 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

Firewalls

eCommerce Systeme

Sceened-Host Firewall

• Einige Dienste werden direkt durchgestellt, andere über den Application Proxy

• größere Flexibilität, bei unsachgemäßer Handhabung größere Risiken

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 175 eCommerce Sommersemester 2008


2 Grundlagen

Risiken:

2.6 Sicherheit

eCommerce Systeme

Firewalls: Risiken und Grenzen

• Korrekte Konfiguration eines Firewalls benötigt detaillierte Kenntnisse

– Bedrohungs- und Gefahrenpotential

– Interne Netzinfrastruktur und gewünschte Anwendungsprofile

• Kontinuierliche und sorgfältige Administration erforderlich

– Spezieller Verantwortlicher (Chief Security Officer – CSO) wäre erforderlich

• Teilweise trügerische Sicherheit

– Keine Absicherung gegen Angriffe aus dem internen Netz

– Firewalls decken nur einen Teil der erforderlichen Kontrollen ab

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 176 eCommerce Sommersemester 2008


2 Grundlagen

2.6 Sicherheit

eCommerce Systeme

Firewalls: Risiken und Grenzen

Grenzen:

• Keine Virenabwehr, i.d.R. keine semantische Prüfung der Daten

• Kein Schutz gegen Tunneling (verpackte und verschlüsselte Nutzdaten)

– Filterregeln eines Firewalls können umgangen werden

– z.B. auch Tunneling von IPv6 über IPv4

• Berücksichtigung mobiler Endgeräte

– lokale IP-Adresse aus externem Netz als internes Gerät ?

• A-Posteriori Stopfen von Löchern

– nur bekannte Sicherheitslücken können geschlossen werden

File: eCommerce 2 Prof. Dr. A. Speck CAU Kiel

Folie 177 eCommerce Sommersemester 2008

Weitere Magazine dieses Users
Ähnliche Magazine