# Категории

> Категории специализаций, которые может использовать проект Lagune, от OWASP до усиления защиты под конкретные языки, такие как JavaScript, Python, Go и Rust, и как их менять.

Канонический URL: https://lagune.ai/ru-RU/docs/categories
Язык: ru-RU
Оригинал: https://lagune.ai/docs/categories
Последнее обновление: 2026-11-03

**Lagune** группирует свои встроенные [**специализации**](https://lagune.ai/ru-RU/docs/catalog) по категориям, всего их **13**. Категории, которые использует проект, определяют, какие встроенные специализации попадут в его [**каталог**](https://lagune.ai/ru-RU/docs/catalog), и делятся на две группы: что делает система и на чем она написана.

Пока не зафиксировано ни одной категории, проект использует только `owasp`. [`/lagune-charter`](https://lagune.ai/ru-RU/docs/commands/charter) фиксирует каждую категорию, которую подтверждает анализ проекта, а вы можете менять их сами в любой момент.

## Что делает система

| Категория      | Ключ      | Что она защищает                                                                                                                                  |
| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| OWASP          | `owasp`   | Риски безопасности приложений, которые отслеживает OWASP: инъекции, нарушение контроля доступа, сбои аутентификации и криптографии                |
| Инфраструктура | `infra`   | Конфигурация контейнеров, рабочих нагрузок и serverless: Dockerfile, Compose, безопасность подов, IAM и триггеры FaaS                             |
| ИИ / LLM       | `ai`      | Интеграции с ИИ и LLM, от prompt injection и небезопасного подключения инструментов, агентов, поиска данных и MCP                                 |
| Lovable        | `lovable` | Сгенерированные ИИ приложения на Supabase (Lovable и подобные): пробелы в RLS, утечки ключей `service_role` и небезопасные настройки по умолчанию |

## На чем она написана

| Категория  | Ключ         | Что она защищает                                                                                                                        |
| ---------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| JavaScript | `javascript` | RCE через `eval` и `child_process`, path traversal и prototype pollution во всех его средах выполнения                                  |
| Python     | `python`     | RCE через десериализацию `pickle` и YAML, обход через строки `str.format` и class pollution                                             |
| Rust       | `rust`       | Некорректные `unsafe` API, неправильное использование `transmute`, целочисленное переполнение и неопределенное поведение на границе FFI |
| C / C++    | `c-cpp`      | Ошибки форматных строк, переполнения буфера и запись за границами памяти, ведущие к выполнению кода                                     |
| PHP        | `php`        | Обход аутентификации через type juggling, цепочки гаджетов object injection и небезопасные настройки по умолчанию                       |
| Go         | `go`         | Ошибки с typed nil в интерфейсах, data races в горутинах и небезопасная конкурентность на путях безопасности                            |
| Java       | `java`       | Цепочки гаджетов десериализации `ObjectInputStream`, ведущие к удаленному выполнению кода                                               |
| Ruby       | `ruby`       | Цепочки гаджетов десериализации `Marshal.load` и YAML, ведущие к удаленному выполнению кода                                             |
| .NET / C#  | `dotnet`     | RCE через десериализацию `BinaryFormatter` и обходы кодировщиков, ведущие к XSS                                                         |

**Совет**

**Lagune** не зависит от языка: весь процесс читает проект, на каком бы языке он ни был написан, а эти категории лишь добавляют глубины в ловушках, характерных для конкретного языка.

## Добавляйте и убирайте в любой момент

Категория служит отправной точкой, а не обязательством. Используйте то, что подходит проекту сейчас, и меняйте в любой момент по ключу с помощью `write add` и `write remove`. `--categories` без значения открывает в терминале интерактивный выбор (пробел переключает, enter подтверждает, пустой выбор пропускает). Вне терминала передайте категории после флага.

**Добавить**

```bash
npx lagune write add --categories # interactive
npx lagune write add --categories owasp
npx lagune write add --categories owasp rust
```

**Убрать**

```bash
npx lagune write remove --categories # interactive
npx lagune write remove --categories owasp
npx lagune write remove --categories owasp rust
```

Первый `write add` или `write remove` начинает с `owasp`, поэтому если убрать все категории, останется пустой список, а не значение по умолчанию. Каждое изменение попадает в `.lagune/configs.json`, поэтому вся команда работает с одним и тем же набором.

## Посмотрите, что использует проект

`read list --categories` показывает каждую категорию и то, использует ли ее проект:

```bash
npx lagune read list --categories
# Categories
#   • owasp       [used]       Harden against the application security risks OWASP tracks
#   • javascript  [available]  Harden JavaScript and its runtimes
#   • php         [available]  Harden PHP against type-juggling auth bypass
#   • go          [available]  Harden Go against typed-nil interface bugs
#   ...
#
# No category is recorded yet, so this project uses the default: owasp.
```

Какие специализации входят в каждую категорию, смотрите в разделе [**Каталог**](https://lagune.ai/ru-RU/docs/catalog). Ваши собственные специализации, написанные с помощью [`/lagune-specialize`](https://lagune.ai/ru-RU/docs/commands/specialize), попадают в каталог при любых категориях.

## Частые вопросы

### Как добавить категорию?

Передайте ключ категории в --categories, например npx lagune write add --categories javascript. Пока не зафиксировано ни одной категории, charter также фиксирует категории, которые подтверждает анализ проекта.

### Можно ли использовать несколько категорий?

Да. Перечислите их в одной строке одну за другой.

### Какую категорию стоит использовать проекту?

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