Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка безпеки сайтів на 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