Hallo,
Gibt es eine Möglichkeit, Skripte in Beiträgen nur für Administratoren auszuführen?
Ich habe versucht, es vorher einzurichten, nur um meine Website in PuTTY zum Absturz zu bringen.
Schönen Mittwoch
Olle
Hallo,
Gibt es eine Möglichkeit, Skripte in Beiträgen nur für Administratoren auszuführen?
Ich habe versucht, es vorher einzurichten, nur um meine Website in PuTTY zum Absturz zu bringen.
Schönen Mittwoch
Olle
Es gab vor ein paar Jahren einen Beitrag zu diesem Thema, aber ich hoffe, dass es einen Weg gibt, dies zu tun.
https://meta.discourse.org/t/adding-a-javascript-in-a-post/130019/3
Olle
@Olle11 Es könnte helfen, wenn Sie genauer beschreiben, was Sie erreichen möchten.
Es gibt keine Möglichkeit, dies ad hoc über den Composer zu ermöglichen, aber je nach Anwendungsfall gibt es möglicherweise Umgehungslösungen.
Zum Beispiel führt das Poll-Plugin im Wesentlichen JavaScript in einem Beitrag aus (unter anderem).
Ich hoffe, ein Skript über HTML oder React auszuführen, das Widgets live in den Top-Beiträgen anzeigen kann.
Zum Beispiel ein Widget, das das Live-Wetter in einer Stadt über ein HTML-Widget-Skript anzeigt.
Ist das Poll-Plugin für diesen Fall nutzbar?
Mit freundlichen Grüßen
Olle
Nein, ich habe das nur als Beispiel benutzt.
Sie könnten versuchen, ein iFrame zu verwenden, wenn Sie das JavaScript an anderer Stelle hosten können.
Wenn Sie eine enge Integration wünschen, sollten Sie in Erwägung ziehen, EmberJS zu verwenden.
Dies ist wahrscheinlich die zugänglichste Antwort, wenn Sie Inhalte im Beitrag haben möchten und nicht beispielsweise ein Banner ganz oben.
Ich habe zum Beispiel einen der Artikel von der Titelseite von CodePen (da er in unseren allowed_iframes enthalten ist) ausgewählt und ihn unten eingebettet:
Es scheint, dass das Skript, das ich benötige, aufgrund von X-FRAME-Options: DENY keine IFrames zulässt.
Vielleicht etwas in dieser Richtung, um einem Skript, das in Discourse @merefield @supermathie läuft, zu erlauben?
App.yml:
DISCOURSE_ALLOW_UNSAFE_HTML: true
Nginx-Konfiguration für CSP:
add_header Content-Security-Policy “script-src ‘self’ ‘https://webadress.com’ ‘unsafe-inline’ ‘unsafe-eval’;”;
Ich versuche, die Nginx-Konfiguration hinzuzufügen, aber weder ‘unsafe-inline’ noch https werden in der CSP angezeigt, wenn ich mit curl prüfe. ‘unsafe-eval’ wird über den Admin hinzugefügt.
Bearbeiten: NICHT SICHER
Das Entfernen der Schutzmaßnahmen, die Discourse zum Verhindern dieser Dinge eingerichtet hat, ist eine furchtbare Idee.
Deshalb versuchen alle, dich auf die vorgeschlagenen Wege zu lenken.
Du solltest ein Theme oder ein Theme-Komponente verwenden, um Skripte zu Seiten hinzuzufügen.
Kann ich ein Theme oder eine Theme-Komponente verwenden, um Skripte zu einem Beitrag hinzuzufügen?
Wie kann ich ‘unsafe-inline’ in die CSP aufnehmen, damit das Skript funktioniert?
Das könntest du. Das Skript selbst müsste außerhalb des Beitrags liegen, oder du könntest es vielleicht bestimmte Aspekte von Beiträgen dekorieren lassen.
Ohne Einzelheiten ist es schwer zu wissen, was genau du willst.
Das ist eine schlechte Idee und du solltest es nicht tun.
Bezüglich der CSP und dem, was ich zu app.yml hinzugefügt habe, werde ich unsafe_html: true, das nginx-Volume und die nginx-Konfiguration für CSP von der Website entfernen, da dies nicht sicher ist.
Vielleicht funktioniert eine Theme-Komponente, hmm
Welches Skript möchten Sie genau ausführen?
Wo möchten Sie es ausführen?
Soll es auf einem bestimmten Beitrag oder irgendwo anders auf der Seite sein? Welche Parameter müssen übergeben werden? Ist es bei jedem Beitrag anders? Kategorie?
Iframe könnte funktionieren. Ich muss die CSP und unsafe_html aktualisieren, damit die Website sicher ist, denn CSP und die anderen Lösungen, die ich ausprobiert habe, sind nicht sicher.
Danke für den Input. Iframe funktioniert vielleicht zumindest vorerst, bis ich eine bessere Lösung gefunden habe.
Wenn man sich das Skript ansieht, kann man es nicht global ausführen. Es erfordert das Laden an einem Ort mit Optionen.
Ich habe ein einfaches TC erstellt: GitHub - Arkshine/discourse-tradingview-chart
Um die Optionen einfach zu ändern, können Sie sie von der Website direkt in die [wrap]..[/wrap] kopieren und einfügen.
Standardmäßig erzwingt es das Seitenverhältnis 16/9, es nimmt den gesamten Platz in der Breite ein und die Höhe ist automatisch. Das Skript erlaubt die Angabe einer Breite/Höhe, das funktioniert ebenfalls.
Ich würde empfehlen, die Option show_popup_button: true zu verwenden. Sie bietet Ihnen die Möglichkeit, den Chart im Vollbildmodus in einem neuen Fenster anzuzeigen.

Ich habe zwei Optionen hinzugefügt:
Tut mir leid, aber nur ein
reicht nicht aus, um … zu vermitteln.
Alter. Das ist großartig.