Skip to content

GUIDE 01 · WEB APPLICATIONS AND APIs

Vibe coding security: check your application before launch

An AI-built application needs the same access controls and release checks as any other product. Start with the data you protect, test two independent accounts and verify fixes on the running application. Scantelio can automate supported HTTP checks; it does not audit every line of generated code.

Scantelio editorial team · Updated

Check your project

Sign-in, ownership verification and consent are required. Start with the limited Free external profile.

On this page

Start with the highest-impact checks

First confirm that private data stays private. Check whether a signed-in user can read another user’s document, download an export or call an administrator operation. Then review exposed configuration and the actual dependency versions in the deployed release. A polished interface is not evidence that these boundaries work.

Identify your protected data and actions

List the application’s users, organizations, roles, objects and sensitive actions. Give each test object a known owner and an unmistakable synthetic marker. Record which requests must be allowed and denied. Avoid real customer records: a reproducible test should be safe to repeat after every release.

Primary sources: Primary reference 1 · Primary reference 2

Continue: Check your own website for vulnerabilities by URL

Use a launch checklist

Assign an owner and an expected result to each check. A checklist is a preparation tool, not a certificate. Separate checks you ran from those that need staging, credentials or a specialist review. A public URL alone does not reveal private API behavior or the complete dependency inventory.

AreaActionExpected outcome
OwnershipVerify the exact targetOnly approved scope
SecretsRevoke exposed credentialsOld key no longer works
Other user’s objectA requests B’s documentNo private data returned
Owner controlA reads its own documentLegitimate access still works
OrganizationsX requests Y’s private objectDenied
RolesMember invokes admin operationServer-side denial
Protected fieldsSubmit role=adminNo privilege escalation
ExportsDownload another owner’s fileDenied
RLSQuery as ordinary user AOnly permitted rows
JWTWrong aud / iss / expRejected under configured policy
DependenciesSupply exact installed versionsMatch applicable advisories
ReleaseRetest the deployed revisionKnown build identifier
CoverageReview skipped / inconclusiveReasons remain explicit
RecoveryRepeat the allowed operationPositive control succeeds

Test with two independent accounts

Create A and B with separate sessions. A must read its own document; A must not receive B’s private content. Repeat the reverse direction and the download endpoint. Our loopback fixture deliberately has a vulnerable branch and a fixed branch: the forbidden request changes from 200 to 403 while the owner’s request remains 200.

Reproducible local fixture; synthetic data only.
python3 access-fixture.py
curl -H "X-Fixture-User: a" "http://127.0.0.1:8769/documents/doc-b?mode=vulnerable"
curl -H "X-Fixture-User: a" "http://127.0.0.1:8769/documents/doc-b?mode=fixed"

Primary sources: Primary reference 1 · Primary reference 2

Continue: IDOR and BOLA: test access to another user’s data

Check your project

Cursor, Claude Code, Lovable and Bolt projects

The generator’s name does not determine coverage. Inspect the resulting application: routes, database policies, server operations and deployment configuration. Ask your coding assistant to explain where identity is verified and where object permissions are enforced. Verify its explanation with requests to your own test environment.

Source review and running-application checks

Source review can inspect code paths that are not exposed over HTTP. DAST observes a running application within its approved scope. Dependency monitoring compares a supplied inventory with known advisories. These are different activities: Scantelio does not claim full source-code auditing or automatic fixes from a URL.

Primary sources: Primary reference 1 · Primary reference 2

Continue: Supabase security: check RLS and access to data

Give an AI assistant a verifiable fix task

Include the affected route, required ownership rule, sanitized evidence and an expected negative test. Ask it to preserve legitimate behavior. Review the change and rerun both the forbidden request and the authorized control. A new error page or expired session is not proof that access control was fixed.

Repeat after launch

Keep a release identifier, approved fixtures and the original expected permissions. Use supported schedules and CI checks for recurring work, and refresh inventories after deployments. Review partial coverage before trusting a green gate. Use the related guides below to prepare access, stack-specific, token and dependency scenarios.

Continue: Check your own website for vulnerabilities by URL

Continue: Prepare an automated API security assessment

Continue: IDOR and BOLA: test access to another user’s data

Continue: Supabase security: check RLS and access to data

Continue: Next.js security: check APIs, Server Actions and secrets

Continue: Exposed .env, .git or API keys: contain the leak and verify the fix

Continue: JWT security: validate tokens and access lifecycle

Continue: Monitor CVEs and dependencies in your application

Continue: Add security checks to CI/CD and GitHub Actions

Reproducible examples and downloads

Tested with: guides-1 · Python 3.13.0 · PyJWT 2.15.1

All example data is synthetic. Downloads contain no active keys or customer records. Run examples only in your own isolated test environment.

Example verification record: versions, actions and observations

Actual Scantelio evidence panel displaying the controlled fixture result; this is not a customer scan or a full end-to-end scan
Actual Scantelio evidence panel displaying the controlled fixture result; this is not a customer scan or a full end-to-end scan. Test fixture, synthetic data.

Questions and answers

Does AI-generated code need special scanning?

The same trust boundaries apply. Test the resulting stack and behavior rather than treating a generator name as a security guarantee.

Can I start without source access?

Yes, for supported HTTP checks. That does not provide a complete source-code audit.

Is a public URL enough?

For limited external checks after verification and consent. Access checks and dependency monitoring need additional inputs.

Should I test production?

Use approved external and read-only scenarios there. Active checks and mutations require staging and separate consent.

Does a clean report prove the app is secure?

It means no issues were found in the completed scenarios. Review skipped and inconclusive checks separately.

What should I do after the first scan?

Fix actionable findings, run targeted retests and add recurring checks for releases and dependencies.

Editorial team and sources

Scantelio editorial team: methodology and limitations. Example verified: 2026-11-02.

Apply the check to your own project

Check your project

Choose your project after signing in. No scan runs without verification and consent.