Hallo
Ich möchte Discourse testen, ohne unbedingt den konfigurierten öffentlichen Domainnamen zu verwenden. Wenn Discourse beispielsweise unter https://uat.mysite.com installiert und konfiguriert wurde, kann ich natürlich meinen Browser öffnen und zu https://uat.mysite.com navigieren. Das bedeutet, dass mein Browser mein internes Netzwerk verlassen und ins öffentliche Internet gehen würde, um den Domainnamen auf seine öffentliche IP-Adresse aufzulösen und die Seiten über seine öffentliche IP-Adresse zu laden.
Ich habe gerade versucht, über die interne IP-Adresse des Servers (z. B. 192.168.1.2, siehe unten) auf Discourse zuzugreifen, und zu Recht wird es wegen der Content Security Policy nicht geladen. Die Fehler, die ich erhalte, haben folgendes Format:
Refused to load the script 'http://192.168.1.2:12000/assets/locales/en-a9c88e45eb548bd7c807aecfd37d218891e213b5c1fd254857e0f16c72d73996.js' because it violates the following Content Security Policy directive: "script-src http://uat.mysite.com/logs/ http://uat.mysite.com/sidekiq/ http://uat.mysite.com/mini-profiler-resources/ http://uat.mysite.com/assets/ http://uat.mysite.com/brotli_asset/ http://uat.mysite.com/extra-locales/ http://uat.mysite.com/highlight_js/ http://uat.mysite.com/javascripts/ http://uat.mysite.com/plugins/ http://uat.mysite.com/theme-javascripts/ http://uat.mysite.com/svg-sprite/ 'sha256-rwfDVOTzygQmkOwFNAeX564B66beHoel4+gRLgQUgHg='". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
--------------------------------------------
| |
------------
uat.mysite.com löst auf zu 98.1.2.3 --> | Public IP | Server mit Discourse. |
| 96.1.2.3. |
------------ |
| |
| ---------------- |
| | Private IP | |
| | 192.168.1.2 | |
--------------------------------------------
^
|
192.168.1.2 ------------------------------------------------------------
Der Grund, warum ich über die interne IP-Adresse des Servers auf Discourse zugreifen möchte, ist, dass ich testen möchte. Wenn ich zum Beispiel Tests durchführen möchte, möchte ich nicht unbedingt das Netzwerk nutzen, das das Internet bedient. Oder wenn ich eine Testinstanz auf meinem Laptop oder einem Build-Server installieren möchte, ohne unbedingt DNS einrichten zu müssen.
Ich schätze, ich kann dies immer überschreiben, indem ich einen benutzerdefinierten Eintrag in /etc/hosts setze, aber gibt es eine Möglichkeit, CSP zu deaktivieren oder es so einzustellen, dass andere Quellen zum Testen zugelassen werden?