# csv-formula-injection

Скилл для проверки того, как выгрузки в CSV и таблицы реагируют на формулы из пользовательских полей. Нужен при тестировании отчётов и экспортов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3600 установок · ★ 2547
- Автор: yaklang
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/yaklang/hack-skills/tree/HEAD/skills/csv-formula-injection/SKILL.md
- Обновлён: 2026-09-13
- HTML: https://affpapa.org/nevibecode/skills/csv-formula-injection

## Что делает

Скилл описывает формула-инъекции в CSV и таблицах: символы `=`, `+`, `-`, `@` в начале ячейки, DDE-вызовы в Excel и LibreOffice, а также `IMPORTXML`, `IMPORTRANGE`, `IMPORTHTML`, `IMPORTFEED` и `IMPORTDATA` в Google Sheets. Отдельный раздел — обфускация, когда защитный парсер вырезает очевидные шаблоны, а полезная нагрузка разбивается пробелами.

Методика идёт по шагам: найти точки выгрузки CSV, XLSX или TSV, проследить поля под контролем пользователя, подставить безобидную арифметику вроде `=1+1` и открыть файл в том же софте, что и жертва. Дальше — фиксация: считается ли ячейка, появляется ли предупреждение безопасности или запрос DDE. В разделе защиты перечислены способы обезвредить вывод: апостроф перед значением, таб, удаление ведущих триггеров на этапе экспорта.

Автор скилла прямо оговаривает: полезные нагрузки, которые запускают локальные команды или тянут данные по сети, применяйте только при явном разрешении, на лабораторных целях и с зафиксированным согласием. Тесты на стороне клиента без правил программы — не сюда. Это повод проверить, есть ли у вашей выгрузки санитизация вообще.

## Требования
- Работает с: Google Workspace

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yaklang/hack-skills --skill csv-formula-injection -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/csv-formula-injection/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/csv-formula-injection/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yaklang/hack-skills --skill csv-formula-injection -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/csv-formula-injection/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yaklang/hack-skills --skill csv-formula-injection -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/csv-formula-injection/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install yaklang/hack-skills csv-formula-injection
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/csv-formula-injection/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yaklang/hack-skills --skill csv-formula-injection -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/yaklang/hack-skills --path skills/csv-formula-injection
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/csv-formula-injection/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add yaklang/hack-skills --skill csv-formula-injection -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/yaklang/hack-skills/tree/HEAD/skills/csv-formula-injection/SKILL.md

## Когда брать
- найти колонки в отчёте, которые попадают в таблицу без обработки
- проверить, выполнится ли формула из имени пользователя при открытии выгрузки
- зафиксировать сетевой запрос из Google Sheets на подконтрольный адрес
- обойти парсер, который вырезает очевидные формулы
- закрыть экспорт от ведущих `=`, `+`, `-`, `@`

## Примеры запросов агенту
- проверь выгрузку заказов в CSV на формула-инъекции
- какие поля профиля попадают в XLSX-отчёт без санитизации
- составь чек-лист проверки экспорта аудита перед релизом

## Похожие
- [recipe-backup-sheet-as-csv](https://affpapa.org/nevibecode/skills/recipe-backup-sheet-as-csv.md) — скилл · 31100 установок
- [csv-excel-merger](https://affpapa.org/nevibecode/skills/csv-excel-merger.md) — скилл · 1200 установок
- [minimax-xlsx](https://affpapa.org/nevibecode/skills/minimax-xlsx.md) — скилл · 3800 установок
- [audit-xls](https://affpapa.org/nevibecode/skills/audit-xls.md) — скилл · 2200 установок
- [csv-data-visualizer](https://affpapa.org/nevibecode/skills/csv-data-visualizer.md) — скилл · 1300 установок
- [gws-sheets](https://affpapa.org/nevibecode/skills/gws-sheets.md) — скилл · 58900 установок

Из того же набора: [yaklang/hack-skills](https://affpapa.org/nevibecode/by/yaklang/hack-skills.md) — 93 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
