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

Меню команд

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

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

Перевірка безпеки SvelteKit

Перевірте застосунки на SvelteKit 2 і 3 перед деплоєм: секрети у змінних PUBLIC_ або в даних, що повертаються з load, вимкнені перевірки CSRF, CORS, що довіряє будь-якому джерелу, XSS через {@html}, відкриті перенаправлення, слабкі сесійні cookie та CSP з вбудованими скриптами.

$5.00

Що ви отримаєте: 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
ЛіцензіяКомерційне використання дозволено
Перевірка пакетаПройдено

Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.

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

Теги

sveltekitsveltesecurityxsscsrfai agent skill
R
RR HH

Поширені запитання

Чи отримаю я доступ одразу?

Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.

Чи можна використовувати його в комерційних проєктах?

Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.

Яка у вас політика повернення коштів?

Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.

Які формати та розміри файлів я отримаю?

Ви завантажите 1 файл - ZIP - загалом 52.3 KB.

Чи отримую я безкоштовні оновлення?

Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.

Ціна

$5.00