Your finance administrator signs into the customer portal, then opens another website in a second tab. Could that website cause the portal to change a payout address using the administrator’s existing session?

A CSRF security assessment tests whether a browser can be induced to submit an unwanted action to an application where the user is already authenticated. Cross-site request forgery becomes a business risk when the application treats the presence of a session as sufficient evidence that the user intended the change.

The right starting point is an inventory of meaningful actions: changing account details, adding users, rotating credentials, approving transactions, or deleting records. The assessment then establishes which requests a browser can actually send and whether the server rejects unwanted changes.

Start with the action and its authentication mechanism

Map each sensitive action to its endpoint, accepted method, request format, and authentication mechanism. Cookie-authenticated browser requests deserve particular attention because the browser can attach eligible cookies automatically. An API using a bearer token explicitly supplied by trusted application code has a different exposure model, which still needs to be verified.

Use a harmless stand-in for the real business operation. For a payout workflow, change a synthetic account’s notification preference or a designated test payment record. The test should demonstrate the same protection boundary without moving money or changing production customer details.

Include older forms, administrative pages, alternate API routes, and mobile web interfaces. A new frontend may protect its requests while an older route still accepts the same change without the expected validation. Document each reachable path to the business action.

Verify that the server requires evidence of an intended request

OWASP’s CSRF prevention guidance describes established defenses including framework protections, validated tokens, origin checks, and request metadata. Use the application’s architecture to choose and test the relevant controls.

If the application relies on a CSRF token, verify the server rejects an absent or invalid token. With separate controlled sessions, test whether a token from one session is accepted for another when the design requires session binding. A token visible in a form proves little until the backend validates it.

If origin validation is the control, inspect the exact permitted origins and the handling of missing or unexpected headers. Broad exceptions added for a legacy integration should have a documented purpose. Check that reverse proxies do not cause the application to evaluate the wrong destination origin.

A sensitive state change should not occur through an ordinary read-only navigation. Review routes using GET for operations such as removing a member or approving a request. Correcting the method is part of the fix, but the replacement route still needs suitable request validation.

SameSite cookie settings influence when a browser sends cookies. Verify the actual session cookie attributes and browser behavior in the relevant workflow. Authentication redirects and embedded applications may create legitimate requirements that the assessment must account for.

Do not assume a sibling subdomain is outside the same-site boundary. An organization can have a trusted account portal and a less trusted marketing or user-content service under related hostnames. Review that relationship when evaluating the protection afforded by cookie settings.

OWASP treats SameSite as a defense-in-depth measure in many application designs. Your report should explain which observed condition blocks the unwanted request, rather than equating one cookie attribute with complete coverage.

CORS also needs precise interpretation. Restricting whether another origin can read a response does not by itself establish that the application rejected a state-changing request. If the application relies on a required custom header and browser preflight behavior, verify that requirement on the server and check for alternate request formats that avoid it.

Reproduce the browser path and inspect the saved result

A command-line request with manually attached cookies does not prove that a separate website could cause the same request in a user’s browser. Reproduce the proposed scenario with a controlled origin, a designated test user, and the browsers relevant to the application.

Record whether the session was attached, which protection checks ran, and whether the application changed state. Inspect the resulting account or transaction record after the attempt. A blocked response and an unchanged record establish more than a screenshot of a test page.

Keep the demonstrated impact specific. A reversible profile preference is different from a new administrator or a financial change. Assess the privileges the affected user would need and the actual conditions required for the browser path to work. Do not inflate a theoretical request into a confirmed exploit.

Investigate exceptions that bypass the main protection

Many applications apply request protection centrally, then exempt endpoints for integrations. Review that exception list against the actual authentication behavior. A webhook that validates a service signature has different requirements from a browser endpoint accepting the user’s session cookie. Sharing a URL prefix does not make those mechanisms interchangeable.

For each exception, ask who owns it, why it exists, and what prevents an unwanted action. Check whether the endpoint accepts more than one authentication method. An API intended for token-authenticated clients may also accept the browser session as a convenience; that fallback can change its CSRF exposure.

Test content-type handling with the development team. If the endpoint is intended to accept only JSON plus a required application header, establish whether other accepted formats reach the same operation without that header. Keep the test focused on the observed parser and browser behavior rather than an abstract list of possible payloads.

Review login and account-linking flows separately. Their outcome may change which account the browser uses or which external identity becomes connected. Define the expected user decision and verify the flow’s request binding. Do not assume that a route has no security consequence merely because it appears before the main authenticated dashboard.

For each confirmed gap, record the narrowest affected route and the shared component responsible. A fix in middleware should cover the relevant route family, while an endpoint-specific fix needs a documented reason. That distinction helps the team choose regression cases that catch the same mistake elsewhere.

Retest the fix alongside ordinary customer workflows

After remediation, repeat the original browser scenario, invalid-token cases, and alternate routes. Confirm the unwanted change fails before it takes effect. Then exercise the normal frontend and approved integrations to ensure legitimate requests still complete.

For high-impact operations, consider whether the product also needs fresh authentication or a user confirmation tied to the specific transaction. Such controls should serve a defined business purpose and accompany the underlying request protection.

Agree these cases in a Ceron application assessment’s scope, including permitted actions, accounts, browsers, and stop conditions. Testing authenticated business actions requires more access than an external website check. The deliverable should identify the demonstrated path, the business impact, the fix, and its verified retest.

CSRF assessment FAQs

Does HTTPS prevent CSRF? HTTPS protects traffic in transit. It does not establish that the signed-in user intended a particular state change. Request protection must address that separate question.

Does every API need the same CSRF control? No. Evaluate how credentials reach the endpoint and what another origin can cause the browser to send. Cookie authentication and explicitly supplied authorization headers have different properties.

What counts as proof that the issue is fixed? Repeat the demonstrated browser path and verify that no unauthorized state change occurs. Check the server decision and confirm the intended application workflow still succeeds.

Include sensitive business actions in your next assessment

Use Ceron’s website security audit guide to define authenticated coverage. The WAF assessment guide explains why blocked traffic alone is insufficient evidence of application safety. Discuss your application assessment with Ceron. The finance scenario is illustrative; it is not a reported customer incident.

Back to the blogExplore Ceron