Waga: ŚredniaWłaściciel: DevelopmentCzas naprawy: 30-90 min
Banner zgody blokowany przez CSP
Zaktualizuj Content Security Policy tak, aby skrypt CMP, style albo zasoby iframe mogły się ładować bez niepotrzebnego rozluźniania bezpieczeństwa.
Obejmuje: cmp_blocked_by_csp, consent_banner_csp_error
Dlaczego to ważne
Restrykcyjna CSP to dobra higiena bezpieczeństwa, ale jeśli blokuje sam CMP, strona może po cichu stracić całą warstwę zgody na produkcji.
Jak zweryfikować to ręcznie
- Otwórz konsolę DevTools i poszukaj naruszeń CSP związanych z assetami CMP.
- Sprawdź, czy skrypt bannera, CSS, iframe albo endpointy API są blokowane.
- Porównaj zachowanie CSP lokalnie i na produkcji, jeśli problem występuje tylko na produkcji.
Typowe przyczyny
- Domeny CMP nie są dopuszczone w script-src, frame-src albo connect-src.
- Reguły CSP oparte o nonce lub hash nie obejmują inline bootstrap code CMP.
- Deploy zmienił nagłówki CSP bez ponownej walidacji zależności CMP.
Naprawa w GTM
- Nie polegaj na GTM jako workaroundzie, jeśli same assety CMP są blokowane przez CSP.
- Sprawdź, czy fallbacki CMP wstrzykiwane przez GTM nie łamią tych samych reguł CSP.
- Przetestuj ponownie po aktualizacji nagłówków CSP na produkcji.
Naprawa w WordPressie lub wtyczkach CMP
- Sprawdź pluginy security, nagłówki hostingu i reguły CDN, które wstrzykują CSP.
- Whitelistuj tylko domeny CMP rzeczywiście używane przez konfigurację bannera.
- Przetestuj ponownie po zmianach nagłówków przy wyłączonym cache przeglądarki.
Ogólna poprawka developerska
- Whitelistuj tylko minimalne origins CMP potrzebne dla skryptów, frame'ów i wywołań API.
- Preferuj precyzyjne aktualizacje CSP zamiast rozluźniania całej polityki.
- Wersjonuj reguły CSP i testuj banner ponownie przy każdej zmianie.
Jak potwierdzić, że poprawka działa
- Potwierdź, że błędy CSP dotyczące assetów CMP znikają.
- Potwierdź, że banner renderuje się normalnie i przyjmuje interakcję użytkownika.
- Uruchom nowy skan i sprawdź, że problem bannera znika.
Następny krok
Po wdrożeniu uruchom nowy skan, aby potwierdzić, że zmieniło się rzeczywiste zachowanie runtime, a nie tylko treść bannera.