Content Security Policy (CSP) to nagłówek wysyłany przez serwer WWW do przeglądarki.
Służy on do deklarowania, które zasoby dynamiczne mogą ładować się na Twojej stronie.
CSP umożliwia stworzenie listy dyrektyw określających, które zasoby zewnętrzne (bądź skrypty) mogą być używane w aplikacji. To ograniczenie ma zapobiegać atakom XSS, które dołączają do źródeł strony skrypty doczytywane z innych lokalizacji sieciowych. Wszystkie zasoby, które nie będą pasować do polityki, będą przez przeglądarkę odrzucone, a sama przeglądarka zgłosi błąd naruszenia reguł polityki.
Jeśli wykryjesz błędy CSP w swojej witrynie, Twój zespół programistów lub dostawca usług
hostingowych będzie musiał dostosować ustawienia CSP.
Dostosowanie ustawień CSP
Krok 1 - Sprawdź, czy występują błędy CSP
Jeśli widzisz problemy z wyświetlaniem ankiety na stronie WWW, czasami może to być spowodowane błędem CSP. Możesz sprawdzić konsolę swojej przeglądarki w celu znalezienia błędów. Jeśli nie wiesz jak to zrobić skorzystaj z tego poradnika.
W przypadku występienia problemu z Polityką bezpieczeństwa treści, zobaczysz błąd podobny do poniższego:
Krok 2 - Skonsultuj się ze swoim programistą lub dostawcą usług hostingowych, aby dostosować ustawienia CSP
Ponieważ wszystkie serwery są różne, zespół wsparcia Webankieta nie będzie w stanie pomóc w rozwiązaniu tych problemów poza stwierdzeniem, czy występuje błąd CSP. Podczas wprowadzania zmian w zasadach bezpieczeństwa treści najlepszą osobą, z którą należy się skontaktować, jest programista aplikacji internetowej lub osoba zarządzająca Twoją witryną.
Krok 3 - Wybierz ustawienia CSP
Poniżej przedstawiamy zestaw reguł, które należy dodać, aby umożliwić prawidłowe działanie ankiety na stronie WWW.
Wielokropek (...
) w poniższych przykładach jest symbolem zastępczym wszelkich istniejących reguł, które już posiadasz:
script-src ... https://*.startquestion.com 'unsafe-inline' 'unsafe-eval'
img-src ... https://*.webankieta.pl https://*.startquestion.com data:
style-src ... 'unsafe-inline'
connect-src ... https://*.startquestion.com;
Jeżeli jednak potrzebujesz bardziej szczegółowych wpisów:
script-src ... https://library.startquestion.com https://app.startquestion.com https://files.startquestion.com
'unsafe-inline' 'unsafe-eval'
img-src ... https://files.webankieta.pl https://files.startquestion.com data:
style-src ... 'unsafe-inline'
connect-src ... https://app.startquestion.com;`
Uwaga!
W przypadku pominięcia wartości unsafe-eval
, w dyrektywie script-src
ankiety, które posiadają regułę Kod JavaScript nie zostaną wyświetlone.
Informacje dodatkowe
Jeżeli wartość unsafe-inline
nie może zostać dodana do dyrektywy script-src
zachęcamy, aby zastosować zabezpieczenie w postaci wartości nonce
wg tego poradnika.
Dodawanie wartości 'nonce'
Aby dodać wartość 'nonce' do kodu widgeta należy zmodyfikować nasz snippet. Wartość 'nonce' należy dodać w dwa miejsca, które zostały pokazane na poniższym screenie:
Opis: W powyższym przykładzie wygenerowaliśmy jednorazowo wartość '6JDFIvPbrWANKpSJ8vlv6b==' dla atrybutu 'nonce'.
Aby rozwiązanie z 'nonce' zapewniało bezpieczeństwo, należy pamiętać o tym, że wartość 'nonce':
- musi być różna za każdym razem, gdy odświeżamy stronę,
- musi być odpowiednio długa (co najmniej 128 bitów),
- powinna być generowana za pomocą bezpiecznego kryptograficznie generatora liczb pseudolosowych.