Musik-Knopf repariert: Inhaltsrichtlinie blockierte die Spotify-Player
Gemeldet am 27.08.2026 ("unten rechts laeuft was nicht richtig mit der
Musik"). Ursache lag nicht in der Seite, sondern in der am 26.08.2026
eingefuehrten Inhaltsrichtlinie: "frame-src 'none'" verbietet dem
Dokument jede Einbettung -- und die beiden Player (Hasidog, Van-Van)
sind genau das. Der Knopf reagierte, das Feld ging auf, die Player
blieben leer. Kein Absturz, keine Fehlermeldung auf der Seite; die
Begruendung stand nur in der Browser-Konsole.
- frame-src erlaubt jetzt genau eine Quelle: https://open.spotify.com.
Kein Sternchen, kein 'unsafe-*'. Was im Spotify-Rahmen passiert,
regelt Spotifys eigene Richtlinie.
- Neuer Test pruef-musik.mjs (17 Pruefungen). Er startet bewusst den
ECHTEN server/index.js statt eines Datei-Servers -- ein einfacher
Datei-Server erzeugt die Kopfzeile gar nicht und haette den Fehler
nie gesehen. Geprueft wird im echten Browser, ob die Rahmen wirklich
von open.spotify.com laden (statt einer Fehlerseite), dazu Tippziel,
Position, Schliessen per Knopf und Escape, Handy-Layout.
Beim Nachsehen aufgefallen und NOCH OFFEN: PayPal-Kasse und
Google-Anmeldung auf abonnieren.html laden ihre Skripte und Rahmen
ebenfalls von fremden Adressen. Beide sind derzeit nicht scharf
(googleClientId/paypalClientId sind null), wuerden aber mit derselben
Richtlinie an derselben Stelle still ausfallen, sobald Dogi seine
Zugangsdaten eintraegt. Wird gesondert mit ihm besprochen.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -186,7 +186,31 @@ export function inhaltsrichtlinie(wurzel) {
|
||||
"form-action 'self'",
|
||||
/* Ersetzt X-Frame-Options; wirkt gegen Klickfallen. */
|
||||
"frame-ancestors 'self'",
|
||||
"frame-src 'none'",
|
||||
/* ⚠️ HIER STAND "frame-src 'none'" — DAS HAT DEN MUSIK-KNOPF
|
||||
STILLGELEGT (gemeldet 27.08.2026).
|
||||
|
||||
Der Knopf unten rechts klappt ein Feld mit zwei Spotify-Playern
|
||||
auf (Hasidog und Van-Van, siehe main.js). Genau die sind
|
||||
<iframe>s, und 'none' verbietet dem Dokument JEDE Einbettung.
|
||||
Sichtbar war das denkbar undankbar: Der Knopf reagierte, das
|
||||
Feld ging auf, die Überschriften standen da — nur wo die Player
|
||||
sein sollten, blieb es leer. Nichts stürzte ab, nichts meldete
|
||||
einen Fehler; die Begründung stand ausschließlich in der
|
||||
Browser-Konsole.
|
||||
|
||||
Erlaubt ist deshalb genau eine Quelle: open.spotify.com. Das ist
|
||||
kein Aufweichen der Richtlinie -- 'none' war schlicht zu eng für
|
||||
eine Seite, die diese Player seit jeher einbettet. Was INNERHALB
|
||||
des Spotify-Rahmens passiert, regelt Spotifys eigene Richtlinie,
|
||||
nicht unsere; ein eingeschleustes Skript gewinnt hier also nichts
|
||||
außer der Möglichkeit, ausgerechnet Spotify einzubetten.
|
||||
|
||||
Kommt später ein weiterer Anbieter dazu (PayPal-Kasse und
|
||||
Google-Anmeldung auf abonnieren.html arbeiten ebenfalls mit
|
||||
Rahmen), muss er hier NAMENTLICH ergänzt werden -- sonst
|
||||
wiederholt sich exakt dieser stille Ausfall an der Kasse.
|
||||
pruef-musik.mjs prüft das im echten Browser mit. */
|
||||
"frame-src https://open.spotify.com",
|
||||
"worker-src 'self'",
|
||||
/* Hebt gemischte Inhalte auf HTTPS, statt sie zu blockieren. */
|
||||
"upgrade-insecure-requests",
|
||||
|
||||
Reference in New Issue
Block a user