TGViewer
ИП на ЗП ИП на ЗП @pro_nocode · 1.1K subscribers
Post #441 1.82K
Слышали историю про парня, который вайбкодил SaaS, активно рассказывал про это в твиттере, а потом бросил это дело так как его проект захерачили из-за проблем с безопасностью?

Много, кто говорит про проблемы с безопасностью на вайбкодовых проектах (слово то какое😃), но это не проблема вайбкодинга. Точно так же говорили и про бабл когда-то, когда кто-то не углублялся в настройки privacy rules. Нашел в твиттере пост про базовые настройки безопасности при работе в cursor/windsurf и несу их вам) Больше всего подойдет тем, кто вайбкодит на Next JS с Supabase и Vercel, но в целом под себя докрутить не проблема

Итак:
1. Ключи доступа

Проблема: Жёстко закодированные ключи в коде
Решение:
- NEXT_PUBLIC_* (публичные настройки) записываем в .env файл
- Секреты (API keys, токены) записываем в .env.local (и добавляем в `.gitignore`)

Промт для Cursor/Windsurf:

Используй process.env.<VAR> для всех секретов. Если нужна новая переменная, скажи точный ключ для .env.local. Предполагай, что .env.local уже существует.


Если используете Vercel, то прописывайте все секреты в Environment Variables. Как у других хз, не работал

2. Supabase: RLS (Row Level Security)
Проблема: Anon Key Supabase по умолчанию читает все данные из БД.
Решение: Включить RLS и политики доступа.

Промт:
 
Включи Row Level Security на всех таблицах. Создай политики через auth.uid(), чтобы пользователи видели только свои данные. Никогда не используй service_role в клиенте. Для админ-действий — только RPC + серверные вызовы. Все запросы должны быть параметризованы.


Теперь вашу БД не скачают через DevTools.

3. Защита API
Проблема: Любой может спамить ваши /api -роуты.
Решение:
- JWT в Authorization header
- Валидация полей (Zod)
- Rate-limiting (~5 запросов/мин на IP) - но тут, думаю, корректнее каждому самому определить нужный лимит

Промт:
 Для каждого /api роута:  
- Проверяй JWT в заголовке
- Отклоняй некорректные данные
- Лимитируй запросы (429 при превышении)
- Валидируй ввод через Zod
Затем просканируй репозиторий на наличие хардкодных токенов.


Теперь API под замком.

4. Итог
Что мы починили:
Секреты — не в GitHub
Supabase — данные только для своих
API — аутентификация + лимиты
  • 🔥 15
  • 👍 5
  • 👌 1
More from @pro_nocode
  1. Sep 10, 2026Открываю форточку в мир😄
  2. Sep 8, 2026Чёт только щас допёрло, что вот есть UX-дизайнер/писатель/маркетолог т.е человек, отвечающ…
  3. Jun 22, 2026Короче, чуть больше месяца назад решил поэкспериментировать с историей "Клод сделай мне де…
  4. May 20, 2026Среди всего хайпа про AI агентов для продаж, тех поддержки и прочего маркетинга хочется пр…
  5. Apr 19, 2026Зарубежный X: кучи примеров как claude design делает какие-то разъёбные вещи, восторг, раз…
  6. Apr 12, 2026Прочитал вчера про remote-control в Claude code и решил себе поставить и потестить. У меня…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →