Pull to refresh

Comments 25

Мне кажется, или при внедрении такой политики безопасности, уйдут в историю некоторые блокираторы рекламы? Так же что делать с локальными файлами, подключаемыми расширениями?
Блокираторы рекламы работают прежде всего для той рекламы, которую ставят владельцы сайтов.
Сами владельцы сайтов…
Я не против если на странице что то блокируется, но вот добавлять новое без ведома владельца, или тем более передавать с нее данные, если владелец на прямую запрещает, уже немного нарушает безопасность. Разумеется по моему мнению.
Сомневаюсь, что можно придумать какую-нибудь реализацию политики работы расширений, с помощью которой можно было бы только удалять информацию со страницы сайта, но не добавлять. Что-то вроде такой ситуации: appendChild не доступен, зато removeChild — пожалуйста. Да и вообще, попахивает бредом немножко: вся суть расширений сведётся на нет :)

И потом, у расширений есть страница background, которая вообще не имеет никакого отношения к открытым страницам в браузере. Зато эта фоновая страница имеет доступ к скриптам content_script (и наоборот). Через фоновую страницу можно сделать любой ajax-запрос, а потом переслать информацию в content_script, который имеет доступ к необходимой странице (в частности, к DOM). В этом случае мы де-факто политику безопасности не нарушаем: с самой страницы никаких запросов не идёт.

Контроль расширений идёт именно при установке: выдача прав (указанных в «permissions») конечным пользователем.
Если запретят, я перейду на другой браузер. браузер мой и я могу делать со скаченым контентом всё что хочу.
Мое мнение таково, что если ресурс сообщает браузеру политику поведения с полученной страницей, то эта политика должна быть абсолютной, и распространяться на всё, в том числе и расширения, а как вы считаете?
Я не согласен — если я поставил расширение, которое что-то делает со страницей, я не хочу, чтобы эта страница говорила мне что я могу делать, а что нет. Это мой браузер, я в нём царь и бог и никакие CSP мне не указ.

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


так написано, будто речь про Яндекс.Советник
Сейчас на руках нету примера кода, но вообще расширения хрома могут не только просматривать хедеры, но так же редактировать их любым образом(т.е. CSP хедер можно просто удалить)
Интересная информация, нужно будет попробовать
https://developer.chrome.com/extensions/webRequest — документация по входящим/исходящим хедерам
Пример удаления csp:
chrome.webRequest.onHeadersReceived.addListener(function(details) {	
  for (var i = 0; i < details.responseHeaders.length; i++) {
    if ('content-security-policy' === details.responseHeaders[i].name.toLowerCase()) {
      details.responseHeaders[i].value = '';
    }
  }
  return {
    responseHeaders: details.responseHeaders
  };
}, {  urls: ["*://*/*"], types: ["main_frame", "sub_frame"]}, ["blocking", "responseHeaders"]);
Хм… Спасибо за пример. Пока надобности не было, но в Gist сохраню.
Если память не изменяет, то можно модифицировать хэдеры запроса браузера, но не ответа от сервера.
Тот же AdBlock, вроде как, перехватывает запрос и если срабатывает фильтр, то блокирует его.
Хотя могу ошибаться, ибо глубоко не копал.
Или подменить, например для нашего аппа это необходимо что бы заблочить весь js-код и отменить загрузку js- файлов, кроме тех что мы сами добавим, но у нас не расширение а app. Страница на которой подменяются хэдеры лежит в webview и от аппа изолирована.
яндекс советник обходит csp для показа своих предложений. вставляет div c ссылкой. если политики лояльные, то к диву js добавляется. еще не все его запросы в network отображаются.
Наличие unsafe eval в директивах CSP в принципе сводит на нет всю идею.
>Мое мнение таково, что если ресурс сообщает браузеру политику поведения с полученной страницей, то эта политика должна быть абсолютной, и распространяться на всё, в том числе и расширения, а как вы считаете?

И как тогда должен работать например Evernote WebClipper? Он же правит DOM (для выделения, для показа своих меню) (запускается правда только по команде пользователя)

Или например — разнообразные расширения для скачивания видео? (или это прикроем под видом того что если бы владелец сайта хотел — он бы разрешил? )

Браузер у нас собственно на чьем железе и в интересах кого работает? Пользователя. И если пользователь поставил расширение которое нарушает CSP… ну значит так надо.
Вот предупреждение при установке что расширение может делать и это (так же как в Хроме расширения пишут например что нужен доступ к сайту X или вообще ко всем сайтам) может быть и имеет смысл.
И разумеется ситуации когда расширение ставится без ведома и желания пользователя надо давить. (то что пользователь не заметил замаскированной галочки — это не согласие).
Соглашусь. Было бы не плохо видеть все доступы расширений, как, допустим, при установке приложений на телефоне. + если приложение меняет свои права, не обновлять его по умолчанию, а отключать, и ждать ответа пользователя.
UFO just landed and posted this here
* Пользуюсь случаем, передаю привет ТМ, которые считают, что читатели Хабра — люди второго сорта, которые должны страдать от некликабельных ссылок.

так «оберегаются» пользователи от потенциальных троллей.
UFO just landed and posted this here
UFO just landed and posted this here
Логика ТМ в другом — если карма ниже нуля, то чел нехороший и скорее всего, даст нехорошую ссылку, по которой кликать лучше не надо даже случайно, а если очень надо — то можно выделить и вставить ручками.
Но, как правило, отрицательная карма не у троллей, а просто у тех многих, чье мнение не совпадает с мнением «избранных», причем достаточно одного необдуманного комментария, чтобы карма улетело в неподъемный минус. Следовательно, хорошо бы ТМ пересмотреть еще раз вопросы кармы и возможностей форматирования при ее «задолженности».
На самом деле, все довольно очевидно. Эта самая политика, если не ошибаюсь, нужна только для того, чтобы ограничивать поведение подключаемых скриптов. Допустим, если вы подключите какую-то библиотеку, то при правильной настройке CSP вам можно будет не беспокоиться, что эта библиотека будет творить какие-нибудь гадости, например, засыпать HTTP-запросами сайт человека, которого невзлюбил автор библиотеки.

Расширения для браузеров стоят уровнем выше. Дело в том, что когда вы устанавливаете расширение, вам говорят, что оно может читать и модифицировать контент страницы https://music.yandex.ua/*. Это правило абсолютно, оно позволяет даже обходить CORS. Соглашаясь с этим, вы должны осознавать последствия, которые могут быть, если разработчик расширения внезапно лишится совести.
Например всякие savefrom net, который до сих пор можно установить (но не из каталога расширений, а с сайта разработчика), на сайтах магазинов и всяких яндекс.маркетов наверху страницы вставляет блок с таргетированной рекламой и предложением купить этот же товар на eBay или еще где, по более низкой цене.

Да и в каталоге расширений, если поискать то можно найти много расширений, которые что-то непонятное делают с браузером, особенно это касается расширений с играми (всякие моды для браузерных игр).
Sign up to leave a comment.

Articles