Updated 14 days ago
Security Standard#
This document defines the security rules for every tool built using SpringBoard. You do not need a technical background to follow these rules.
The one rule#
Never put sensitive information in your code. Not passwords, not API keys, not secret tokens, not database URLs. Ever.
If sensitive information is in your code, anyone who can see the code can access your accounts, your data, and your users' data. This is the most common security mistake in AI-assisted development — and the easiest to prevent.
- Open your project in whatever tool you used to build it
- Use the search function (Ctrl+F on Windows, Cmd+F on Mac)
- Search for each of these, one at a time:
sk-,api_key,secret,password,token,DATABASE_URL - Also search for any long random string that looks like a key or password
- If you find any of these in your code, move them to environment variables (your tool's settings or secrets panel)
- Not sure how to move them? See When to Escalate
Data handling rules#
All build paths#
Every page of your tool should show a lock icon in the browser's address bar. If it does not, your data is being sent unprotected.
Without HTTPS, anyone on the same network (a coffee shop, a school) can read the data your tool sends and receives. This includes passwords, personal information, and anything else your users type.
- Open your tool in a browser
2. Look at the address bar — it should start with
https://and show a lock icon 3. If it starts withhttp://(no "s"), your data is not encrypted 4. Most modern hosting tools (Replit, Vercel, Netlify) provide HTTPS automatically. If yours does not, contact your reviewer.
If your tool does not need someone's date of birth, do not ask for it. Every piece of data you collect is data you must protect.
Data you do not have cannot be stolen. The safest way to protect information is to never collect it in the first place.
If your tool sends data to an external API, you need to know where that data goes and who has access to it.
AI tools sometimes send data to third-party services for processing. If you did not choose and approve that service, you do not know what happens to your data.
- List every external service your tool connects to (AI APIs, databases, analytics, etc.) 2. Check each one against Springpod's Approved Tools list 3. If any service is not on the approved list, stop and get approval before shipping
Yellow: Standard Build (and above)#
If a field expects a number, it should reject text. If a field expects an email, it should reject "hello."
Unvalidated input is the most common way attackers exploit tools. It can also cause your tool to crash or show wrong data.
- Find every form, text field, or input in your tool 2. Try typing something unexpected in each one (text in a number field, symbols in a name field, an extremely long string) 3. The tool should show a clear message explaining what is expected — not crash or accept bad data silently
Users should see "Something went wrong. Please try again or contact support." Not a stack trace, database name, or file path.
Technical error messages tell attackers exactly how your tool is built, what database you use, and where to find vulnerabilities. They are a roadmap for exploitation.
Orange: Reviewed Build (and above)#
"At rest" means stored in a database. "In transit" means sent between the user's browser and your server. Both need encryption.
If someone gains access to your database or intercepts network traffic, encrypted data is unreadable without the key. Unencrypted data is immediately exposed.
- In transit: Confirmed if you use HTTPS (checked above) 2. At rest: Check your database provider's documentation — most modern services (Supabase, Firebase, AWS RDS) encrypt by default. Confirm this is enabled. 3. If you are not sure, flag it in your Review Request for your technical reviewer to verify
If User A logs in, they must not be able to see User B's information. Not through the interface, not by changing the URL, not through the API.
This is one of the most common security failures in web applications. It is easy to miss because the tool "works" — it just shows the wrong person's data.
- Create two test accounts 2. Log in as Account A and note the URL when viewing personal data 3. Log in as Account B and paste Account A's URL — you should NOT see Account A's data 4. If you can see another account's data, stop and fix this before shipping
Decide before you launch: how long do you keep user data? What happens when that period ends? Document it.
Keeping data forever increases your risk. Many regulations require you to delete data when you no longer need it.
Create a written list of every service your tool sends data to, what data it sends, and why.
You cannot protect data you do not know is leaving your system. This list is required for security reviews and compliance audits.
Red: Protected Build#
A structured review of what personal data you collect, why, how it is stored, who can access it, and when it is deleted. Use a template from your compliance team or see ROLES.md for who can help.
For tools handling protected data (especially data about minors), a Data Protection Impact Assessment (DPIA) may be a legal requirement, not just a best practice.
If your tool is used by or collects data about anyone under 18:
- No behavioural tracking or profiling
- No data sharing with third parties beyond what is strictly necessary
- Parental or guardian notification if required by policy
- Default privacy settings set to maximum protection
Children and young people have special legal protections. In the UK, the age of consent for data processing in online services is 13 (UK GDPR). In the EU, GDPR Article 8 allows member states to set the threshold between 13 and 16. Springpod policy may set stricter limits.
- List every piece of data your tool collects about users under 18 2. For each item: is it strictly necessary for the tool to function? If not, remove it 3. Check if your tool uses any analytics or tracking — disable for minors 4. Check Springpod's policy on parental notification 5. If unsure about any of these, escalate to your designated reviewer
Your designated reviewer (not you) confirms that the tool meets applicable privacy regulations for your users and jurisdiction.
Privacy compliance is a specialist skill. Even well-meaning builders can miss requirements. This is why Red builds require sign-off from a designated reviewer.
Before you go live, write down: what happens if data is exposed? Who gets notified? What is the first action? Where are the credentials to shut things down? Use the Incident Report template.
When something goes wrong, you do not have time to figure out what to do. Having a plan means you respond in minutes, not hours.
- Open your incident response plan (or create one using the Incident Report template) 2. Can you answer: who is called first? How do you turn the tool off? Where are the access credentials? 3. If any of these are blank, fill them in now
If your tool sends personal or protected data to an external service, you need a written agreement with that service about how they handle your data.
You are responsible for your users' data even after you send it to someone else. A data processing agreement makes the third party legally accountable too.
Authentication and access#
Orange: Reviewed Build (and above)#
Public pages (marketing, documentation) can be open. Anything showing personal data requires a login.
Without a login, anyone with the URL can access your users' data.
Use the NCSC's "three random words" method (e.g., "coffeetreeswim"). Block commonly compromised passwords. Do not require special characters or forced rotation — length and randomness matter more than complexity.
The NCSC (the UK's National Cyber Security Centre) recommends three random words as the best balance of strength and memorability. Do not force regular password changes — only require a change when compromise is known or suspected. Lock accounts after 10 failed attempts. Encourage password managers and enable multi-factor authentication wherever possible.
If someone walks away from their computer, the tool should log them out after a reasonable period (e.g., 30 minutes for standard tools, 15 minutes for sensitive data).
An unlocked session on an unattended computer is an open door to someone's data.
Red: Protected Build#
Anyone who can change settings, view all users' data, or modify the tool itself must use multi-factor authentication (a second verification step beyond a password).
Admin accounts are the highest-value target. If an attacker gets one admin password, MFA prevents them from accessing the system.
Keep a record of every login, every data access, and every change to settings. This log must not be editable by the people it tracks.
If something goes wrong, the audit log tells you what happened, when, and who was involved. Without it, you are investigating blind.
What to do if you think something is wrong#
Stop. Do not try to fix security issues alone.
Read When to Escalate and contact your designated reviewer immediately. It is always better to ask and be wrong than to stay silent and be right.
Was this page helpful?