Повідомлення "Небезпечна спроба JavaScript отримати доступ до кадру з URL-адресою ...", що постійно генерується в Інспекторі веб-веб-переглядачів Chrome


129

Chrome (або будь-який інший веб-браузер) кидає тону цих "Небезпечних спроб JavaScript отримати доступ до кадру з URL-адресою ...", наприклад, при роботі з API Facebook.

Це не заважає реальній роботі, але робить консоль javascript в основному непридатною.

Мені хотілося б знати, чи є спосіб придушити ці помилки саме в консолі? Або якщо є інші рішення, які ви, хлопці, можете придумати, я дуже вдячний.

Дякую.


1
В даний час я використовую спосіб просто встановити вкладку консолі, щоб відображати лише журнали. Я шукаю рішення, яке дозволяє мені відстежувати помилки (тільки не цю).
Ніл Саркар

було б добре надати зразок того, як ви використовуєте API. Є багато причин, чому це могло статися.
Кінлан

Я знаю, що ви маєте на увазі, але я майже впевнений, що це відбувається з будь-якою інтеграцією у facebook. Наприклад, відкрийте консоль webkit js на веб-сайті цього доміно (у виробництві) pizzaholdouts.com
Ніл Саркар

1
Ви просто не намагаєтеся сканувати сценарії між сайтами? Ви запитуєте facebook-адреси api з власного сервера? Шлях дещо інший.
Томаш Дурка

4
нічого не вимагаючи, я просто вклав речі на шаблоні, щоб отримати js sdk працює developers.facebook.com/docs/reference/javascript
Ніл Саркар

Відповіді:


19

Ви можете дозволити запити між доменом під час тестування, запустивши chrome за допомогою параметра --disable-web-securityкомандного рядка. Це, ймовірно, повинно позбутися помилки (і дозволити FB шпигувати за вашим тестуванням;)


хм, що інтригує ... чи є спосіб таким чином віддати параметр убік від командного рядка? Я спробував це з командного рядка: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securityі, здавалося, працює! але він сказав, що не в змозі завантажити мій профіль ... будь-яка ідея, як встановити цей прапор із програми або встановити його за замовчуванням для цього?
Ніл Саркар

4
як оновлення, зараз я використовую виключно хром, і я все ще хотів би знати відповідь на це
Ніл Саркар

2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
пісок

4

Це відбувається, коли завантажується джерело з іншого домену та намагається отримати доступ до файлу document.cookie. Це трапляється з головними джерелами (теги скриптів), а також із документами iframe, які намагаються отримати доступ до document.cookie з певних причин.


4

В чому проблема?

Тон Unsafe JavaScript attempt to access frame with URL...повідомлень про помилки в консолі Chrome JS.

Як зазначає @thechrisproject , ці помилки спричинені багатьма поважними сторонніми api та віджетами, включаючи, але не обмежуючись ними:

  • Facebook JS SDK
  • Вставити Vimeo Iframe
  • Вставити програму Iframe Google Maps

Моє розуміння того, чому : (будь ласка, виправте мене, якщо я помиляюся)

Chrome має більш жорсткі налаштування безпеки та / або показує більше таких помилок, ніж веб-переглядачі, що конкурують. Автори API / віджета / вбудовування намагаються робити речі (міждоменний / фреймовий), які працюватимуть не у всіх браузерах (можливо, для їх власних звітів / аналітики), але фактично не впливають на корисність їхнього віджета, якщо він не працює робота (просто викликає багато дратівливих помилок)

Швидкий відповідь

НІ, ви не можете ( просто ) придушити ці помилки в хромованій консолі.

Рішення?

  • Змирися з цим. Ці помилки насправді не порушують ці сторонні apis та віджети, вони просто роблять консоль набагато складнішою у використанні
  • ви можете встановити консоль для реєстрації лише повідомлень попереджень, журналів або налагодження. Це приховає ВСІ помилки.
  • ви можете використовувати інший браузер
  • Як @Dagg_Nabbit. вказувалося , ви можете дозволити запити між доменними, запустивши chrome за допомогою параметра --disable-web-securityкомандного рядка. Додаткову інформацію тут: Вимкнути політику щодо оригіналу в Chrome . Зауважте, що це налаштування негативно вплине на безпеку вашого браузера. У мене є 2 хромовані ярлики, тому я можу відкрити його з цим прапором або без нього.

3

Оскільки ми не можемо звинувачувати людей з Google за створення такого безпечного браузера, я вважаю, що найкращим рішенням є використання серверних рішень Facebook (наприклад, PHP SDK), це допоможе вам зекономити багато, багато, багато, багато, багато головного болю. Єдиною перевагою, яку я бачу у використанні SD javascript SDK, є спливаюче вхід, який ви можете зробити самостійно за допомогою JavaScript / jQuery.


6
Чому використання PHP SDK (або іншої SDK на стороні сервера) врятує багато головного болю?
Стів Горн

@steve: Сам факт, що Chrome блокує небезпечний запит, дуже багато відповідає про те, наскільки небезпечна обробка на стороні клієнта.
Jhourlad Estrella

2
Забруднення IMHO консолі JS не повинно бути основним фактором при вирішенні питання про те, чи слід розміщувати на логіці сторону або клієнт.
Zach Lysobey

1
Продуктивність, безпека, організація коду / ремонтопридатність, портативність - все, що я б розглядав спочатку. stackoverflow.com/questions/1516852 / ...
Zach Lysobey

2

Ці помилки можуть бути викинуті, якщо під час реєстрації свого додатка у Facebook у вас немає останньої косої риски в полі URL-адреси сайту. Іншими словами, вам потрібно " http://domain.com / " не " http://domain.com "

Ви можете перевірити налаштування URL-адреси сайту за адресою developers.facebook.com/apps Редагувати параметри -> Основні -> URL-адресу сайту.


Не могли б ви мені прояснити своє речення?
itinance
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.