Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II...

39
Webtechnologie 06/26/22 Tittel, Manuel Baumann, Sven Java Script Sprachkonstrukte II – Sprachkonstrukte Objekte / vordefinierte Objekte – Funktionen Event Handler Ausblick – Sicherheit – DOM ECMA – Script Components

Transcript of Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II...

Page 1: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Java Script

• Sprachkonstrukte II– Sprachkonstrukte – Objekte / vordefinierte Objekte– Funktionen– Event Handler

• Ausblick– Sicherheit– DOM– ECMA – Script Components

Page 2: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte

Page 3: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Sprachkonstrukte

• Sprache ist universell verständlich

• JavaScript wird innerhalb der HTML-Seite oder externen Dateien implementiert

• Stand-alone kann nicht realisiert werden da JavaScript nur innerhalb von Browsern lauffähig sind

• Casesensitiy Groß- u. Kleinschreibung spielt eine große Rolle

Page 4: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Objekte / vordefinierte Objekte

Page 5: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Elemente der SpracheNamen (d.h. Variable zeigen auf Objekte) auf die wir zugreifen könnenBsp.: Browser-Fenster, HTML-Dokument, HTML-Eingabe-Formular, Formular-Button…etc.

• Objekte sind definierbar nicht wie bei prozed. Sprache (C o. Pascal) = Strucktur bzw. Record

• JavaScript benutzt in erster Linie vordefinierte Objekte

(bestehende Objekthierarchie)

Page 6: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Objekte bestehen aus 3 verschiedenen Komponenten :

- Eigenschaften (Properties) z.B. Hintergrundfarbe- Methode (Methods) Funktion mit der

Objekte abgefragt oder verändert werden kann- Ereignisse (Events) Reagieren auf bestimmte

Ereignisse (Reaktion bei Anklicken des Buttons)

Eigenschaften von Objekten können

wiederum Objekte sein !

Page 7: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Objektmodel im JavaScript (vereinfacht)

Page 8: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Math-Objekte :

- E (Eulersche Konstante) - LN2 (natürlicher Logarithmus von 2) - LOG2E (konstanter Logarithmus von 2) - PI (Kreiszahl PI) - SQRT2 (Quadratwurzel aus 2)

Page 9: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Math-Objekte : - abs() (positiver Wert) - asin() (Arcus Sinus) - sin() (Sinus) - ceil() (nächsthöhere ganze Zahl) - exp() (Exponentialwert) - floor() (nächstniedrigere ganze Zahl) - log() (Anwendung des natürlichen Logarithmus) - round() (kaufmännische Rundung einer Zahl) - sqrt() (Quadratwurzel)

Page 10: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Objekte / vordefinierte Objekte

• Methoden aufrufen: window.history.back();

Objekt Methode

• Eigenschaften lesen: Var1 = window.document.title;

Objekt Eigenschaft

• Eigenschaften verändern: document.title = “Hallo“;

(„Window“ kann weggelassen werden)

• Erzeugen von neuen Objekten- Bild = new Image();

Page 11: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Funktionen

Page 12: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Funktionen

• Zusammenfassung einer Anweisungsfolge unter einem Namen

• an beliebiger Stelle im Programm aufrufbar z.B. bei Events (Ereignissen)

• Parameter ermöglichen das Arbeiten mit unterschiedlichen Werten in einer Funktion

Page 13: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Funktionen

• Bei der Funktionsdefinition ist zu beachten :

- Name (Funktion) muss eindeutig sein- Innerhalb () Klammern können Parameter

übergeben werden- Anweisungsblock kommt zwischen {} - Bei Verwendung einer Funktion muss der

Funktionsname auch in () angegeben werden

Page 14: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Funktionen

• Beispiel

Es kann auch irgendein Wert in einer Funktion berechnet (oder irgendwie erzeugt)

werden, der dann zurückgegeben wird. Im Funktionskopf kein Rückgabetyp.

function prozent(wert, prozentsatz) { var x = wert*(1.0 + prozentsatz/100.0); return(x);

} ... MWSt = prozent(NettoPreis,16); alert(MWSt); ...

Page 15: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Event Handler

Page 16: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Event Handler

• Bindeglied zwischen HTML und JavaScript

• Arbeitet in graphischer Benutzeroberfläche

• Bestimmt welche Anweisungen ausgeführt werden wenn ein bestimmtes Ergebnis eintritt

• Individuelle Reaktionen werden ausgeführt

Page 17: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Event Handler

• Beispiel: <img src=“moby.gif“ onclick=“Abfrage()“>

Page 18: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Event Handler

• Beispiel:

Erklärung : An verschiedenen Stellen im HTML-Code werden Eventhandler gesetzt

Page 19: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Event Handler

• Beim eintreten eines Ereignisses gibt es 2 Arten wie ein Event-Handler den JavaScript-Code anspricht

1) Code steht direkt im Event-Handler

<a href="xyz.html" onmouseover="window.status=return true">Xyz</a>

• Dieser Link führt zu der Seite xyz

Page 20: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sprachkonstrukte II Event Handler

2) Aufrufen einer Funktion im Event-Handler die vorher innerhalb <script> definiert wurde

<a href="xyz.html" onmouseover="highlight(0,'on')"><img id=0 src="buttonxyz.gif"></a>

Dieser Befehlt setzt voraus, dass die Funktion „highlight“ zuvor definiert wurde

<script><!--function highlight(number, on_or_off){hier steht was passieren soll}--></script>

Page 21: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Sicherheit

Page 22: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

HinführungSicherheit

• Javascript hat einige Sicherheitslöcher kein Verstoß gegen Richtlinien

• Browser entscheidet mittels Sicherheitsrichtlinien,

ob ein Script zulässig ist

• Unterschiede bei den Browsern

Page 23: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Das SicherheitsmodellSicherheit

• Das Modell basiert im Wesentlichen auf Java

• Scripte werden in einer so genannten „Sandbox“ ausgeführt, welche vom Betriebssystem isoliert arbeitet

• Zugriffsrechte von Javascript:+ Dateien, die mit dem Script engen Bezug haben+ Aktive Informationen, die von verwandten Web-Adressen

kommen- Lokales Dateisystem- Speicherbereich anderer Programme- Netzwerkschicht des Betriebssystems

Page 24: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Same-Origin Policy (SOP)Sicherheit

• Hindert Scripts daran Objekte anderer geöffneter Dokumente von anderen Web-Seiten zu steuern

• Überprüfung auf Quellengleichheit

• Gleichheit ist gewährleistet bei gleichen:• Serveradressen

• Ports

• Übertragungsprotokollen

Page 25: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausnahmen bei der SOPSicherheit

• Es gibt jedoch Methoden die von der SOP nicht betroffen sind:

• window.focus()

• window.close()

• window.location

• …

Sie dienen zur harmloseren Fenstersteuerung

Es Gibt jedoch Probleme mit der SOP

Page 26: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Signierte ScripteSicherheit

• Identifikation des Programmierers• Mehr Fähigkeiten:

+ Zugriff aufs Dateisystem+ Volle Kontrolle über den Browser+ Netzwerkschicht des Betriebssystems

• Ausstellung der Zertifikate z.B.: www.thawte.com• Anwendung meist firmenintern Vertrauenswürdig• Signiertes Script schließt bösartige Absicht des Scripts nicht

aus!

Page 27: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Beispiele für bösartiges Coding Sicherheit

• Schleifen / Funktionsaufrufe, die unendlich andauern:

function blah() {

naBlah(); } function naBlah() {

blah(); }

blah();

Page 28: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Beispiele für bösartiges Coding Sicherheit

• Belagern des Arbeitsspeichers:

...

var text = “Hohoo, HoHooooHoHo”;

while (true)

text += text;

...

function recurse()

{

var x = 1;

//Der Stack laeuft voll!

recurse();

}

Page 29: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Weitere AngriffsmöglichkeitenSicherheit

• Endloses Öffnen von Browserfenstern

• Simulation von vertrauenswürdigen Eingabemasken (z.B. Onlinebanking) Phishing

• Datenklau allgemein (Passwörter, Cookies)

• Ändern der Startseite des Browsers

Page 30: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

DOM (Document Object Model)

Page 31: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick DOM: (Document Object Model)

• Beschreibt Manipulation von XML -/HTML – Elementen

• Elemente werden für OOP-Sprachen als Objekte dargestellt

(in unserem Fall JavaScript)

• DOM bietet eine programmiersprachenunabhängige Schnittstelle (API = Application Programming Interface)

• Zweck: Standardisierung beim objektorientierten Umgang mit diesen XML-/HTML-Elementen

Page 32: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick DOM: (Document Object Model)

Beispiel - Abbildung des DOM in einer Baumstruktur:

<HTML><HEAD><TITLE>DOM-Demo</TITLE></HEAD><BODY ID="alles"><H3 ID="Ueberschrift">DOM-Demo</H3><IMG SRC="ball.gif" ID="Ball1"><IMG SRC="ball.gif" ID="Ball2"><IMG SRC="ball.gif" ID="Ball3"><IMG SRC="ball.gif" ID="Ball4"></BODY></HTML>

Page 33: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick DOM: (Document Object Model)

Methoden zur Veränderung des DOM-Baums:

Page 34: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick DOM: (Document Object Model)

• DOM gibt nur Richtlinien für die Organisationsstruktur der Elemente als Objekte

• Über die endgültige Implementierung wird keine Aussage getroffen

Page 35: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

ECMA-Script Components

Page 36: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick ECMA-Script Components

• European Computer Manufacturers Association (ECMA)

• Private Normorganisation (1961)

zur Standardisierung von :- Informations- und Kommunikationssysteme in Europa

• Organisation von der Industrie für die Industrie

Page 37: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick ECMA-Script Components

• Mitglieder

Können alle Firmen werden die in Europa Computer oder Kommunikationssysteme

- Vermarkten- Produzieren- Entwickeln

Page 38: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Ausblick ECMA-Script Components

• Durch folgende Standards bekannt geworden :

1. Standardisierung von ECMAScript- Streit zwischen Microsoft und Netscape (JavaScript)

zum Nachteil von Nutzer u. Programmierer- Ermöglichung dynamischer Internetseiten

Interpretierbar von z.B. Mozilla o. Internet Explorer

2. Standardisierung von C# und Bestandteile der .NET

Technologie von Microsoft

Page 39: Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II –Sprachkonstrukte –Objekte / vordefinierte Objekte –Funktionen –Event.

Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven

Danke für eure Aufmerksamkeit

Und wenn wir nicht eingeschlafen sind dann Lernen wir noch heute…

NICHT BÖSE SEIN *g*