ШІ-інструменти та скрипти
Перевірка безпеки сайтів на Astro
Перевірте сайт на Astro перед деплоєм: секрети у змінних PUBLIC_, vite.define або клієнтських островах, set:html із даними запиту, CORS, що віддзеркалює будь-який origin, вимкнений checkOrigin, відкриті редиректи та слабкі сесійні cookies.
Що ви отримаєте: 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
ШІ-інструменти та скрипти
Перевірка безпеки сайтів на Astro
Перевірте сайт на Astro перед деплоєм: секрети у змінних PUBLIC_, vite.define або клієнтських островах, set:html із даними запиту, CORS, що віддзеркалює будь-який origin, вимкнений checkOrigin, відкриті редиректи та слабкі сесійні cookies.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 47.04 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



