Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка безопасности сайтов на Astro

Проверьте сайт на Astro перед деплоем: секреты в переменных PUBLIC_, vite.define или клиентских островах, set:html с данными запроса, CORS, отражающий любой origin, отключённый checkOrigin, открытые редиректы и слабые сессионные cookies.

$5.00

Что вы получите: 1 файл · 47.04 KB · ZIP

Варианты покупки

Описание товара

PUBLIC_STRIPE_SECRET_KEY в .env.production или import.meta.env.OPENAI_API_KEY, переданный как prop в остров client:load, попадает в JavaScript и HTML, которые скачивает каждый посетитель. Значение ?q=, переданное в set:html, позволяет кому угодно отправить ссылку, которая запускает скрипты на вашем домене. Этот навык находит эти и другие перечисленные ниже ошибки Astro до деплоя и подсказывает, как исправить каждую из них.

Ваш агент запускает сканер для файлов astro.config, страниц и компонентов .astro (frontmatter, шаблон и скрипты), эндпоинтов, middleware и actions, файлов .env, а также компонентов, читающих переменные PUBLIC_. Он знает правила Astro: в браузер попадают только переменные PUBLIC_ и клиентские поля astro:env, props для client:* и значения define:vars сериализуются в страницу, тогда как props для server:defer шифруются, set:html не экранируется, Astro.params фиксируется во время сборки только на пререндеренных страницах, а checkOrigin включён по умолчанию. Публикуемые (publishable), anon и браузерные ключи карт, переключатели функций и флаги, полученные из секрета (!!key), он считает допустимыми, читает файлы .env только в папках, где есть файлы Astro, не предупреждает об удалённых изображениях в статических сборках и никогда не собирает и не запускает ваш проект. Результат: BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного решения. Секреты никогда не выводятся.

Что проверяется

BLOCK (исправить до выпуска)

  • A01: переменная с секретным именем, ставшая публичной: переменные PUBLIC_ в файлах .env и в коде, поля astro:env с context "client" и значения PUBLIC_ в известных форматах ключей
  • A02: vite.define, которому передано всё окружение, переменная с секретным именем или ключ-литерал
  • A03: серверные секреты (или объекты, которые их содержат), переданные в острова client:*, define:vars, HTML-атрибуты или текст страницы
  • A04: set:html с данными из строки запроса, формы, заголовка или маршрута, отрисовываемого по запросу, в том числе через рендерер Markdown
  • A05: CORS, который копирует Origin запроса в Access-Control-Allow-Origin вместе с credentials и без списка разрешённых адресов

REVIEW (проверить перед релизом)

  • A11: отключённый security.checkOrigin
  • A12: security.allowedDomains, доверяющий любому пересланному хосту
  • A13: image.remotePatterns, разрешающие любой хост на сайте с рендерингом по запросу
  • A14: редиректы на значение ?next= или поля формы, которое предварительно не проверяется
  • A15: source maps, публикуемые вместе со сборкой
  • A16: cookies сессии или токенов, установленные без httpOnly и secure
  • A17: секреты astro:env, помеченные как public на сервере или получившие значение по умолчанию в виде литерала
  • A18: CORS "*" вместе с credentials

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)
  • Руководство по правилам: причина, более безопасное решение и официальный источник для каждого правила
  • Рискованный и безопасный примеры интернет-магазина (конфигурация, .env, страницы и API-маршруты), а также реальный отчёт сканера по рискованному примеру

Ограничения

Сканер читает каждый файл отдельно и отслеживает значения только через простые присваивания в том же файле, поэтому данные, переданные через импортированные вспомогательные функции или родительские компоненты, не отслеживаются. Заголовки хостинга, правила CDN и то, проверяет ли эндпоинт или action, кто является пользователем, ему неизвестны, содержимое Markdown и MDX не читается, а компоненты JSX, TSX, Vue и Svelte проверяются только на секреты PUBLIC_. NOT FLAGGED не является гарантией.

Содержимое

Один ZIP-архив с 22 файлами: SKILL.md, сканер в scripts/ (7 файлов Python), references/rules.md (каждое правило с причиной и более безопасным решением) и examples/ (12 файлов-примеров плюс report.md, реальный отчёт сканера по рискованному примеру).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами на Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: без доступа к сети, никакие данные никуда не отправляются.

Что вы получите

1 файл · 47.04 KB

  • astro-safety-check-1.0.0.zipZIP · 47.04 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла47.04 KB
Формат файлаZIP
Версияv1.0

Теги

astrossrxssenv-variablessecurityai agent skill
R
RR HH

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

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 47.04 KB.

Обновления бесплатны?

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

Цена

$5.00