ok iframe User Macro mit sandbox attribut | CMS - Webdesign - Website

iframe User Macro mit sandbox attribut

Hier wird der Code gezeigt für ein iframe User Macro, welches auch das in HTML5 neue Attribut „sandbox“ berücksichtigt. „Sandbox“ ist ein Sicherheitsfeature in HTML5. Es wird nach dem Prinzip einer WhiteList alles mit Gefahrenpotential deaktivert auf der im iFrame angezeigten Seite. Etwa die Ausführung von Formularen oder Skripten. Der Programmierer kann durch Werte des Attributs diese Funktionen wieder aktivieren.

Attributwert Beschreibung
(no value) Alle Restriktionen werden angewandt
allow-forms Formular-Ausführung wird wieder aktiviert
allow-pointer-lock APIs werden wieder aktiviert
allow-popups Popups werden wieder aktiviert
allow-same-origin Der Inhalt im iFrame wir wieder so behandelt als käme er von der selben Quelle
allow-scripts  Die Ausführung von Scripts wird wieder erlaubt
allow-top-navigation Erlaubt dem iFrame-Inhalt eine Top-Level-Navigation

Beispiele für das Attribut sandbox:

<iframe src="demo_iframe_sandbox_origin.htm" sandbox="allow-same-origin allow-scripts"></iframe>
oder
<iframe src="demo_iframe_sandbox_form.htm" sandbox="allow-forms"></iframe>

Der Code für das User Macro in Confluence:

## Externe Seite in einem IFRAME darstellen
## @param 0:title=Source|type=string|required=true|desc=URL source of the frame body
## @param 1:title=Width|type=string|required=false|desc=Width in pixels of the frame (z.B. 300px)
## @param 2:title=Height|type=string|required=false|desc=Height in pixels of the frame (z.B. 300px)
## @param 3:title=Name|type=string|required=false|desc=Name of the frame (z.B. myFrame)
## @param 4:title=Style|type=string|required=false|desc=CSS Style definiton of the frame (z.B. border:5px dotted red)
## @param 5:title=Border|type=string|required=false|desc=Border thickness in pixels of the frame (0 = no border)
## @param Sandbox:title=Sanbox value|type=string|required=false|default=allow-same-origin allow-scripts allow-popups allow-forms|desc=Sandbox attribute value
#set ($src=$param0)
#set ($width=$!param1)
#set ($height=$!param2)
#set ($name=$!param3)
#set ($style=$!param4)
#set ($border= $!param5)
#set($sandbox = $!paramSandbox)
#if($width == "" || !$width)
#set ($width="100%")
#end
#if($height == "" || !$height)
#set ($height ="300px")
#end
#if($name == "" || !$name )
#set($name ="iframe")
#end
#if($style=="" || !$style)
#set($style= "")
#end
#if($border=="" || !$border)
#set($border= "0")
#end
<iframe name="$name" width="$width" height="$height" border="$border" marginheight="0" marginwidth="0" frameborder="$border" src="$src" style="$style" sandbox="$sandbox" class="conf-macro output-block" data-hasbody="true" data-macro-name="iframe" >
<a href="$src">Sie haben einen Browser, der kein IFRAME interpretiert. Klicken Sie hier, um den Inhalt zu sehen</a>
</iframe>