Przejdź do treści

SCANYOURVIBEby Exacting Labs

AI napisało kod. My sprawdzamy, co przeoczyło.

Niezależny audyt bezpieczeństwa, jakości kodu i gotowości aplikacji do produkcji.

  • Web GUI
  • REST API
  • MCP
sklep-app — ScanYourVibe
  • app/checkout
  • page.tsx
  • app/api
  • auth/login/route.ts
  • orders/[id]/route.ts
  • lib
  • supabase/admin.ts
  • cart.ts
  • tests
  • orders.test.ts
route.tsapp/api/orders/[id]
import { auth } from '@/lib/auth' import { db } from '@/lib/db' export async function GET(req, { params }) { const session = await auth() if (!session) return unauthorized() const order = await db.order.findUnique({ where: { id: params.id },

Krytyczneroute.ts:9

Brak kontroli właściciela zasobu.

Użytkownik może odczytać cudze zamówienie po zmianie ID.

}) return Response.json(order) }
Raport gotowy 1 krytyczne1 wysokie3 średnie2 do naprawy przed startem
Problem

Działa to jeszcze nie znaczy, że jest gotowe.

  1. Użytkownicy się logująPo zmianie ID w adresie widać cudze zamówienia
  2. Płatności przechodząŻaden test nie sprawdza webhooka płatności
  3. Aplikacja działa na produkcjiKlucz administratora bazy trafia do przeglądarki

ScanYourVibe pokazuje tę różnicę, zanim zobaczą ją Twoi użytkownicy.

ScanYourVibe w akcji

Pięć obszarów. Jeden raport z dowodami.

Przykładowy audyt fikcyjnej aplikacji. Wybierz kategorię.

sklep-app — Raport audytuPrzykład
KrytyczneBezpieczeństwo

Cudze zamówienia po zmianie ID w adresie

app/api/orders/[id]/route.ts:9
const order = await db.order.findUnique({
  where: { id: params.id },
})
↳ brak warunku userId: session.user.id
Co to znaczy
Każdy zalogowany użytkownik zobaczy dane innych klientów.
Naprawa
Dodaj warunek właściciela i test dostępu z innego konta.
ŚrednieJakość kodu

Ta sama wycena liczona w trzech miejscach

lib/cart.ts:41 · app/checkout/page.tsx:88 · app/api/orders/route.ts:57
// cart.ts      Math.round(total * 100) / 100
// page.tsx     total.toFixed(2)
// route.ts     Math.floor(total * 100) / 100
Co to znaczy
Kwota w koszyku może różnić się od tej na fakturze.
Naprawa
Jeden moduł wyceny dla wszystkich trzech miejsc.
ŚrednieArchitektura

Strona checkout robi wszystko naraz

app/checkout/page.tsx · 612 linii
import { db } from '@/lib/db'
import { stripe } from '@/lib/stripe'
import { sendMail } from '@/lib/mailer'
import { calcTotal } from '@/lib/cart'
Co to znaczy
Każda zmiana wyglądu strony ryzykuje błąd w płatnościach.
Naprawa
Wydziel logikę do warstwy usług; strona tylko ją wywołuje.
ŚrednieTesty

Webhook płatności bez żadnego testu

app/api/webhooks/stripe.ts

ZmierzoneBrak raportu pokrycia w repozytorium, więc nie podajemy procentu.

WywnioskowaneŻaden z 14 plików testów nie wywołuje tego handlera.

Co to znaczy
Zepsute potwierdzanie płatności przejdzie testy i trafi do klientów.
Naprawa
Testy dla poprawnego, powtórzonego i podrobionego zdarzenia.
WysokieGotowość produkcyjna

Brak limitu prób logowania

app/api/auth/login/route.ts:6
const { email, password } = await req.json()
const user = await verifyPassword(email, password)
↳ brak limitu prób na IP i konto
Co to znaczy
Hasła można zgadywać bez żadnych ograniczeń.
Naprawa
Limit prób na IP i konto, blokada po serii błędów.
Jeszcze nie na produkcję: 2 problemy przed startemNext.js · Supabase · Stripe
Ograniczenia tego audytu
  • Aplikacja nie była uruchamiana. Wyniki pochodzą z kodu, konfiguracji i testów.
  • Folder mobile/ był poza zakresem.
  • Raport to ocena z dowodami, nie certyfikat bezpieczeństwa ani zgodności.
Jeden silnik, trzy interfejsy

Korzystaj ze ScanYourVibe po swojemu.

Audyty w przeglądarce, w Twoim pipeline albo prosto z pracy agenta AI. Ten sam silnik i te same wyniki.

Dla agentów AI

MCP

Twój asystent AI sam zleca audyt, pobiera wyniki i naprawia to, co znalazł.

  • Claude Code, Cursor i inni klienci MCP
  • Audyt przed każdym merge
  • Wyniki z dowodem w rozmowie
Dla integracji

REST API

Audyt w CI, w wewnętrznych narzędziach albo w Twojej platformie.

  • Audyt każdej wersji przed wydaniem
  • Webhook po zakończeniu
  • Bramka merge według wagi wyników
Dla ludzi

Web GUI

Uruchamiasz audyt w przeglądarce i dostajesz wyniki opisane prostym językiem.

  • Bez budowania integracji
  • Dla founderów i zespołów
  • Ponowny audyt po poprawkach
Niezależność

Twój kod. Twoje narzędzia. Niezależna weryfikacja.

Audyt działa osobno od narzędzia, które napisało kod. Każdy wynik ma dowód, który sprawdzisz sam.

Dlaczego drugi model AI to za mało?

Poproszenie innego modelu o opinię samo w sobie nie czyni przeglądu niezależnym. W ScanYourVibe niezależność to zasada architektury: oddzielamy implementację od weryfikacji, a wnioski opieramy na dowodach z kodu, nie na deklaracjach.

Early Access

Uzyskaj wczesny dostęp.

Napiszemy, gdy otworzymy dostęp, i zaprosimy Cię do testów. Bez spamu.

Najbardziej interesuje mnie (opcjonalnie)

ScanYourVibe tworzy Exacting Labs, zespół, który buduje software i narzędzia do pracy z AI. Zobacz też Exacting Agents i Live-ready.

Nazwy Cursor, Claude Code, Codex, Lovable, Bolt i v0 należą do ich właścicieli. ScanYourVibe nie jest z nimi powiązany.