An AI tool that does not just answer but takes actions for you: reading files, running commands, calling other services.
In the bank: The new hire who is allowed to move money, not just talk about it.
Short definitions of the security words in the guides, each with the bank version. Where a guide goes deeper, it is linked.
An AI tool that does not just answer but takes actions for you: reading files, running commands, calling other services.
In the bank: The new hire who is allowed to move money, not just talk about it.
The set of requests a program accepts from other programs. Your website’s buttons usually call your API behind the scenes.
In the bank: The teller window: the only official way to ask the bank for anything.
Read:Routes without authenticationExposed API docs (OpenAPI)
A long secret string that proves a program is allowed to use a service. Anyone who has it can act as you.
In the bank: A key to the vault. Whoever holds it gets in, no questions asked.
Read:Secrets in the browserSecrets in git historySecrets leaked via AI tools
Checking who someone is: a password, a code, a login link.
In the bank: Showing ID at the desk.
Read:Weak login checksSession & token storagePassword reset flaws
Checking what a known person is allowed to do. Being logged in is not the same as being allowed.
In the bank: Knowing which accounts a customer may open, not just that they are a customer.
Read:IDOR / BOLAPrivilege escalationRoutes without authentication
Trying many guesses, usually by machine, until one works.
In the bank: A robber trying every PIN at the cash machine.
A mistake in the rules of your app rather than in a technical setting, such as a discount code that can be reused forever.
In the bank: A policy with a loophole, even though every door is locked.
A packaged app plus everything it needs to run. How it is configured decides how much damage a break-in can do.
In the bank: A sealed room in the building. Weak walls let trouble spread to the next room.
A rule your site sends to the browser listing which scripts and sources the page may load, so injected ones are refused.
In the bank: A guest list for what may be brought into the lobby.
A small piece of data the browser stores for a site and sends back with each request. Often it holds the login session.
In the bank: The wristband you are given after showing ID.
Browser rules about which other websites may read responses from your site. Set too loosely, any website can.
In the bank: Which outside messengers the teller will hand statements to.
Read:CORS
Tricking a logged-in person’s browser into sending a request they never meant to make.
In the bank: A forged slip carried in on a real customer’s wristband.
Read:CSRF
A public ID number for a known security flaw in some software, so everyone can refer to the same one.
In the bank: A recall notice for a lock model.
Code written by someone else that your app uses, usually installed by a package manager.
In the bank: A supplier whose parts are built into your building.
Read:Vulnerable dependencies (CVEs)Slopsquatting / hallucinated packagesSubresource Integrity (SRI)
One address on your API that does one job, such as /api/orders.
In the bank: One specific window or door.
Read:Hidden endpointsExposed files & risky HTTP methodsRoutes without authentication
A setting, often a secret, given to your app from outside its code. A .env file holds them locally and must not be committed.
In the bank: The sealed envelope of keys kept apart from the blueprints.
Read:Secrets in git historySecrets leaked via AI toolsSecrets in the browser
Sending lots of odd, unexpected input to see what breaks or leaks.
In the bank: Pushing every strange slip through the window to see which one confuses the teller.
A way for apps to ask an API for exactly the data they want. If left open, it can let outsiders browse your whole data model.
In the bank: A window that answers any question phrased the right way.
Read:GraphQL exposure
When an AI tool states something confidently that is not true, such as a software package that does not exist.
In the bank: The new hire who invents a supplier’s name and orders from it.
Read:Slopsquatting / hallucinated packagesTrusting unreviewed AI code
Changing an ID in a request (like /orders/42 to /orders/43) and getting someone else’s data because the app never checked the owner.
In the bank: Asking for account 1043 and being handed it, though it is not yours.
Read:IDOR / BOLA
Describing servers, networks and permissions in files, so they can be created repeatably. A mistake in the file is a mistake everywhere it runs.
In the bank: The building plans. A flaw drawn in is built into every copy.
Sneaking instructions into input so the system runs them as commands rather than treating them as plain data.
In the bank: A slip that gives the teller orders instead of asking for a balance.
A signed token a server hands out to say who you are and what you may do. If it is accepted without proper checks, it can be forged.
In the bank: A signed pass the guard reads at each door.
Giving a person, program or AI tool only the access it needs for its job, and nothing more.
In the bank: Handing the new hire one drawer key, not the master.
A file recording the exact versions of every dependency installed, so builds are repeatable and changes are visible.
In the bank: The delivery manifest listing exactly which parts arrived.
Read:Slopsquatting / hallucinated packagesVulnerable dependencies (CVEs)
An app that copies every field from a request into a record, so someone can set fields they should not, like “isAdmin”.
In the bank: A form where you can also write your own job title in the staff column.
Read:Mass assignment
A standard way to connect AI tools to outside tools and data. Each connection widens what the AI can reach.
In the bank: Extra doors cut into the building for the new hire.
Code that runs on requests before your main logic, often to check login. Routes it does not cover are unprotected.
In the bank: The guard at the door. A door without a guard is just a door.
A secure (HTTPS) page loading something over plain HTTP, which can be read or changed in transit.
In the bank: An armored truck with one unlocked leg of the route.
Read:Mixed content
A link on your site that can be made to send visitors to any other site, lending your good name to a phishing link.
In the bank: The greeter who walks you anywhere you point.
Read:Open redirect
A machine-readable description of every endpoint in an API. Useful to you, and to anyone who finds it exposed.
In the bank: The staff directory of every window and what it does.
Gaining more access than you were given, such as an ordinary user acting as an admin.
In the bank: A customer who walks into the manager’s office.
Read:Privilege escalation
Hiding instructions in content an AI tool reads, so it follows them as if you had given them.
In the bank: A note slipped into the new hire’s pile that says “transfer the money”.
Read:Prompt injection
A flaw that appears when two requests arrive at nearly the same moment and the app handles them in the wrong order.
In the bank: Two withdrawals at once, both seeing the full balance.
Read:Race conditions
Capping how many requests one person or program can make in a period of time.
In the bank: A limit on how many PIN tries the machine allows.
Read:Missing rate limits
Database rules that decide which rows each user may read or change, enforced by the database itself.
In the bank: The vault’s own lock on each deposit box, not just the front door.
Read:Database access rules (RLS & Firebase rules)Insecure database schemas
Anything that grants access and must stay private: passwords, API keys, tokens, signing keys.
In the bank: Keys and codes. If they are loose, the locks do not matter.
Read:Secrets in git historySecrets in the browserSecrets leaked via AI tools
Instructions your server sends with each page telling the browser to apply extra protections.
In the bank: Standing orders posted at the entrance.
Read:Security headers
The period during which the app remembers you are logged in, usually tracked with a cookie or token.
In the bank: Your visit after the ID check, until you leave.
Publishing a malicious package under a name that AI tools tend to make up, hoping someone installs it.
In the bank: Setting up a fake supplier at the address the new hire keeps inventing.
A file that maps your shipped, squashed code back to the readable original. Left public, it hands over your source.
In the bank: The blueprints left on the front desk.
Read:Exposed source maps
A fingerprint you attach to an outside script so the browser refuses it if it has been changed.
In the bank: A tamper-evident seal on a vendor’s delivery.
Getting your own server to make a request to somewhere the attacker cannot reach directly, such as an internal system.
In the bank: Talking the teller into fetching files from the staff-only back office.
Getting a site to run an attacker’s script in other people’s browsers, where it can act as them.
In the bank: A rogue notice pinned to the lobby board that tells visitors to hand over their keys.
These are short simplifications, not complete definitions. Like the guides, they were drafted with AI assistance and have not yet been reviewed by an independent security specialist; see how the guides are made and checked.