Компьютеры · Инструкция
Как безопасно использовать pull_request_target
`pull_request_target` удобен для labels/comments, но опасен, если привилегированный job начинает checkout и запуск недов
Короткий ответ
Используйте `pull_request_target` только для задач, которым нужен контекст базовой ветки или привилегии, и не исполняйте head-код fork PR с secrets/write-токеном. Тесты PR вынесите в `pull_request`.
Что делать
- 1: Проверьте, нужен ли `pull_request_target`; для тестов кода обычно используйте `pull_request`.
- 2: Задайте минимальные `permissions` для `GITHUB_TOKEN`.
- 3: Не checkout head SHA внешнего PR в job с secrets или write-права.
- 4: Тесты кода PR вынесите в отдельный непривилегированный workflow.
- 5: Не давайте low-trust job write cache без отдельного обоснования.
Важно
Недоверенный PR-код с secrets/write-доступом может скомпрометировать репозиторий или кэш.
Что учитывать
Недоверенный PR-код с secrets/write-доступом может скомпрометировать репозиторий или кэш.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Securely using pull_request_target). Пример и формулировки — редакция N1RO на 2026-09-18.