2016-10-31 43 views
25

służę Ogloszenia na stronie SSL pomyślnie, z Cors nagłówków ustawiony prawidłowo (i szeroko otwarte) przez rack-cors jak:Google Adsense, CORS i Rails w Safari wysypisk tysiące błędów konsoli

Rails.configuration.middleware.insert_before 0, Rack::Cors do 
    allow do 
    origins '*' 
    resource '*', headers: :any, methods: :any 
    end 
end 

mogę potwierdzają, że nagłówki są tam z curl rozmowy:

$ curl -I https://viewing.nyc -H "Origin: https://foobar.com" 
... 
Access-Control-Allow-Origin: https://foobar.com 
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS 
Access-Control-Max-Age: 1728000 
... 

Jeśli wizyta w Chrome lub Firefox, nie ma cross-site scripting błędy w konsoli, ale na Safari, są tysiące.

Blocked a frame with origin "https://googleads.g.doubleclick.net" from accessing a frame with origin "https://viewing.nyc". Protocols, domains, and ports must match. 

Live example

Mam przelewa się przez strony rack-cors problemy z rozwiązaniem nie działa do tej pory. Dlaczego tak się dzieje tylko w przypadku Safari tylko w Safari i jak mogę to naprawić?

+0

Jako dodatkowy bonus, przyznam również 500 nagrodę za podobne pytanie sprzed 2 lat, http://stackoverflow.com/questions/26858447/ssl-custom-tlds-crossdomain-xml-and- adsense-can-one-play-nicely i nagradzaj go łowcą nagród tego pytania, jeśli zostanie rozwiązany. – coneybeare

+0

Po prostu, czy używasz Sierra z najnowszą wersją Safari? – Marcs

+0

tak, sierra z najnowszą wersją, choć problem utrzymuje się od lat: http://stackoverflow.com/questions/26858447/ssl-custom-tlds-crossdomain-xml-and-adsense-can-they-play-nicely – coneybeare

Odpowiedz

-1

Myślę, że dodanie nagłówków treści-polityki bezpieczeństwa powinno ci pomóc.

add_header Content-Security-Policy: script-src 'self' https://googleads.g.doubleclick.net 

Czytaj więcej: -

https://developers.google.com/web/fundamentals/security/csp/

+0

Zaimplementowałem CSP z odpowiednimi nagłówkami, niestety brak poprawki dla tego problemu. http://cloud.coneybeare.me/i1YN – coneybeare

-1

ten temat (ostatnia odpowiedź) stwierdza, że ​​powinno działać pomimo błędów. Safari jest wrażliwy na takie różnice. https://groups.google.com/forum/#!topic/ima-sdk/AxE9vZith00

pominięcia reklamy nie są obsługiwane na urządzeniach iPhone i to dlatego występują problemy z odtwarzaniem reklam. Sugerowałbym dodanie do tagu dodatkowych mimeTypes w celu obsługi przypadków użycia na wszystkich urządzeniach.

Co do błędów, które pierwotnie były doświadcza „zablokował ramkę z pochodzenia” http://imasdk.googleapis.com „z dostępu do ramkę z pochodzenia” http://xxx.xxx.xxx.xxx „protokoły, domeny, a porty muszą być zgodne.”, Widzieliśmy ten błąd przed i jak podałeś nie powinien wpływać na odtwarzanie reklamy. Objaśnienie tego błędu to ograniczenie zasad dotyczących tego samego pochodzenia, które uniemożliwia dostęp do zasobów z innej domeny z domeny o numerze . Blokuje on udostępnianie zasobów między-źródłowych . Możesz zaktualizować swoje nagłówki CORS , zgodnie z naszą dokumentacją, aby umożliwić współdzielenie między różnymi wersjami: .

+1

Cóż, tak, to jest pytanie. Zaktualizowałem nagłówki CORS, jak pokazano powyżej, ale nadal widzę problem. Ta odpowiedź tylko zmienia moje pytanie. Reklamy działają, ale prośba o ignorowanie tych 1000 błędów nie jest rozwiązaniem dopuszczalnym. – coneybeare