I’d like to customize the reply/embedded-post. This requires a modification to the _computeCooked method in post-cooked via a plugin; essentially when this.attrs.embeddedPost is true, render something else.
I noticed it’s easier to override or reopen ‘conventional’ Ember classes or the widgets created using ‘createWidget’. What would be the best way to achieve this for the PostCooked class?
Ich bin mir nicht sicher. Ich habe mich noch nicht damit befasst. Ich möchte
_computedCooked nach Kategorie ersetzen.
Ich möchte
cookedDiv.innerHTML = this.attrs.cooked;
durch benutzerdefinierten Inhalt ersetzen, der von der Kategorie abhängt. Das ergibt aber Sinn. Das sollte auch mit decorateCooked möglich sein. Nach etwas Recherche scheint decorateCookedElement die richtige Option zu sein, da ich kein jQuery verwenden möchte. Vielen Dank
Nach einem Tag Herumprobieren bin ich auf diese Antwort gestoßen.
Es scheint, als wäre das eine verschwendete Mühe gewesen, und ich muss einen anderen Weg gehen.
Wenn ich elem.innerHTML auf <script>alert(1)</script> setze, wird es unescaped: <script>alert(1)</script> (ich sehe im Composer, dass es in der Vorschau entfernt wird, wenn ich es unescaped eingebe). Ist das ein Problem, oder wird CSP es stoppen? https://meta.discourse.org/t/mitigate-xss-attacks-with-content-security-policy/104243!csp error|690x191
Beiträge, die Skript-Tags als Teil einer Erklärung enthalten, scheinen ebenfalls diese CSP-Fehler auszulösen. Ich bin jetzt wirklich verwirrt. Muss ich mir überhaupt Sorgen um gespeicherte XSS-Angriffe machen, oder blockiert CSP sie einfach? Im Composer verwende ich CKEditor, was Self-XSS verhindert. Wenn ich mir Sorgen machen muss, scheint es, als müsste ich unsichere Tags entfernen. Im Moment mache ich das so:
value = Loofah.fragment(value).scrub!(:escape).to_s
, aber es scheint überhaupt keine Wirkung zu haben, weil das Setzen von elem.innerHTML auf diesen Wert die HTML-Entitäten einfach wieder unescaped.
EDIT: Ich habe endlich die Quelle meiner Verwirrung gefunden: Die Inspektion des Elements zeigt dir nicht das echte HTML. Es wandelt HTML-Entitäten bereits um.