закреплено Как добавить инструмент через JSON: быстрое заполнение формы

admin · 11.06.2026 в 17:28 · 25 просмотров · 5 ответов

На сайте появилась удобная функция — заполнение формы добавления инструмента из JSON.

Это позволяет заполнить все поля одним копипастом, не вводя данные вручную по одному.

Как это работает

  1. Открываете страницу добавления инструмента
  2. Нажимаете кнопку «{ } Заполнить из JSON» в правом верхнем углу формы
  3. В открывшемся окне вставляете JSON с данными инструмента
  4. Нажимаете «Применить» — поля заполняются автоматически
  5. При необходимости корректируете и отправляете форму

Формат JSON

Поддерживаемые ключи:

{
  "name": "Название инструмента",
  "slug": "url-slug",
  "description": "Описание инструмента...",
  "installation": "sudo apt install ...",
  "tags": "tag1, tag2, tag3"
}

Примечание: поле slug необязательно — если его нет, он генерируется автоматически из названия. Поле tags — теги через запятую.

Пример: добавляем ffuf

{
  "name": "ffuf",
  "description": "Быстрый веб-фаззер на Go для обнаружения скрытых директорий, файлов и параметров.",
  "installation": "sudo apt install ffuf\n# или вручную:\ngo install github.com/ffuf/ffuf/v2@latest",
  "tags": "fuzzing, web, recon, brute-force"
}

Копируете этот JSON, вставляете в форму — всё готово к отправке за несколько секунд.

Автогенерация slug

Если вы не указываете slug в JSON — он формируется автоматически из name при вводе (или при применении JSON).

Например, "name": "Burp Suite" → slug burp-suite.

Если автоматический slug вас не устраивает — просто отредактируйте поле вручную после применения JSON.

Добавление через API (curl / скрипт)

Инструменты можно добавлять не только через форму, но и напрямую через POST-запрос — удобно для скриптов и автоматизации.

Эндпоинт

POST /catalog/api/tool/submit/

Аутентификация

Для API-запросов используйте свой токен. Его можно найти в профиле (раздел API-токен).

Передавайте токен заголовком:

X-Api-Token: ваш-uuid-токен

или

Authorization: Token ваш-uuid-токен

Способ 1: JSON body

curl -s -X POST https://yoursite.com/catalog/api/tool/submit/ \
  -H "Content-Type: application/json" \
  -H "X-Api-Token: ВАШ_ТОКЕН" \
  -d '{
    "name": "nmap",
    "description": "Утилита для сканирования сетей и аудита безопасности.",
    "installation": "sudo apt install nmap",
    "tags": "network, scanning, recon"
  }'

Способ 2: JSON-файл

Создайте файл tool.json:

{
  "name": "nmap",
  "description": "...",
  "installation": "sudo apt install nmap",
  "tags": "network, scanning"
}

Отправьте:

curl -s -X POST https://yoursite.com/catalog/api/tool/submit/ \
  -H "X-Api-Token: ВАШ_ТОКЕН" \
  -F "file=@tool.json"

Ответ API

Обычный пользователь — заявка идёт на модерацию:

{"success": true, "auto_approved": false, "message": "Заявка отправлена на модерацию", "submission_id": 42}

Доверенный пользователь / стафф — инструмент создаётся сразу:

{"success": true, "auto_approved": true, "tool_slug": "nmap", "tool_url": "/catalog/tool/nmap/"}

Поддерживаемые поля

Поле Обязательно Описание
name Да Название инструмента
slug Нет URL-идентификатор (авто из name)
description Нет Описание
installation Нет Инструкция установки
tags Нет Теги через запятую
category Нет Slug категории

Анонимная отправка

Если не хотите, чтобы ваше имя отображалось на карточке инструмента — добавьте поле "is_anonymous": true в JSON.

Через форму

Поставьте галочку «Добавить анонимно» перед отправкой — она появилась под полем «Теги».

Через API (curl)

Добавьте "is_anonymous": true в тело запроса:

curl -s -X POST https://pentester.run/catalog/api/tool/submit/ \
  -H "Content-Type: application/json" \
  -H "X-Api-Token: ВАШ_ТОКЕН" \
  -d '{
    "name": "nmap",
    "description": "Утилита для сканирования сетей.",
    "installation": "sudo apt install nmap",
    "tags": "network, scanning, recon",
    "is_anonymous": true
  }'

То же самое через JSON-файл:

{
  "name": "nmap",
  "tags": "network, scanning",
  "is_anonymous": true
}

curl -s -X POST https://pentester.run/catalog/api/tool/submit/ \
  -H "X-Api-Token: ВАШ_ТОКЕН" \
  -F "file=@tool.json"

Что происходит при анонимной отправке:

- На карточке инструмента отображается «anonymous» вместо имени

- Инструмент не попадает в активность профиля

Войдите, чтобы ответить