amocrm-api-control
Безопасная OAuth-авторизация amoCRM, чтение схемы аккаунта и сверка заявок по источнику, времени, статусу, ответственному и внешней ссылке.
它会碰到什么
关于「读环境变量(配置)」:这个技能会读 process.env 之类的环境变量,但读到的都是端口、目录、超时这类配置项,没有读取密钥类变量。扫描规则原本把「读环境变量」一律算作「读凭据」,本站按变量名做了细化区分,命中明细仍如实列在下面。
逐条看命中(5 条严重或高危)
- 严重
tests/test_reconciliation.py:115cred-pathspath = Path(directory) / "credentials.json"
- 高
scripts/exchange_amocrm_token.py:18cred-envreadPath(os.environ.get("CODEX_HOME", Path.home() / ".codex")) / "plugins/yandex-direct-for-all/scripts", - 高
scripts/exchange_amocrm_token.py:19cred-envreadPath(os.environ.get("CLAUDE_HOME", Path.home() / ".claude")) / "plugins/yandex-direct-for-all/scripts", - 高
scripts/fetch_amocrm_schema.py:17cred-envreadPath(os.environ.get("CODEX_HOME", Path.home() / ".codex")) / "plugins/yandex-direct-for-all/scripts", - 高
scripts/fetch_amocrm_schema.py:18cred-envreadPath(os.environ.get("CLAUDE_HOME", Path.home() / ".claude")) / "plugins/yandex-direct-for-all/scripts",
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Управление amoCRM через программный интерфейс
Граница задачи
Навык предназначен для получения и обновления OAuth-токенов, чтения воронок, статусов и полей, а также сверки заявок. Любые изменения бизнес-данных требуют отдельного плана, точной области, подтверждения и чтения после записи.
Перед созданием интеграции
- Используй уже существующую интеграцию, если она есть.
- Создание закрытой интеграции в нетехническом аккаунте может иметь последствия для технической поддержки; покажи владельцу актуальное предупреждение из интерфейса amoCRM.
redirect_uriдолжен точно совпадать с адресом интеграции. Местный приёмник слушает только127.0.0.1и проверяет точные путь иstate.
Закрытые файлы
Все файлы интеграции, state, кода авторизации и токенов должны иметь права 0600, а их папки — 0700. Секрет, код и токен не передавай аргументом и не печатай.
Ожидаемая схема файла интеграции:
{
"subdomain": "ACCOUNT_SUBDOMAIN",
"client_id": "PUBLIC_INTEGRATION_ID",
"client_secret": "PRIVATE_INTEGRATION_SECRET",
"redirect_uri": "EXACT_REGISTERED_REDIRECT_URI"
}
Порядок OAuth
- Создай случайное состояние и сохрани его в закрытом файле.
- Запусти
scripts/amocrm_local_callback_server.pyс явными--state-fileи--output. - Открой адрес согласия, содержащий тот же
state. - Приёмник сохранит только код, а не полный адрес.
- Запусти
scripts/exchange_amocrm_token.pyс--integration-file,--authorization-code-fileи--token-file. Для обновления используй--refreshбез файла кода. - После успешного первого обмена удали одноразовый файл кода.
Чтение схемы и сверка
scripts/fetch_amocrm_schema.py проходит постраничную выдачу и сохраняет схему аккаунта в закрытой папке. Повтор той же страницы считается ошибкой.
Для сверки каждая строка обязана иметь поля:
source— источник;occurred_at— время события;status— статус;responsible— ответственный;external_link— внешняя ссылка, используемая как ключ сопоставления.
Результат разделяет совпадение, расхождение и строку, присутствующую только во втором источнике.
Граница публикации
Не публикуй поддомены аккаунтов, учётные данны, токены, контакты, заявки, домены и местные пути. Для испытаний используй только синтетические данны.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/nebelov/yandex-direct-for-all/skills/amocrm-api-control/SKILL.md