7

Czy ktoś wie, jak uzyskać CSP, nawet z symbolem wieloznacznym default-src, aby działał w taki sposób, aby nowoczesny skrypt Analytics wysyłał dane strony na stronę (a nie tylko dane strony głównej) na konto właściciela witryny, aby wyświetlały się reklamy AdSense?Czy zasady bezpieczeństwa treści mogą być zgodne z Google Analytics i AdSense?

Próbowałem wielu odmian CSP na mojej stronie internetowej, w tym w pliku <H5BP.com> .htaccess, ale wszystkie zablokowały Google Analytics tworzenie danych na stronę (z wyjątkiem strony głównej) i Google AdSense od akceptowania reklam na dowolnej stronie.

Maszyny Google nie widziały skryptu Analytics, mimo że ludzie Google zawsze widzieli go w kodzie źródłowym mojej witryny. Nawet ustawienie domyślnego CSP-src na gwiazdce gwiazdki nie powiodło się.

Pytając na forum Google i na forum innym niż Google, nic nie działało, poza tym, że ludzie mówili, że problem dotyczył mojego CSP, i otrzymałem jeden e-mail z informacją, że powinienem całkowicie skomentować CSP. To ostatnie zadziałało. Komentowanie nie powinno być lepsze niż wildcard default-src, ale komentowanie to jedyny sposób, w jaki otrzymuję reklamy i dane wewnątrz witryny.

Brak wątku przepełnienia stosu dotyczy CSP i AdSense. Kiedy zaproponowałem, aby H5BP informował użytkowników o tym w ich modelu <. Htaccess >, ich respondent powiedział, że działa dla niego i odesłał mnie do ciebie.

Czy ktoś, kto widzi dane dotyczące danej strony na swoim koncie Google Analytics i widzi reklamy AdSense w trakcie działania .htaccess CSP?

+0

Naprawdę nie jest jasne, jaki jest konkretny problem. – charlietfl

+0

Próbujesz napisać CSP do.htaccess nawet jeśli pozwolisz bez ograniczeń i musisz wiedzieć jak z doświadczenia osoby, która faktycznie otrzymuje na stronę dane Google Analytics z witryny i czy wyświetla reklamy AdSense podczas używania .htaccess CSP. – Nick

+0

To nie mówi nam, jakiego kodu używasz lub co blokujesz. Zasugeruj czytanie: http://stackoverflow.com/help/how-to-ask – charlietfl

Odpowiedz

1

Korzystanie poniżej kod działa dla mnie:

default-src 'self' googleads.g.doubleclick.net; 
script-src 'self' 'unsafe-inline' data: pagead2.googlesyndication.com storage.googleapis.com googleads.g.doubleclick.net ajax.googleapis.com; 
img-src 'self' data: storage.googleapis.com pagead2.googlesyndication.com; 
style-src 'self' 'unsafe-inline'; 
font-src 'self' fonts.googleapis.com; frame-ancestors 'self'; object-src 'self' 
+0

Bardzo mi to pomogło, ponieważ ostatnio widziałem błędy podczas ładowania reklam AdSense. Jedyne, czego nie uwzględniłem, to że opcja ** data: ** na którejkolwiek z pozycji -src jest niezabezpieczona, a adsense działa bez niej, używając wszystkich wymienionych powyżej domen: +1: – MitchellK

0

Albo zalogować wszystkie błąd z raport-uri źródeł dodać do CSP.

JSON prześle pod ten adres URL (https://example.com/csp/log.php).

Content-Security-Policy: default-src 'self'; 
report-uri: https://example.com/csp/log.php; 
0

Nie. Od dzisiaj (8 września 16). Wyłączyliśmy CSP, ponieważ źródło ramki Google było domeną -> frame-src: ... google.co.uk google.co.fr ...

0

Adsense

Dla Google AdSense, na przykład ten kod CSP "działa":

Content-Security-Policy: frame-ancestors 'self'; 

Zapobiega to oprawianiu strony bez ograniczania możliwości strony. Stąd jego ochrona XSS nie istnieje.

Ale skrypty AdSense mogą ładować coś, co ładuje, co z kolei ładuje itp. I biorąc pod uwagę tysiące (w chwili pisania: 3103) zewnętrznych sieci reklamowych, z których mogą korzystać, po prostu nie ma rozsądnego ani praktycznego sposobu abyśmy kiedykolwiek wiedzieli, czego mogą potrzebować wszystkie reklamy. Tak więc, aby uniknąć sytuacji, w której zamierzasz załadować obrazy, flash, javascript itp., Jeśli chcesz, aby Adsense właśnie się nie stało.

Jedno albo drugie:

  • albo Adsense
  • albo restrykcyjne CSP

Ale nie oba.

Analytics

to inna sprawa, już uwzględnione w innych odpowiedzi. [Nie użytkownik]

polityka CSP

Potencjalni autorzy dopuszczalnych polityk CSP należy przypomnieć, że na przykład https: i * nie obejmują uprawnień do źródeł unsafe-inline ani data:. Widziałem już kilka miejsc w sieci, w których autorzy zakładają, że tak robią.

Podczas pisania zasad lepiej jest najpierw umieścić tylko raport. Nagłówek nosi nazwę "Content-Security-Policy-Report-Only" zamiast "Content-Security-Policy" i nie zatrzyma niczego, po prostu wykonaj część raportowania w jsonie do określonego miejsca docelowego. Zobacz tutaj: https://developers.google.com/web/fundamentals/security/csp/#report-only

+0

To jest rozsądne i jedna odpowiedź od ostatniego Wrzesień najwyraźniej z Google (@phani) jest zgodny z tym. Wolałbym, żeby Google powiedział nam bezpośrednio, ponieważ zaoszczędziłoby to mnie, jako projektantowi strony, sporo czasu. Prawdopodobnie ich metoda wyłączania CSP, w której nawet całkowicie permisywna konfiguracja jest niedopuszczalna, prawdopodobnie dotyczy zarówno Analytics na stronie, jak i AdSense. Nie widzę nikogo, kto rości sobie pretensje do uzyskania danych Google Analytics na stronę, a także ma CSP na swojej stronie internetowej. Tak więc nie planuję umieszczać CSP z powrotem w żadnej witrynie, która ma albo usługę Google. Dziękuję Ci. – Nick

+0

Głównym problemem, jaki widzę, jest to, że ludzie próbujący napisać zezwalający CSP muszą pamiętać, że * nie pozwala na niebezpieczną linię ani dane:. Ale jeśli masz zamiar pozwolić na wszystko, możesz równie dobrze nie napisać limitu dla tego typu zasobu. Powyższy przykład pokazuje, w jaki sposób można zapobiec "obramowaniu" za pomocą CSP, nie nakładając ograniczeń na to, co ładuje się. – swa66

0

Przy ścisłym CSP 3 i noncesach, myślę, że jest to możliwe, ale nie mam możliwości testowania, ponieważ nie używamy AdSense.

1.) Umieść wszystkie javascript w (GA, AdSense, itp.) W plikach .js. Brak wbudowanego JS.

2.) Za pomocą proponowanego "ścisłe" CSP: https://csp.withgoogle.com/docs/strict-csp.html

3.) obejmują pliki .js jak zwykle zawierać dowolny plik, ale dodać nonce:

<script src="/mygooganalytics.js" nonce="[your nonce here]"></script> 

Efekt powinno być, że wszystko, co pochodzi od mygooganalytics.js, będzie dozwolone. Niestandardowe są zwykle tworzone przez kod po stronie serwera (php, ruby, itp.), Ale jeśli jest to poza twoją aplikacją/w zwykłym starym pliku html, możesz wygenerować numer przy użyciu twojego serwera. Jeśli używasz Apache: Generate a nonce with Apache 2.4 (for a Content Security Policy header)

+0

Interesujące. Waham się eksperymentować w tej sprawie, dopóki inni tego nie zrobią i nie zgłosili. Link withgoogle jest własnością Google (to dobrze), ostatnie FAQ oznaczają, że ekspozycja na Win (a więc większość użytkowników) jest niechroniona, a Google nadal nie mówi oficjalnie, że CSP i AdSense/Analytics będą współistnieć (prawdopodobnie tak się nie stanie, chyba że eksperyment działa). Jeśli ktoś korzysta z innego dostawcy reklam, zwłaszcza z reklamami dynamicznymi, może sprawdzić, czy CSP współpracuje z tym dostawcą. – Nick

+0

Tak, zdecydowanie spróbuję najpierw na małą skalę. Używamy czegoś, co może być podobne na poziomie technicznym do AdSense, Intercom.io. W poprzednich wersjach CSP musieliśmy dodać do białej listy około 2 tuzinów adresów URL, w tym SaaS, które były używane wewnętrznie (na przykład wistia). W CSP 3 po prostu mamy plik intercom.js z noncem.Nie będę się łączyć z ich witryną, ponieważ to się ostatecznie zmieni, jestem pewien, ale szukam "csp interkomu", mają fajną stronę "Używanie domofonu z polityką bezpieczeństwa treści" opisującą białą listę adresów URL 1 i 2 i jedną stronę CSP 3/nonces. – KayakinKoder