ContentsThe library

The Mistakes Behind Most Breaches

The Caller Is Not Running Your Software

Last timeWhen Data Becomes an Instruction

A check in the page you shipped is a convenience for the honest. The caller can be a one-line command, and then only the checks on your side exist at all.

Whose software is calling

You wrote a page, or an application, and it contains checks. The quantity

must be at least one. The discount code must be valid. This button is

hidden unless the person is an administrator. The price shown is the price

from the catalogue.

Then you shipped that code to a machine somebody else owns, and the

situation is this: they can read it, edit it, delete the checks, or never

load it at all. The browser has a console. The application can be run

under a debugger. The traffic can be watched and replayed. And none of

that is even necessary, because the simplest approach skips your software

entirely and sends the request directly with a one-line command.

FIG 1Two callers, one server
Note the shape: the two callers converge before they reach you, so there is no point at which you could separate them. Any defence that assumes the request came from your own software is a defence against a caller who has chosen to use it.

It is worth being precise about what this does and does not mean. The

checks in the shipped application are not useless and you should keep

writing them. They are a feature for honest users. They are simply not a

control, because a control is something the subject cannot remove.

Telling the two kinds apart

So each check in a feature is one of two things, and the test to tell

them apart is a single question: where does this run?

The lesson stops here

3 more paragraphs to go

You have read the opening. The rest of the argument, the problems that check whether it landed, and the lines worth keeping at the end all come with a plan.

The first lesson of every course in the library reads the whole way through, free, so you can see exactly what the rest of them are.

See the planThe contents

This is the reading half

Starting the course gives you your own copy of it. Every idea on every page has problems standing under it, marked with a reason rather than a tick, and any sentence you do not believe can be opened and argued with. None of that can happen on a page nobody owns.

The contents

The rest of this course

  1. 01One Mistake, Wearing Different Clothes
  2. 02The Caller Is Not Running Your Softwareyou are here
  3. 03The Most Common Serious Finding There Isopening only
  4. 04Follow It From the Field to the Place It Runsopening only
  5. 05Your Server Can Reach Things Nobody Outside Canopening only
  6. 06Nobody Chose This, Which Is the Problemopening only
  7. 07Most of What You Ship, You Did Not Writeopening only
  8. 08Could You Reconstruct It Afterwardsopening only

Read alongside