CSP-Fehler bei Verwendung einer Drittanbieter-Bibliothek in einem Plugin

Nach vielen verschiedenen Versuchen und Ansätzen ist es mir gelungen, erfolgreich eine Drittanbieterbibliothek zu laden, die ich in meinem Plugin verwenden kann.

Die Bibliothek befindet sich unter public/javascripts/some-library.js.

In meinem Controller kann ich das Skript erfolgreich über Folgendes laden:

loadScript("/plugins/my-plugin/javascripts/some-library.js")

In einigen Fällen erstellt die Bibliothek in dieser Datei Blobs und weist sie Variablen zu, die verwendet werden. Z. B.

var A=URL.createObjectURL(new Blob(['\n\tsome code snippet...],{type:"application/javascript"}))

Und wann immer ich versuche, die Bibliothek in meinem Plugin-Code zu verwenden, erhalte ich:

Refused to load the script 'blob:http://localhost:4200/f33a6788-a853-4286-883a-48cb8e2c9cc1' because it violates the following Content Security Policy directive: "script-src http://localhost:4200/assets/ etc etc...

Was wäre der beste Weg, dies zu umgehen?

Vielen Dank für jede Hilfe und Hinweise!

1 „Gefällt mir“

Was wäre, wenn Sie einfach http://localhost:4200 zur CSP hinzufügen?

Ich habe das tatsächlich versucht, und es hat nichts geändert :confused:

Was ist mit blob:http://localhost:4200?

Habe das auch versucht, aber das ist eine ungültige Anweisung für eine CSP :confused:

Für alle, die hier zufällig landen: Die richtige Zeile, die zu csp script src hinzugefügt werden muss, ist blob:.

Moment! Sie müssen CSP nicht in der Entwicklung implementieren, Sie sind keiner Gefahr durch Angreifer ausgesetzt?

Es werden auch einige Entwicklertools potenziell blockiert.

Schalten Sie diese Einstellung einfach AUS:

Einfach.

Ich würde diesen Kopfschmerz aufschieben, bis Sie ein funktionierendes Plugin haben, das auf einem Produktions-Staging-Server getestet wird.

Ich war tatsächlich dabei, es für die Produktion vorzubereiten, daher war dies der letzte Kopfschmerz, der gelöst werden musste. Außerdem mag ich es nicht, diese Dinge aufzuschieben, besonders wenn ich herausfinden muss, ob sie ein potenzieller Dealbreaker sein könnten und ich einen ganz anderen Weg finden muss :man_surfing:

Ja, aber Sie sollten an der CSP-Konfiguration auf dem Produktions-Staging-Server arbeiten, der eine echte Internetadresse hat.

Localhost ist keine Internetadresse! :slight_smile::wink: Es ist nicht einmal https …

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.