Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

XSS/Privacy protection URL Whitelist for external images by CSP

Aperta
#738 9 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
android, go, javascript, react

Direzione di ricerca

Inizia tracciando come viene interpolato %CONFIG% quando viene servita la WebUI e come viene costruito l’header CSP attuale. Definisci la configurazione o l’opzione di amministrazione, il comportamento di corrispondenza degli URL e qualsiasi parità richiesta con l’Android-client. Il lavoro è completato quando la policy delle immagini configurata viene applicata senza indebolire le altre protezioni e la gestione degli script runtime rimane compatibile con CSP.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

a:feature in:server request-for-comments

Is your feature request related to a problem? Please describe.

It would be a strong protection against things like this:

https://github.com/gotify/server/security/advisories/GHSA-xv6x-456v-24xh

https://github.com/gotify/server/security/advisories/GHSA-3244-8mff-w398

it would also be useful in cases like you want to see images in a message but not really 100% trust there can never be bad content (an example is if you receive webhook, the sender might not have properly sanitized the markdown)

Describe the solution you'd like

A config or admin option to whitelist which URLs can be rendered. On the WebUI we serve a CSP header to prevent images not in the whitelist from being updated. Something like (untested):

Content-Security-Policy: default-src 'self'; img-src 'self' data: https://my.images.net/; media-src 'none'; script-src: https://gotify/static/js/; style-src: https://gotify/static/css/; style-src-attr 'self' 'unsafe-inline';

On the Android client we will probably need to implement the same algorithm: https://www.w3.org/TR/CSP/#match-url-to-source-expression

Describe alternatives you've considered

An option to globally disable all remote images (will need to rely on the markdown renderer's correctness).

Additional context

The logic of interpolating %CONFIG% when serving the UI at runtime may need to be refactored. The general idea is to precompute the script content, hash it and write it in the CSP header.

Lingua principale
Go
Stelle
16k
Fork
887
Merge medio
1g 6h
PR unite (30g)
5

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di gotify/server

Tutte le issue di gotify/server

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.