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

Меню команд

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

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

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