• Вопрос относительно расширений для браузеров?

    Mithgol
    @Mithgol
    Если есть расширение для Firefox (к примеру), получающее данные с какого-либо сайта, может ли JS на произвольном сайте получить ту же информацию, выполнив тот же запрос?
    Вопрос задан расплывчато и допускает несколько толкований.



    Толкование первое. Если расширение Файерфокса получает данные с какого-либо сайта, то можно ли изменить JS-код расширения таким образом, чтобы получить аналогичную информацию на произвольном другом сайте?

    Может быть, можно… а может быть, и не выйдет.

    Зависит это от формы и цели запроса.

    Простой пример: есть расширение «Хабраголик», которое на Хабрахабре получает значения кармы и рейтинга через хабрахабровский API. И оно не позволит получить значение рейтинга на сайте FreeLance.Ru, выполнив тот же запрос потому что на «Фрилансе» нету ведь того же хабрахабровского API.

    Другой пример: вообразим расширение, которое получает значок сайта, используя общепринятый протокол, то есть сперва скачивает заглавную страницу, затем ищет в ней элемент <link rel="icon" …> (или даже <link rel="shortcut icon" …>) и выковыривает из него URL значка. Такое расширение позволит получить значок и с другого сайта, выполнив тот же запрос потому что протокол тот же самый.



    Толкование второе. Если расширение Файерфокса получает данные с какого-либо сайта, то можно ли снабдить некоторый произвольный другой сайт таким джаваскриптом, который будет работать на сайте и получать для этого сайта ту же информацию, которую получает JS-код расширения, работающий в Файерфоксе?

    Ответ, скорее всего, отрицательный. Во браузерах действует требование общего происхождения по отношению к джаваскрипту и тем ресурсам, к которым джаваскрипт обращается. Соответственно, если на сайте, с которого данные принимаются, не приняты специальные меры, то джаваскрипт с другого сайта не сможет получать данные.
    Ответ написан
    Комментировать