Server-side security protects the bank’s infrastructure and back-end processing. Client-side protection focuses on the user device, browser, and session where attackers can alter transactions, capture authentication data, or inject malicious code. In open banking, both layers matter, but client-side protection addresses threats that server controls cannot reliably see or stop.
How server-side security and client-side protection split the open banking attack surface
Server-side security is about protecting the bank, API platform, and backend controls that validate requests, enforce policy, and move money safely. Client-side protection is about hardening the browser, device, and session where the customer actually initiates or approves activity. The distinction matters because open banking often fails at the handoff between trusted server logic and an untrusted user environment.
On the server side, the key question is whether the bank can trust the request, the identity, the token, and the business rule being enforced. On the client side, the key question is whether the session, user interface, and local environment can be manipulated before the server even sees a clean transaction intent. That is why a secure backend does not automatically mean a secure customer journey.
In practice, server-side controls are strongest for validation, authorization, logging, rate limiting, and fraud analytics that operate on what the bank can observe directly. Client-side protection is stronger for resisting session hijack, malicious scripts, UI redress, token theft, and transaction tampering that happen in the browser or mobile app. Open banking needs both, because the attack can begin in the client and only later reach the server.
What server-side controls do better, and where they stop
Server-side security is the control plane. It should verify the legitimacy of the API call, apply least privilege, check consent and scope, and reject any request that does not match policy. It is also where anomaly detection, audit trails, and secure backend segmentation belong. For open banking, this is the layer that can decide whether a payment or account access request is allowed at all.
That layer, however, cannot fully see what happened inside the customer’s browser before the request arrived. If the user was tricked into approving a different payee, if a malicious extension modified the form, or if a token was stolen after login, the server may only see a technically valid request. Server-side security can limit blast radius, but it cannot by itself guarantee user intent.
Open banking APIs are therefore only part of the story. If the backend is robust but the client is compromised, the system may still execute an attacker-influenced action that looks legitimate from the server’s perspective. Good backend design assumes that the front end and the network path are not trustworthy.
Why client-side protection is a separate security problem
Client-side protection focuses on the user device, browser, and session because that is where authentication data, transaction details, and approval workflows can be intercepted or altered. This is the domain of secure browser handling, anti-tamper app design, session binding, and transaction signing or dynamic approval techniques that help preserve user intent.
The important distinction is that client-side issues are not just weaker versions of server-side issues. They include attacks that only exist because the user is present in an interactive environment, such as phishing overlays, malicious JavaScript, man-in-the-browser activity, clipboard theft, and real-time manipulation of payment details. These threats often bypass backend assurance until after the customer has already approved the wrong action.
For that reason, client-side protection is not about replacing server controls. It is about adding a second trust boundary around the point where human approval and digital action meet. In open banking, that boundary is especially important because the customer is often authorising high-value, time-sensitive financial activity from a device the bank does not manage.
How the two layers work together in open banking
The difference between the layers is best understood as prevention versus verification across different trust zones. Server-side controls prevent unsafe processing, while client-side controls reduce the chance that the user is induced, coerced, or silently manipulated into authorising the wrong thing. The strongest open banking design treats them as complementary, not interchangeable.
That is also why open banking security often depends on transaction-level context. If the server can show the user the payee, amount, and purpose in a way that is bound to the approval step, then client-side tampering becomes harder to hide. If the backend then validates that the approval matches the request it received, the bank gets a meaningful check against both user-interface manipulation and backend abuse.
In practice, teams should think in terms of different failure domains. Server-side failures are usually about excessive privilege, broken validation, weak API policy, or poor segmentation. Client-side failures are usually about session compromise, code injection, malicious overlays, or weak device trust. Open banking is secure only when both domains are addressed at the same time.
Risk and Threat Considerations
Open banking creates a narrow trust gap between what the customer sees and what the bank processes. Attackers target that gap because client compromise can turn a valid approval flow into an attacker-directed payment, data release, or account action even when backend controls remain intact.
Failure mechanism: The attacker alters the browser, mobile session, or approval content so the customer authorises one action while the bank receives another, or so valid credentials and tokens are captured and reused before the server can distinguish them from legitimate traffic.
Impact: The result can be unauthorised transfers, disclosure of account data, fraudulent consent, or session takeover that bypasses controls designed only for the server side. The practical risk is that a well-protected API can still execute an unsafe business outcome if the client environment is not protected.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP API Security Top 10 addresses the attack surface, NIST SP 800-53 Rev 5, CIS Controls v8 and NIST CSF 2.0 set the technical controls, and ISO/IEC 27001:2022 defines the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP API Security Top 10 | API5 — Broken Function Level Authorization | Open banking APIs must enforce which actions are allowed. |
| Recommendation — Enforce function-level authorization on payment and account APIs before any backend action executes. | ||
| NIST SP 800-53 Rev 5 | IA-2 — Identification and Authentication (Organizational Users) | Open banking depends on strong authenticated access for internal operators and systems. |
| IA-9 — Identification and Authentication (Service and Non-Organizational Users) | Open banking often relies on system-to-system authentication for APIs and services. | |
| AC-6 — Least Privilege | Server-side risk is amplified when backend permissions exceed what the workflow needs. | |
| Recommendation — Require strong identification and authentication for any privileged backend access. Authenticate service-to-service open banking traffic with non-shared credentials and strong binding. Restrict backend and API privileges to the minimum required for each payment flow. | ||
| ISO/IEC 27001:2022 | A.8.24 — Use of cryptography | Open banking needs protected tokens and transaction data in transit and at rest. |
| Recommendation — Apply cryptographic protection to sensitive open banking credentials, tokens, and approvals. | ||
| CIS Controls v8 | CIS-16 — Application Software Security | Open banking spans secure API design and client application exposure. |
| Recommendation — Harden application and API security testing around the full payment journey. | ||
| NIST CSF 2.0 | PR.AA-05 — Least Privilege | Open banking needs both API authorization and tight access scoping. |
| Recommendation — Limit access paths and privileges to the smallest set needed for the banking action. | ||
Practitioner Guidance
What to prioritise: Treat transaction integrity and user-intent binding as the main design objective, not just login security. In open banking, the highest-value control is often the one that preserves the exact payment details the user approved.
What to verify: Check that server-side validation, consent enforcement, and logging are paired with client-side protections that resist page tampering, session abuse, and approval manipulation. If either side is missing, assume the other side will be bypassed in the real attack path.
Common mistake: Assuming a strong API or secure backend is enough because the customer still clicked approve. In this model, a legitimate click can still be the product of deception or manipulation, so the approval flow itself must be treated as security-sensitive.
Practitioner takeaway: Open banking security is not a single control problem, it is a trust-boundary problem, and the bank must protect both the server decision and the client-side moment of approval.
Related resources from NHI Mgmt Group
- What is the difference between server-side security controls and client-side protection for payment pages?
- What is the difference between client-side validation and server-side validation in game security?
- What is the difference between client-side protection and regulatory compliance in GenAI security?
- What is the difference between basic API protection and dedicated API security in open banking?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 28, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org