On this page
An AI builder can connect sign-in, storage and external APIs in minutes. Those connections are also where a convincing prototype can become a risky service. The interface may hide an administrative action while the underlying endpoint still accepts it, or a generated component may ship a private credential to every visitor.
Security review starts with understanding boundaries, not asking the same assistant whether its work is secure. This baseline helps designers and developers inspect keys, permissions and data handling before inviting real users. It does not replace specialist review for regulated data, payments or applications with serious consequences if they fail.
Map the system and its trust boundaries
Create a system inventory covering the browser, server functions, database, file storage, authentication provider and external services. Record what each component receives and which identity it uses. Generated projects often include integrations that were useful during experimentation but no longer belong in the product.
Mark each trust boundary. Browser input is untrusted even when it comes from your own form. Uploaded documents, webhook payloads and model responses are also external inputs. A hidden field or disabled control can be changed by a determined user, so it cannot establish permission or guarantee a safe value.
Ask the builder for an implementation map, then verify its claims against source, configuration and provider dashboards. Identify which routes run on the server and which files are delivered to the browser. If nobody on the team can establish that distinction, pause public release and obtain technical help.
Use the OWASP Application Security Verification Standard to frame a broader review. Start with the paths that expose valuable data or irreversible actions. An inventory gives you a way to prioritise checks instead of treating a generic vulnerability list as a complete assessment.
Keep private keys behind the server boundary
Classify credentials by provider guidance. Some public client identifiers are designed to appear in browsers; private API keys are not. A variable name containing “public” does not make an arbitrary credential safe to expose. Read the service documentation and verify the privileges associated with each key.
Store private credentials in an appropriate server-side secret store or deployment environment. Do not paste them into prompts, commit them to source control or embed them in generated frontend code. Check built browser assets and network requests where practical, because a secret removed from one component may still exist elsewhere.
Use separate credentials for development and production, with the narrowest available scope. Establish an owner and a rotation procedure. If a key has been exposed, revoke or rotate it promptly, investigate its use and remove the leak. Deleting the visible text does not invalidate copies already obtained by someone else.
A clear generation constraint helps, although it is not enforcement:
Keep the external service credential on the server only.
The browser must call our authenticated endpoint.
Validate input, check permission and enforce usage limits there.
Never return credentials or raw provider error details to the client.
List the configuration needed without including secret values.For practical handling advice, consult the OWASP secrets management guidance. Also inspect logs and error reporting: credentials can leak through debugging output even when the main request path is correctly designed.
Enforce permissions where data is accessed
Separate authentication from authorisation. Signing in establishes an identity; it does not establish which records that identity may read or change. Every sensitive request needs an appropriate permission check at the server or data-policy boundary, including requests issued outside your interface.
Use deny-by-default access. Start with no access and grant the operations each role needs. For user-owned records, derive ownership from the authenticated identity rather than trusting a user identifier supplied by the browser. For team records, verify membership and the required role before reading or mutating data.
Test with two ordinary accounts and an administrator. Create a record as account A, then attempt to read, edit and delete it as account B using its known identifier. Check list endpoints, exports, attachments and search results too. Protecting a detail page while leaking the same data through a listing is still a failure.
Do not confuse interface styling with enforcement. You can use the CSS to Tailwind converter to translate reviewed styles for an access-denied panel, then verify the resulting classes in the project. That tool helps present the denied state consistently; it cannot secure a route or database query.
Minimise data and control its lifecycle
Collect only information needed for the current task. A prototype rarely needs real birth dates, identity documents or production customer exports. Use synthetic test data and separate test environments so an experimental migration or debugging script cannot damage operational records.
Validate input on the server and use safe database access patterns. Treat uploaded files as untrusted: restrict size and allowed types, control storage access and avoid executing or rendering arbitrary content in a privileged context. A file extension alone is not proof of what a file contains.
Define retention and deletion before launch. Identify where records, attachments, logs and backups live, who can access them and how deletion requests are handled. Do not promise immediate removal from every backup unless your actual process supports it. Document the limits clearly and avoid retaining unnecessary sensitive content in diagnostics.
Review transport security, storage configuration and backup recovery with the relevant provider documentation. MDN's web security overview provides useful background. For model-connected features, treat retrieved text and generated output as untrusted data; neither should independently authorise actions, expand permissions or trigger irreversible operations without controlled application logic.
Verify deployment and prepare for failure
A production review must examine deployed configuration, not just repository code. Confirm that development bypasses are disabled, storage is private where required and administrative accounts use strong authentication. Review dependency changes and remove unused integrations that increase the exposed surface without serving a real requirement.
Add abuse controls to costly operations, including quotas and suitable rate limits. Test what happens when an external service fails or returns unexpected output. Errors should provide a useful recovery path without exposing stack traces, credentials or other users' data. Alerting should identify operational problems without indiscriminately copying sensitive payloads.
Use the AI coding assistants directory to compare review tooling if needed, but keep accountability with people who understand the system. Automated findings are leads to investigate, not a security certificate. Ask an independent reviewer to test the boundaries that the generating assistant implemented.
Prepare an incident response owner, credential revocation procedure and deployment rollback plan. Follow the operational checks in launching an AI-built site, while recognising that rollback may not undo leaked data or an unsafe database migration. Record test evidence, unresolved risks and a release decision before widening access beyond a controlled pilot.
Key takeaways
- Inventory components and verify the boundaries between browser, server and storage.
- Keep private credentials server-side and rotate exposed keys promptly.
- Enforce permissions on every sensitive data operation, not just visible controls.
- Minimise collected data and document retention, deletion and recovery behaviour.
- Review production settings independently and prepare for incidents before launch.
Reach designers & developers at work
Put your product next to the tools people use every day. One sponsor per placement, no tracking pixels.
Become a sponsor