Julius: verhindern, dass Frickl script-Elemente in einem Attribut ausliest

Beitrag lesen

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? &lt;script&gt;alert('Hallöle!');&lt;/script&gt;&lt;noscript&gt;...kein JavaScript...&lt;/noscript&gt;" 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