Privacy der Besucher #75

Closed
opened 7 months ago by tk100 · 10 comments
tk100 commented 7 months ago

Die Instanz lerntools.org nutzt nicht alle üblichen Methoden um Sicherheit und Privatsphäre der Benutzer zu schützen. So fehlen aktuell eine "Content Security Policy" sowie eine restriktive "Referrer Policy". Details siehe Screenshot von webkoll.

Vorschlag: Übernahme der entsprechenden Einträge in der Server Konfugration, bei Apache wären dies z.B. in einer htaccess in etwa (OHNE GEWÄHR)

Header add Content-Security-Policy "default-src 'self'; script-src 'self' https://lerntools.org; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org;"
Header add Referrer-Policy "no-referrer"
Die Instanz lerntools.org nutzt nicht alle üblichen Methoden um Sicherheit und Privatsphäre der Benutzer zu schützen. So fehlen aktuell eine "Content Security Policy" sowie eine restriktive "Referrer Policy". Details siehe Screenshot von webkoll. Vorschlag: Übernahme der entsprechenden Einträge in der Server Konfugration, bei Apache wären dies z.B. in einer htaccess in etwa (**OHNE GEWÄHR**) ~~~ Header add Content-Security-Policy "default-src 'self'; script-src 'self' https://lerntools.org; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org;" Header add Referrer-Policy "no-referrer" ~~~
gerhardbeck added the
Priority: Medium
Kind: Security
labels 7 months ago
gwenn was assigned by gerhardbeck 6 months ago
sthaydn was assigned by gerhardbeck 6 months ago
gerhardbeck added the
Status: In progress
label 6 months ago
Owner

wird mit dem Umzug der Instanz demnächst umgesetzt

wird mit dem Umzug der Instanz demnächst umgesetzt
Collaborator

nginx CSP gesetzt

nginx CSP gesetzt
Owner

Webkoll nun glücklich, danke an alle. Wird geschlossen.

Webkoll nun glücklich, danke an alle. Wird geschlossen.

So ganz passt die Content-Security-Policy anscheinend noch nicht. Beim Versuch eine Ideensammlung auf der Instanz lerntools.org zu öffnen (z.B. https://lerntools.org/app/#/ideas/team2021) gibt es auf iOS und im Safari auf macOS ein Problem damit. Firefox und Brave auf macOS scheinen sich nicht daran zu stören.

Im Safari sowohl auf iOS als auch auf macOS wird folgender Fehler in der Konsole ausgegeben.

[Error] Refused to connect to wss://lerntools.org/ideas/ws/team2021 because it appears in neither the connect-src directive nor the default-src directive of the Content Security Policy.
[Error] TypeError: undefined is not an object (evaluating 'e.src.replace') — 0.index.js:1:51778
	Xt (index.js:7:11638)
	qt (index.js:7:11551)
	Ht (index.js:7:11201)
	(anonyme Funktion) (index.js:7:35419)
	r (index.js:7:64844)
	(anonyme Funktion) (index.js:7:26714)
	(anonyme Funktion) (index.js:7:27597)
	fn (index.js:7:25705)
	(anonyme Funktion) (index.js:7:12308)
	Kt (index.js:7:11748)
	promiseReactionJob
[Error] Unhandled Promise Rejection: SecurityError: The operation is insecure.
	(anonyme Funktion) (7.index.js:15:36430)
	startWS (7.index.js:15:36430)
	startWS
	(anonyme Funktion) (7.index.js:15:36156)
	promiseReactionJob

Ich kenne mich in Sachen CSP nur sehr begrenzt aus. Anhand der Fehlermeldung würde ich mal behaupten, dass der Eintrag wss://lerntools.org für connect-src fehlt. Zumindest im Vorschlag von tk100 ist dieser nicht vorhanden.

So ganz passt die Content-Security-Policy anscheinend noch nicht. Beim Versuch eine Ideensammlung auf der Instanz lerntools.org zu öffnen (z.B. https://lerntools.org/app/#/ideas/team2021) gibt es auf iOS und im Safari auf macOS ein Problem damit. Firefox und Brave auf macOS scheinen sich nicht daran zu stören. Im Safari sowohl auf iOS als auch auf macOS wird folgender Fehler in der Konsole ausgegeben. ``` [Error] Refused to connect to wss://lerntools.org/ideas/ws/team2021 because it appears in neither the connect-src directive nor the default-src directive of the Content Security Policy. [Error] TypeError: undefined is not an object (evaluating 'e.src.replace') — 0.index.js:1:51778 Xt (index.js:7:11638) qt (index.js:7:11551) Ht (index.js:7:11201) (anonyme Funktion) (index.js:7:35419) r (index.js:7:64844) (anonyme Funktion) (index.js:7:26714) (anonyme Funktion) (index.js:7:27597) fn (index.js:7:25705) (anonyme Funktion) (index.js:7:12308) Kt (index.js:7:11748) promiseReactionJob [Error] Unhandled Promise Rejection: SecurityError: The operation is insecure. (anonyme Funktion) (7.index.js:15:36430) startWS (7.index.js:15:36430) startWS (anonyme Funktion) (7.index.js:15:36156) promiseReactionJob ``` Ich kenne mich in Sachen CSP nur sehr begrenzt aus. Anhand der Fehlermeldung würde ich mal behaupten, dass der Eintrag `wss://lerntools.org` für `connect-src` fehlt. Zumindest im Vorschlag von tk100 ist dieser nicht vorhanden.
Poster

Ich kann bestätigen, dass der Zugriff auf dem iPad auf eine Ideensammlung aktuell nicht möglich ist (weder als Ersteller noch per Ticket).
Bin nämlich selber im Unterricht gerade daran gescheitert... Das ist kritisch, da die Ideensammlung so auf iOS Geräten nicht nutzbar ist.

Ich kann bestätigen, dass der Zugriff auf dem iPad auf eine Ideensammlung aktuell nicht möglich ist (weder als Ersteller noch per Ticket). Bin nämlich selber im Unterricht gerade daran gescheitert... Das ist kritisch, da die Ideensammlung so auf iOS Geräten nicht nutzbar ist.
Collaborator

Habe sie vorübergehend deaktiviert, bitte noch mal prüfen.

Habe sie vorübergehend deaktiviert, bitte noch mal prüfen.
markus.weingaertner reopened this issue 5 months ago
Poster

Danke - es funktioniert nun auf dem iPad wieder.

Danke - es funktioniert nun auf dem iPad wieder.
gerhardbeck added
Status: Help wanted
and removed
Status: In progress
labels 5 months ago

Nachdem ich mir das Projekt eh anschauen wollte, habe ich mir eine lokale Testumgebung erstellt. Dort konnte ich die gleiche Problematik nachstellen. Durch Hinzufügen von connect-src 'self' wss://lerntools.org; in den CSP-Header meckert Safari nicht und die Ideensammlung funktioniert damit bei mir auf macOS und iOS.

Wie schon geschrieben, kenne ich mich mit CSPs nur wenig aus und kann nicht für die Richtigkeit garantieren, aber vielleicht hilft es trotzdem. Die von mir getestete CSP sieht mit ersetzter Domain so aus:

default-src 'self'; script-src 'self' 'unsafe-eval'; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org; connect-src 'self' wss://lerntools.org;
Nachdem ich mir das Projekt eh anschauen wollte, habe ich mir eine lokale Testumgebung erstellt. Dort konnte ich die gleiche Problematik nachstellen. Durch Hinzufügen von `connect-src 'self' wss://lerntools.org;` in den CSP-Header meckert Safari nicht und die Ideensammlung funktioniert damit bei mir auf macOS und iOS. Wie schon geschrieben, kenne ich mich mit CSPs nur wenig aus und kann **nicht für die Richtigkeit garantieren**, aber vielleicht hilft es trotzdem. Die von mir getestete CSP sieht mit ersetzter Domain so aus: ``` default-src 'self'; script-src 'self' 'unsafe-eval'; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org; connect-src 'self' wss://lerntools.org; ```
pw commented 5 months ago
Owner

Herzlichen Dank für den vielversprechenden Vorschlag.Wir werden versuchen es schnell umzusetzen

Herzlichen Dank für den vielversprechenden Vorschlag.Wir werden versuchen es schnell umzusetzen
markus.weingaertner was assigned by gerhardbeck 5 months ago
gerhardbeck added the
Status: In review
label 4 months ago
gerhardbeck added this to the Release 1.0 milestone 4 months ago
gerhardbeck removed the
Status: Help wanted
Status: In review
labels 4 months ago
gerhardbeck closed this issue 4 months ago
Owner

@nix

Nachdem ich mir das Projekt eh anschauen wollte, habe ich mir eine lokale Testumgebung erstellt. Dort konnte ich die gleiche Problematik nachstellen. Durch Hinzufügen von connect-src 'self' wss://lerntools.org; in den CSP-Header meckert Safari nicht und die Ideensammlung funktioniert damit bei mir auf macOS und iOS.

Wie schon geschrieben, kenne ich mich mit CSPs nur wenig aus und kann nicht für die Richtigkeit garantieren, aber vielleicht hilft es trotzdem. Die von mir getestete CSP sieht mit ersetzter Domain so aus:

default-src 'self'; script-src 'self' 'unsafe-eval'; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org; connect-src 'self' wss://lerntools.org;

@nix danke, wurde inzwischen eingebaut

@nix >Nachdem ich mir das Projekt eh anschauen wollte, habe ich mir eine lokale Testumgebung erstellt. Dort konnte ich die gleiche Problematik nachstellen. Durch Hinzufügen von `connect-src 'self' wss://lerntools.org;` in den CSP-Header meckert Safari nicht und die Ideensammlung funktioniert damit bei mir auf macOS und iOS. > >Wie schon geschrieben, kenne ich mich mit CSPs nur wenig aus und kann **nicht für die Richtigkeit garantieren**, aber vielleicht hilft es trotzdem. Die von mir getestete CSP sieht mit ersetzter Domain so aus: >``` >default-src 'self'; script-src 'self' 'unsafe-eval'; img-src data: https://lerntools.org; style-src 'unsafe-inline' https://lerntools.org; connect-src 'self' wss://lerntools.org; >``` @nix danke, wurde inzwischen eingebaut
gerhardbeck removed this from the Release 1.0 milestone 6 days ago
Sign in to join this conversation.
No Milestone
No project
5 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.