Если есть расширение для Firefox (к примеру), получающее данные с какого-либо сайта, может ли JS на произвольном сайте получить ту же информацию, выполнив тот же запрос?
Вопрос задан расплывчато и допускает несколько толкований.
Толкование первое. Если расширение Файерфокса получает данные
с какого-либо сайта, то можно ли изменить
JS-код расширения таким образом, чтобы получить аналогичную информацию на произвольном другом сайте?
Может быть, можно… а может быть, и не выйдет.
Зависит это от формы и цели запроса.
Простой пример: есть расширение «Хабраголик», которое на Хабрахабре получает значения кармы и рейтинга через хабрахабровский API. И оно не позволит получить значение рейтинга на сайте FreeLance.Ru, выполнив
тот же запрос — потому что на «Фрилансе» нету ведь
того же хабрахабровского API.
Другой пример: вообразим расширение, которое получает значок сайта, используя общепринятый протокол, то есть сперва скачивает заглавную страницу, затем ищет в ней элемент
<link rel="icon" …> (или даже
<link rel="shortcut icon" …>) и выковыривает из него URL значка. Такое расширение позволит получить значок и с другого сайта, выполнив
тот же запрос — потому что протокол
тот же самый.
Толкование второе. Если расширение Файерфокса получает данные
с какого-либо сайта, то можно ли снабдить некоторый произвольный другой сайт таким джаваскриптом, который будет работать на сайте и получать для этого сайта ту же информацию, которую получает
JS-код расширения, работающий в Файерфоксе?
Ответ, скорее всего, отрицательный. Во браузерах действует
требование общего происхождения по отношению к джаваскрипту и тем ресурсам, к которым джаваскрипт обращается. Соответственно, если на сайте, с которого данные принимаются, не приняты
специальные меры, то джаваскрипт с другого сайта не сможет получать данные.