Information Technology Reference
In-Depth Information
5.15.3 Sicherheitsaspekte
Aus sicherheitstechnischer Sicht ist bei Canvas vor allem der Zugriff von Scripts
auf Bilder und deren Inhalte (Pixel) in anderen Domänen problematisch. Die
Spezifikation spricht in diesem Zusammenhang von information leakage und
versucht diesem Informationsleck mit der origin-clean flag entgegenzusteuern.
Die Konzeption von origin-clean ist zweistufig und beruht im Wesentlichen da-
rauf, dass bestimmte Methodenaufrufe und Attribut-Zuweisungen während
des Ablaufs eines Scripts das origin-clean flag von true auf false setzen. Wird
dann getImageData() oder todataURL() aufgerufen, bricht das Skript mit einer
SECURITY_ERR -Exception ab.
Hauptbeteiligte sind dabei drawImage() , fillStyle und strokeStyle , die immer
dann zum Umdefinieren des origin-clean flag beitragen, wenn Bilder und Videos
aus einer anderen Domäne oder canvas -Elemente, die selbst nicht origin-clean
sind, ins Spiel kommen.
Unter der Voraussetzung, dass in der Variablen image eine Referenz zum WHAT-
WG-Logo unter http://www.whatwg.org/images/logo gespeichert ist und das
Script nicht auf dem WHATWG-Server läuft, setzt der folgende drawImage() -
Aufruf das origin-clean flag auf false :
context.drawImage(image,0,0);
Verwenden wir das Logo als Pattern, haben die Zuweisungen fillStyle und
strokeStyle dasselbe Ergebnis - orgin-clean wird false :
var pat = context.createPattern(image);
context.fillStyle = pat;
context.strokeStyle = pat;
Jeder Aufruf von getImageData() oder toDataURL() ab diesem Zeitpunkt führt
unweigerlich zum Script-Abbruch.
Noch restriktiver wird dieser Mechanismus im Firefox-Browser gehandhabt,
der alle über das file:// -Protokoll geladenen Bilder als nicht origin-clean ein-
stuft. Die Konsequenz für unser Kapitel? Alle Grafiken mit einem Server-Icon
rechts unten funktionieren im Firefox nicht, wenn sie lokal über file:// geöffnet
werden, sondern benötigen einen Webserver bei der Darstellung.
Search WWH ::




Custom Search