Skip to content
Calcrivo

CSRF Risk Calculator

Rate cross-site request forgery exposure from token design, SameSite cookies, request shape and the value of the forged action.

Inputs

users

Overall Risk Severity

Critical

Likelihood Score

7.50/ 9

Impact Score

9.00/ 9

Risk Score

7.50/ 9

Browser-Level Defence

No usable browser-level defence

Highest-Value Fix

Add a per-session synchroniser token verified on every state change

Step by step

  1. Values used

    Anti-CSRF token = None — 9; SameSite attribute on the session cookie = Not set, relying on browser defaults — 6; Shape of the state-changing request = Form-encoded POST — 6; Step-up authentication on sensitive actions = None — 9; Value of the forged action = Email or password change, i.e. account takeover — 9; Authenticated users exposed = 50,000 users

  2. CSRF Risk

    Likelihood = mean(token strength, SameSite attribute, request shape, step-up authentication); impact = value of the forged action plus a scale uplift for the exposed user base.

  3. Overall Risk Severity

    = Critical

  4. Likelihood Score

    = 7.50 / 9

  5. Impact Score

    = 9.00 / 9

  6. Risk Score

    = 7.50 / 9

  7. Browser-Level Defence

    = No usable browser-level defence

  8. Highest-Value Fix

    = Add a per-session synchroniser token verified on every state change

How it works

SameSite=Lax already blocks cross-site form POSTs in current browsers, so the residual likelihood depends on whether state changes are reachable by top-level GET and whether any user still runs a browser without the default. Impact is the worth of one forged action multiplied out across the exposed user base. CSRF is the cheapest attack to launch — a hidden form on any page the victim visits — and the cheapest to fix, so a Medium or higher here is almost always a missing one-line middleware.

Formula

CSRF Risk

Likelihood = mean(token strength, SameSite attribute, request shape, step-up authentication); impact = value of the forged action plus a scale uplift for the exposed user base.

token
1 synchroniser token … 9 none
sameSite
1 Strict, 4 Lax, 6 unset, 7 None
scaleBoost
0–2 uplift for the number of exposed users

Frequently Asked Questions

How is CSRF Risk calculated?

Likelihood = mean(token strength, SameSite attribute, request shape, step-up authentication); impact = value of the forged action plus a scale uplift for the exposed user base. SameSite=Lax already blocks cross-site form POSTs in current browsers, so the residual likelihood depends on whether state changes are reachable by top-level GET and whether any user still runs a browser without the default. Impact is the worth of one forged action multiplied out across the exposed user base.

Why does CSRF Risk matter?

CSRF is the cheapest attack to launch — a hidden form on any page the victim visits — and the cheapest to fix, so a Medium or higher here is almost always a missing one-line middleware.

What values do I need to enter?

This calculator takes 6 inputs: Anti-CSRF token, SameSite attribute on the session cookie, Shape of the state-changing request, Step-up authentication on sensitive actions, Value of the forged action, Authenticated users exposed. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Is SameSite=Lax enough on its own?

Not for defence in depth. Lax blocks cross-site POST but still sends the cookie on top-level GET navigations, so any state change reachable by GET remains forgeable, and cookies without an explicit attribute behave inconsistently across browsers and API clients. Keep a token as well.

You might also need