Moin!
Aufgrund von Marcs Beitrag und dem dort verlinkten Vortrag habe ich mich mit dem neuen srcdoc
-Attribut beschäftigt und festgestellt, dass die betreffende, kurze Erklärung im Wiki falsch und die Referenz zumindest missverständlich waren. Das habe ich – hoffentlich auch korrekt – verbessert.
Allerdings liest Frickl dummerweise script
-Elemente aus, auch wenn sie sich – wie im Beispiel – in einem Attributwert befinden:
<p>Im folgenden iframe wird kein JavaScript ausgeführt:</p>
<iframe srcdoc="JavaScript? <script>alert('Hallöle!');</script><noscript>...kein JavaScript...</noscript>" sandbox></iframe>
Gibt es dafür eine Lösung (script
-Elemente nicht parsen, falls sie sich innerhalb eines Attribut-Werts befinden?). Ich habe vorerst < und sicherheitshalber auch > escaped, aber eine allgemeine Lösung wäre natürlich – sofern realisierbar – vorzuziehen:
<iframe srcdoc="JavaScript? <script>alert('Hallöle!');</script><noscript>...kein JavaScript...</noscript>" sandbox></iframe>
Nachtrag / BTW:
Ich konnte keine Primär-Quelle zu der Aussage finden, dass das srcdoc
-Attribut zusammen mit dem Einsatz des sandbox
-Attribut gedacht und dass alle Browser, die srcdoc
implementieren, sandbox
ebenfalls beherrschen müssen (dass dem augenscheinlich so ist, kann man auf caniuse sehen...). Worauf ich hinaus will: Es könnte eines Tages ein Browserhersteller auf die Idee kommen, zuerst srcdoc
und dann erst sandbox
zu implementieren, falls das nicht in der Spec stünde – auf die Isolation von unsicheren Inhalten wäre damit kein Verlass mehr!
Gruß
Julius