Задать вопрос

UserScript белого списка для Chromium?

Нужен UserScript для Chromium, реализующий белый список (т.е. страницы с других доменов не должны грузиться) для десятка или двух доменов (с учётом ajax и т.п.).
Зачем?
Вкратце: безопасность.
Подробнее:
Есть люди, не очень разбирающиеся в ПО и, в частности, в безопасности. У них есть основной браузер которым они пользуются.
Необходимо им дать доступ к нескольким учёткам и сайтам, которые имеют для меня (и для них) ценность. Без сообщения пароля.
Как мне показалось, проще всего — поставить отдельный браузер, в котором авторизироваться на нужных ресурсах. И запретить этому браузеру посещать все остальные сайты, выдавая предупреждение. Таким образом сразу отпадёт: фишинг, воровство кук и др. Ограничение расширением нужно, что бы они не спутали браузер, а спутав не продолжили им пользоваться.

Почему не расширение?
Я нашёл только одно расширение: «Whitelist for Chrome».
Но! Там внизу висит предупреждение:
"When installing Whitelist for Chrome, your browser will warn you that this extension can access your data on all sites, and your browsing history."
Фактически, остаётся только надеяться на добросовестность автора приложения. И на то, что они будут так же добросовестны, при обновлении в дальнейшем.


На первый взгляд, ничего особо сложного — можно было бы написать такой UserScript и самому, но останавливают следующие вещи:
  • Я не знаю — как остановить/предотвратить загрузку страницы/сторонних_ссылок
  • Вот тут сказано, что: «Все юзерскрипты запускаются после того, как загрузились все основные элементы страницы, но ещё не загрузились картинки. Можно сказать, что юзерскрипты грузятся по событию DOMContentLoaded». Непонятно: как это обойти? Ведь наверняка есть какой-нибудь стандартный механизм/API.
  • Возможно, такой UserScript — уже есть.
  • Я ни разу не писал расширений.


Если подскажите иной вариант решения — буду благодарен, но вариант с прокси мне изначально не нравится.
  • Вопрос задан
  • 3610 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
spmbt
@spmbt
> «When installing Whitelist for Chrome, your browser will warn you that this extension can access your data on all sites, and your browsing history.»
---Это верно и для юзерскриптов — такова природа скриптового языка: если есть доступ к окружению (window страницы сайта), то вы потенциально получаете и меняете все данные на ней.

Расширение для блокировки, наоборот, удобнее, потому что скрипт в нём (background.js) запускается до загрузки страницы и может отменить загрузку вообще. Юзерскрипт запускается в конце страницы (без вариантов, ну или ещё позже). Поэтому для предотвращения загрузки нужно не разрешать открывать страницы, т.е. анализировать ссылки переходов и форм. В этой системе — очень легко иметь дыры — скрипт не сможет ловить переходы-редиректы. Значит, безопасность не обеспечит. Расширение (или приложение/апп) — наоборот, можно построить с обеспечением безопасности, кроме случаев, когда вредоносные страницы попадутся после разрешения их открывания.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
amidart
@amidart
Не совсем понятно, почему не подходит расширение. Такое предупреждение есть у всех расширений, у которых в манифесте прописано:
«permissions»: [«http://*/*»] и т.п.
Чтобы написать такое расширение, нужно иметь такие права.
Если нет доверия автору, то можно самому написать расширение для Chrome, используя webrequests: developer.chrome.com/extensions/webRequest.html
Ответ написан
DjPhoeniX
@DjPhoeniX
Hardcore iOS & ESP developer & DJ
По-моему, самый простой и железный вариант:
1. Прописать IP необходимых сайтов в hosts
2. Через брэндмауэр винды полностью заблокировать исходящие соединения на 53 tcp/udp порт (DNS).
3. Закрыть локального админа на какой-нибудь сложный пароль.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы