Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II...
-
Upload
loreley-zehner -
Category
Documents
-
view
105 -
download
2
Transcript of Tittel, Manuel Baumann, Sven Webtechnologie27.01.2014 Java Script Sprachkonstrukte II...
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Java Script
• Sprachkonstrukte II– Sprachkonstrukte – Objekte / vordefinierte Objekte– Funktionen– Event Handler
• Ausblick– Sicherheit– DOM– ECMA – Script Components
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Sprachkonstrukte
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
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Objekte / vordefinierte Objekte
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)
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 !
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Sprachkonstrukte II Objekte / vordefinierte Objekte
• Objektmodel im JavaScript (vereinfacht)
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)
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)
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();
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Funktionen
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
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
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); ...
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Event Handler
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
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Sprachkonstrukte II Event Handler
• Beispiel: <img src=“moby.gif“ onclick=“Abfrage()“>
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Sprachkonstrukte II Event Handler
• Beispiel:
Erklärung : An verschiedenen Stellen im HTML-Code werden Eventhandler gesetzt
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
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>
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Sicherheit
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
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
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
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
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!
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();
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();
}
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
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
DOM (Document Object Model)
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
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>
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
Ausblick DOM: (Document Object Model)
Methoden zur Veränderung des DOM-Baums:
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
Webtechnologie 04/11/23Tittel, ManuelBaumann, Sven
ECMA-Script Components
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
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
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
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*