Lieber Christian,
Und wie soll ein unbedarfter User entscheiden können, ob das Beispiel sicher ist?
das ist natürlich nicht seine Aufgabe, sondern die der Redaktieure, die das Beispiel entsperren.
Und v.a.: Wenn man gerade bei den Beispielen nicht den vollen Beispielcode anzeigen will sondern nur die relevanten Teile (und da bin ich stark dafür), dann sieht der User eben *nicht*, was da alles drin ist...
Dazu bräuchte es diese berühmten Faltmechanismen mit "alles zeigen/Teile verbergen"-Links, ähnlich dem "hide contents"-Link in der Übersicht einer Artikelseite bei WikiPedia. Aber im Grunde hast Du Recht, der unbedarfte User sieht eben nicht mehr den ganzen Code.
aber dann kannst Du ja noch immer mit Deinem redaktionellen Freigeben kommen.
Du tust das Problem ab, als ob das zweitrangig wäre. Das ist es nicht.
Deine Sicherheitsbedenken sind vollkommen angebracht und wesentlich. Sie kommen aber erst dann zum Tragen, wenn man sich dafür entschieden hat, wie man das mit den Beispielseiten technisch tatsächlich lösen möchte.
[extrem komplizierte Filterideen]
Hehe, "extrem kompliziert"? Etwa so wie das Nachschlagen von Versionen in der Artikelhistorie? *g* Im Grunde sind doch nur JavaScript-Funktionalitäten tatsächlich sicherheitsrelevant (von IE-spezifischen Expressions in CSS einmal abgesehen). Daher kann ja mit diesen "extrem komplizierten Filterideen" jedweder potenziell gefährliche Inhalt solange ausgefiltert werden, bis ein Redakteur das Beispiel in der gegenwärtigen Fassung als unbedenklich freigibt.
Ich finde, dass man Deine Sicherheitsüberlegungen unbedingt mit einer einfachstmöglichen "user experience" kreuzen muss, wenn ein befriedigendes Arbeiten für technisch weniger versierte Autoren möglich sein soll. Und das Schönste: Es hat mit diesen Überlegungen keine Eile. Autoren können ungehindert schreiben während wir uns hier die Köpfe über zukünftige Probleme zerbrechen!
Aus Erfahrung kann ich Dir da sagen, dass das nicht praktikabel ist. Entweder ist der Filter zu restriktiv (wir wollen wie gesagt *alles* an HTML/CSS/JS als mögliche Beispiele anbieten, wir schreiben ja ne Doku. Das ist kein Standard-Use-Case.) oder er hat Lücken.
Lass' mich mal überlegen, ob das wirklich so unpraktikabel ist:
1.) Code-Beispiel finden
2.) Version prüfen
3.) Version auf Freigabe prüfen
4.) bei fehlender Freigabe Filter anwenden:
- jedes <script>-Element entfernen
- jedes Eventhandler-Attribut entfernen
- jede Expression aus dem Code entfernen
Habe ich etwas vergessen?
Wie erwähnt: Ich glaube nicht, dass es eine technische Lösung für das Problem gibt.
alert("glauben" == "nicht wissen"); // true
Ich behaupte, dass es eine technische Lösung gemäß meinem Vorschlag gibt.
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)