n1ro°
RU

Компьютеры · Инструкция

Как безопасно использовать pull_request_target

`pull_request_target` удобен для labels/comments, но опасен, если привилегированный job начинает checkout и запуск недов

Редакция N1RO · Проверено

Короткий ответ

Используйте `pull_request_target` только для задач, которым нужен контекст базовой ветки или привилегии, и не исполняйте head-код fork PR с secrets/write-токеном. Тесты PR вынесите в `pull_request`.

Что делать

  1. 1: Проверьте, нужен ли `pull_request_target`; для тестов кода обычно используйте `pull_request`.
  2. 2: Задайте минимальные `permissions` для `GITHUB_TOKEN`.
  3. 3: Не checkout head SHA внешнего PR в job с secrets или write-права.
  4. 4: Тесты кода PR вынесите в отдельный непривилегированный workflow.
  5. 5: Не давайте low-trust job write cache без отдельного обоснования.

Важно

Недоверенный PR-код с secrets/write-доступом может скомпрометировать репозиторий или кэш.

Что учитывать

Недоверенный PR-код с secrets/write-доступом может скомпрометировать репозиторий или кэш.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Securely using pull_request_target). Пример и формулировки — редакция N1RO на 2026-09-18.