Опасно ли запускать свои собственные пользовательские скрипты на всех адресах? - PullRequest
0 голосов
/ 07 сентября 2018

Tampermonkey (для большинства браузеров) и Greasemonkey (для Firefox) поддерживают директивы @match и @include.

Когда я начал читать о разнице между ними, оказалось, что @matchнесколько строже: пользовательский скрипт не будет запускаться по некоторым адресам, которые могут рассматриваться как потенциально опасные или просто нежелательные.

Отсюда возник вопрос:

a) Есть ли какой-либо потенциальный риск запуска моих собственных пользовательских скриптов на всех адресах (т. е. @match *://*/* и то же самое для @include)?

Или, б) ограничения запуска пользовательских скриптов на некоторых адресах актуальны только для сторонних пользовательских скриптов, то есть пользовательских скриптов, которые былискачанный с некоторых сайтов и, следовательно, потенциально содержащий вредоносный код?

1 Ответ

0 голосов
/ 07 сентября 2018

Существует ли потенциальный риск запуска собственного сценария пользователя по всем адресам?Да, маленький;см. ниже.

Основные причины (в настоящее время) не запускать ваш собственный usercript на всех страницах:

  1. Производительность браузера: Загрузка и запуск скрипта требует времени, циклов ЦП, а иногда и доступа к диску.Обычно задержка едва заметна, но зачем вообще ее иметь, если она не выполняет полезную услугу?
  2. Неожиданные побочные эффекты: Вы думаете, что ваш код $(".someclass").remove(); влияет только на X страниц- пока это не так.Царапание головы и дополнительное проклятие ...
    Другие распространенные побочные эффекты включают столкновения сценариев, которые приводят к сбоям страниц или пользовательских сценариев .
  3. iframes: Выполнение сценариевв iframes по умолчанию, и на некоторых страницах есть множество iframes и / или iframes, вложенных в несколько уровней глубиной.
    Это множитель для производительности и побочных эффектов.
  4. Риск: утечка чувствительнаcode: Используйте $.get( "frbyPlay.me/pics?user=admin&pw=1234"... в коде без песочницы, и неправильные сайты могут видеть его (или AJAX).
    При использовании JS страницы пути атаки бесконечны.К счастью, это, как правило, очень низкий риск и его легко можно смягчить, но невежество или самоуспокоенность могут привести к серьезным затруднениям.
  5. Риск: подверженность «плохому состоянию»: В последнее время aранее очень любимое и доверенное расширение стало злым .
    Что произойдет, если какая-то библиотека, которую использует ваш скрипт, например, jQuery, будет взломана или "коммерчески оптимизирована"?Чем меньше страниц запускается сценарием, тем меньше шансов на махинации и тем меньше разброс наносимого урона.
    (Конечно, если сам Tampermonkey когда-либо вырастил козлиную бородку, то мы все равно забиты.)

Обратите внимание, что по причинам 1 и 2 также следует использовать как можно больше @match вместо @include.@match анализирует веб-адреса быстрее и также с гораздо меньшей вероятностью срабатывает на нежелательных / неожиданных сайтах.
(И, в Tampermonkey, @match добавляет эти маленькие значки сайтов на панели инструментов Tampermonkey.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...