appsec.fyi

Security Comparisons

15 side-by-side breakdowns of commonly confused security concepts.

Most of these pages exist because two things get used interchangeably in conversation and then turn out to mean different things when somebody has to make a decision. SAST and DAST are both "scanning". SSRF and CSRF differ by one letter and share almost nothing. IDOR and BOLA are the same bug under two names, which is worth knowing before you argue about it in a triage queue. Each comparison here is written to settle the distinction and then answer the question underneath it — which one do I actually need.

How to read a comparison like this

Paired-technology questions almost never resolve to "X is better than Y", because the two options usually cover different failure modes on purpose. Three questions do more work than a feature table:

What does each one structurally cannot do? This is the most useful question and the one vendor material never answers. SAST cannot know which code paths execute. A WAF cannot know whether a well-formed request is authorized. A bug bounty cannot tell you what was tested. Those limits are properties of the approach, not gaps a better product closes — so they decide which combination you need rather than which product you buy.

What can your team actually operate? A tool whose output nobody triages is worse than no tool, because it trains people to ignore security alerts. Deployment constraints matter just as much: RASP and IAST need an agent in a supported runtime, SAST needs source you own, DAST needs only a URL. Those constraints frequently decide the question before preference does.

Are you buying discovery or assurance? Continuous adversarial attention and a bounded assessment you can hand an auditor are different products. Organizations routinely buy one and expect the other.

Every page below follows the same shape: a direct answer, the decision framework for that specific pair, a worked example running one scenario through both sides, the tooling on each, and what neither option covers. Where a comparison touches a topic with a full resource collection, it links through.

Testing approaches

Four ways of looking for vulnerabilities, distinguished mainly by where they sit and what they can therefore see.

Engagement models

Who does the testing, on what terms, and which question the result can actually answer.

Vulnerability classes

Pairs that get confused in reports, which causes real problems in triage and severity arguments.

Identity

Two distinctions that account for a large share of real-world access-control failures.

Defensive technique and supply chain

Two pairs where using one as a substitute for the other is the actual failure.