ШІ-інструменти та скрипти
Перевірка безпеки SvelteKit
Перевірте застосунки на SvelteKit 2 і 3 перед деплоєм: секрети у змінних PUBLIC_ або в даних, що повертаються з load, вимкнені перевірки CSRF, CORS, що довіряє будь-якому джерелу, XSS через {@html}, відкриті перенаправлення, слабкі сесійні cookie та CSP з вбудованими скриптами.
Що ви отримаєте: 1 файл · 52.3 KB · ZIP
Переглянути варіанти купівліОпис товару
Функція load, яка повертає { stripeKey: STRIPE_SECRET_KEY }, надсилає ваш секретний ключ Stripe кожному відвідувачеві всередині даних сторінки, а csrf: { checkOrigin: false } дає змогу будь-якому сайту надсилати ваші форми з cookie ваших користувачів. Цей навик знаходить такі помилки та ще дев'ять помилок SvelteKit до деплою та підказує, як виправити кожну.
Ваш агент запускає сканер для svelte.config.js, vite.config, компонентів .svelte, файлів +page, +layout і +server, хуків, віддалених функцій, src/env.ts і файлів .env. Він знає SvelteKit 2 і 3: читає версію @sveltejs/kit із package.json, знає, що redirect() у SvelteKit 3 відхиляє зовнішні URL, якщо ви їх не дозволили, що cookies.set() типово робить cookie httpOnly і secure, які модулі працюють лише на сервері і що SvelteKit перестає додавати свої nonce для CSP, коли в script-src є 'unsafe-inline'. Він відстежує дані з URL, форм і load через змінні, $derived і блоки {#each}, пропускає коментарі та вважає DOMPurify.sanitize() і схожі виклики очищенням. Він ніколи не збирає і не запускає застосунок. Результат: BLOCK, REVIEW або NOT FLAGGED із зазначенням файлу, рядка, причини та безпечнішого підходу. Секрети ніколи не виводяться.
Що перевіряється
BLOCK (виправити до випуску)
- K01: змінні з іменами, що вказують на секрет, зроблені публічними (secret, password, private key, service role, URL бази даних, URL вебхука чату, токени ШІ та GitHub): імена PUBLIC_ у файлах .env та імпортах публічних env, імена VITE_ в import.meta.env і public: true в src/env.ts
- K02: csrf.checkOrigin: false або '*' у csrf.trustedOrigins, указані безпосередньо або в масиві-константі
- K03: CORS, який копіює Origin запиту в Access-Control-Allow-Origin разом з Allow-Credentials: true
- K04: секрети, що надсилаються в браузер: приватні значення env, які повертають серверні функції load, дії форм або віддалені функції (безпосередньо чи в локальному об'єкті), секретні ключі, записані у файлах .svelte, в універсальних load або модулях src/lib поза серверними папками, а також process.env, скопійований у бандл через define у vite. Про браузерні ключі, як-от publishable, anon, search-only і ключі PostHog, не повідомляється
- K05: {@html} зі значенням з URL (параметри пошуку, hash, параметри маршруту), зокрема якщо його задано в $effect або onMount; значення, які лише порівнюються з URL або шукаються за ним, не враховуються
REVIEW (перевірити до релізу)
- K11: {@html} з даними load, результатами форм або props компонента без санітайзера
- K12: відкриті перенаправлення на значення з рядка запиту чи форми через redirect(), заголовок Location або window.location без перевірки того самого джерела (сама лише перевірка startsWith('/') не враховується)
- K13: сесійні cookie або cookie автентифікації з вимкненими httpOnly чи secure, sameSite none, задані через serialize() або stringifySetCookie() з пакета cookie без httpOnly, через сирий заголовок Set-Cookie або document.cookie
- K14: 'unsafe-inline' або 'unsafe-eval' у script-src політики CSP (про політики report-only та 'unsafe-inline' поруч із 'strict-dynamic' не повідомляється)
- K15: серверний хук handleError або обгорнутий ним обробник, що повертає повідомлення про помилки чи трасування стека
- K16: Access-Control-Allow-Origin: * разом з Allow-Credentials: true
Що входить до комплекту
- Сканер (Python 3.9+, лише стандартна бібліотека)
- Посібник із правил із причиною, безпечнішим підходом і посиланням на офіційну документацію для кожного правила
- Ризикований і безпечний приклади проєктів на SvelteKit, а також справжній звіт сканера щодо ризикованого
Обмеження
Сканер читає кожен файл окремо: значення, передане через функцію в іншому файлі, секрет, імпортований зі спільного модуля, або санітайзер, застосований в іншому компоненті, не відстежуються. Власний kit.env.publicPrefix не читається (передбачається PUBLIC_), а авторизація всередині функцій load і дій, перевірка вхідних даних віддалених функцій і заголовки безпеки, задані проксі чи хостингом, не перевіряються. Без package.json, у якому вказано @sveltejs/kit, перенаправлення оцінюються за правилами SvelteKit 2. NOT FLAGGED не є гарантією.
Вміст
Один ZIP-файл із 28 файлами: SKILL.md, сканер у scripts/ (5 файлів Python), references/rules.md (усі правила з причиною та безпечнішим підходом) і examples/ (20 файлів прикладів плюс report.md, справжній вивід сканера щодо ризикованого прикладу).
Як користуватися: це навик для агента: папка з файлом SKILL.md і скриптами Python, які може запускати ШІ-агент для програмування, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте архів у папку навиків вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого встановлювати не потрібно. Вони лише читають ваші файли: без доступу до мережі, і нікуди нічого не надсилається.
Що ви отримаєте
1 файл · 52.3 KB
- sveltekit-safety-check-1.0.0.zipZIP · 52.3 KB
ШІ-інструменти та скрипти
Перевірка безпеки SvelteKit
Перевірте застосунки на SvelteKit 2 і 3 перед деплоєм: секрети у змінних PUBLIC_ або в даних, що повертаються з load, вимкнені перевірки CSRF, CORS, що довіряє будь-якому джерелу, XSS через {@html}, відкриті перенаправлення, слабкі сесійні cookie та CSP з вбудованими скриптами.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 52.3 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



