11
43
Fork
You've already forked base
6

Privacy der Besucher #75

Closed
opened 2021年11月02日 11:38:40 +01:00 by tk100 · 10 comments
Contributor
Copy link

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" ~~~

wird mit dem Umzug der Instanz demnächst umgesetzt

wird mit dem Umzug der Instanz demnächst umgesetzt

nginx CSP gesetzt

nginx CSP gesetzt

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.
Author
Contributor
Copy link

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.

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

Habe sie vorübergehend deaktiviert, bitte noch mal prüfen.
Author
Contributor
Copy link

Danke - es funktioniert nun auf dem iPad wieder.

Danke - es funktioniert nun auf dem iPad wieder.

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; ```
Owner
Copy link

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

@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
Sign in to join this conversation.
No Branch/Tag specified
main
dev
vue3
feature/ticket_117
weblate
master
experimental
v.0.9.1
v.0.9
v.0.8.2
v.0.8.1
v.0.8.0
v.0.7.0
0.7
v0.6.0
v0.30
v0.2.0
v0.12
v0.11
v0.1
Labels
Clear labels
Kind/Breaking
Breaking change that won't be backward compatible
Kind/Bug
Something is not working
Kind/Documentation
Documentation changes
Kind/Enhancement
Improve existing functionality
Kind/Feature
New functionality
Kind/Security
This is security issue
Kind/Testing
Issue or pull request related to testing
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Reviewed
Confirmed
Issue has been confirmed
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
This issue won't be fixed
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
Kind: Enhancement
improvement of a feature
Kind: Feature
Something totally new
Kind: Interesting for Wiki
to be saved in the wiki
Kind: invalid
Something is wrong
Kind: Question
More information is needed
Kind: Security
Relevant for security
Kind:bug
Something is not working
Priority: High
Priority: Low
Priority: Medium
Status: Contribution welcome
Contributions are very welcome, get started here
Status: Duplicate
This issue or pull request already exists
Status: External problem
There is an external problem
Status: Help wanted
Need some help
Status: In progress
Someone's working on it
Status: In review
we're testing a possible solution
Status: next release
All tested and ready for the next release
Status: Starters
This is a good task to start helping lerntools
Status: Tests neededd
Need some tests for locating the problem
Status: won't fix
This won't be fixed
vue3
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
5 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lerntools/base#75
Reference in a new issue
lerntools/base
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?