# drupal-security

Скилл для ИИ-кодинга, который подсказывает безопасные приёмы Drupal: параметризованные запросы, экранирование вывода, проверка прав. Включается сам, когда вы пишете формы, контроллеры или работаете с вводом пользователя.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 823 установки · ★ 49
- Автор: madsnorgaard
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/madsnorgaard/drupal-agent-resources/tree/HEAD/.claude/skills/drupal-security/SKILL.md
- Обновлён: 2026-09-17
- HTML: https://affpapa.org/nevibecode/skills/drupal-security

## Что делает

Скилл включается автоматически, когда агент пишет или правит формы, контроллеры, плагины, строит запросы к базе или обрабатывает пользовательский ввод. Он не ждёт ревью после коммита, а подсказывает прямо в момент написания кода.

Внутри — разбор типовых дыр: конкатенация ввода в SQL, вывод через `#markup`, `accessCheck(FALSE)` в entity-запросах, отсутствие `_permission` в маршрутах, `{{ var|raw }}` в Twig, захардкоженные пароли и ключи. Для каждого случая дан безопасный вариант: query builder с `condition()`, плейсхолдеры вида `:name`, `#plain_text`, `Xss::filterAdmin()`, CSRF-токены для AJAX. Отдельно про загрузку файлов: проверять и расширение, и MIME-тип, а не доверять имени.

Есть чек-лист перед коммитом и таблица «красных флагов» с риском и заменой. Скилл советует задавать четыре вопроса к любому коду: откуда пришли данные, куда уходят, кому положен доступ и что будет при вредоносном вводе. Это не замена аудиту безопасности, а подсказка на ходу.

Ставится одной командой через `npx skills add`.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill drupal-security -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill drupal-security -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill drupal-security -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install madsnorgaard/drupal-agent-resources drupal-security
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill drupal-security -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/madsnorgaard/drupal-agent-resources --path .claude/skills/drupal-security
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill drupal-security -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/madsnorgaard/drupal-agent-resources/tree/HEAD/.claude/skills/drupal-security/SKILL.md

## Когда брать
- Помогает ловить XSS, SQL-инъекции и обход контроля доступа ещё на этапе написания кода, а не после ревью.
- Даёт безопасные замены для типовых опасных паттернов Drupal: query builder вместо конкатенации, `#plain_text` вместо `#markup`, `accessCheck(TRUE)` вместо `FALSE`.
- Содержит чек-лист перед коммитом и таблицу красных флагов, по которой удобно проверять чужой код.

## Примеры запросов агенту
- Поставьте скилл и попросите агента написать форму или контроллер — он подтянет безопасные приёмы сам.
- При ревью попросите: «проверь этот код на SQL-инъекции и XSS по правилам Drupal».
- Спросите: «как безопасно вывести пользовательский HTML в Drupal?» — скилл предложит `Xss::filterAdmin()` и варианты рендера.

## Похожие
- [security-review](https://affpapa.org/nevibecode/skills/getsentry-security-review.md) — скилл · 21300 установок
- [security-auditor](https://affpapa.org/nevibecode/skills/ovachiever-security-auditor.md) — скилл · 780 установок
- [wordpress-security-validation](https://affpapa.org/nevibecode/skills/wordpress-security-validation.md) — скилл · 581 установка
- [owasp-security](https://affpapa.org/nevibecode/skills/owasp-security.md) — скилл · 3000 установок
- [secure-code-review](https://affpapa.org/nevibecode/skills/zebbern-secure-code-review.md) — скилл · ★ 4676
- [laravel-security](https://affpapa.org/nevibecode/skills/laravel-security.md) — скилл · 5400 установок

Из того же набора: [madsnorgaard/drupal-agent-resources](https://affpapa.org/nevibecode/by/madsnorgaard/drupal-agent-resources.md) — 3 карточки

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