Безопасность внедрённого JS — что сниппет реально может сделать
Внедрённый JavaScript мощен — он выполняется с полными правами страницы, которую ты посещаешь. Это делает его полезным и одновременно достойным понимания. Эта статья объясняет, что сниппет реально может сделать и кому доверять.
Что может внедрённый JS
Код правила выполняется в контексте страницы — у него тот же доступ, что у собственных скриптов страницы:
- Читает и меняет весь DOM — включая поля форм и их значения.
- Читает доступные JS cookie и
localStorageстраницы. - Отправляет
fetch-запросы от имени страницы (в пределах её CSP).
Это ровно те возможности, которые делают правила полезными. Но это значит, что выполнение чужого сниппета выполняет чужой код с этими правами.
Чего не может внедрённый JS
- Не читает страницы других доменов — политика same-origin страницы применяется к нему.
- Не достаёт файлы на твоём диске и другие вкладки.
- Не читает cookie, помеченные
HttpOnly— они невидимы для JavaScript.
Принцип доверия — читай перед вставкой
При импорте разделяемого бандла JustZix показывает предупреждение, если он содержит JavaScript — и не зря. CSS-правило в худшем случае испортит внешний вид. JS-правило может прочитать то, что ты печатаешь в форме. Перед выполнением чужого сниппета:
- Прочитай его. Короткий читаемый сниппет говорит сам за себя.
- Остерегайся обфусцированного кода — случайные имена переменных, длинные base64-строки,
eval. Честному сниппету незачем прятаться. - Остерегайся
fetch, отправляющего данные на чужой адрес — это потенциальная эксфильтрация.
JustZix сам не шпионит
У расширения нет телеметрии — оно не сообщает, какие страницы ты посещаешь и что внедряешь. Бэкенд видит только хеш ключа синхронизации и зашифрованные бандлы правил. Риск не в инструменте — он в коде, который ты сам выбираешь выполнить. Поэтому пиши правила сам, или выполняй только те, что понимаешь.
Смотри также
- Как работает синхронизация — что видит бэкенд, а что нет
- Внедрение и CSP — пределы внедрённого кода
- JustZix для QA-команды — делиться с умом
Установи JustZix — и выполняй только код, которому доверяешь.
Оцени эту статью
Оценок пока нет — оцени первым.