# Категорії

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

Канонічна URL-адреса: https://lagune.ai/uk-UA/docs/categories
Мова: uk-UA
Оригінал: https://lagune.ai/docs/categories
Останнє оновлення: 2026-11-03

**Lagune** групує свої вбудовані [**спеціалізації**](https://lagune.ai/uk-UA/docs/catalog) у **категорії (13)**. Категорії, які використовує проєкт, визначають, які вбудовані спеціалізації потрапляють до його [**каталогу**](https://lagune.ai/uk-UA/docs/catalog), і поділяються на дві групи: що робить система і якою мовою вона написана.

Поки не записано жодної категорії, проєкт використовує лише `owasp`. [`/lagune-charter`](https://lagune.ai/uk-UA/docs/commands/charter) записує кожну категорію, яку підтверджує її аналіз проєкту, а ви можете змінювати їх самі будь-коли.

## Що робить система

| Категорія      | Ключ      | Що захищає                                                                                                                                          |
| -------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| OWASP          | `owasp`   | Ризики безпеки застосунків, які відстежує OWASP: ін'єкції, порушення контролю доступу, збої автентифікації й криптографії                           |
| Інфраструктура | `infra`   | Конфігурацію контейнерів, робочих навантажень і serverless: Dockerfile, Compose, безпеку Pod, 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/uk-UA/docs/catalog). Ваші власні спеціалізації, написані через [`/lagune-specialize`](https://lagune.ai/uk-UA/docs/commands/specialize), потрапляють до каталогу незалежно від категорій.

## Часті запитання

### Як додати категорію?

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

### Чи можна використовувати більше однієї категорії?

Так. Перелічіть їх в одному рядку, одну за одною.

### Яку категорію використовувати проєкту?

Почніть з owasp, значення за замовчуванням, а потім додайте категорію для своєї мови чи стеку. Спеціалізації завантажуються лише на вимогу, тож категорія нічого не коштує, доки фазі не знадобиться одна з її спеціалізацій.
