What is the OWASP API Top 10?
The OWASP API Security Top 10 is a list of the ten most critical security risks for APIs, most recently updated in 2023. The OWASP list is compiled based on empirical data with analysis from a large community of security experts. OWASP collects vulnerability data from industry sources, such as security researchers, bug bounty platforms, and incident reports, drafts a list of vulnerabilities, and refines through community input and expert review.
Here are the 2023 OWASP API Security Top 10 vulnerabilities in brief:
- API1:2023 Broken Object Level Authorization: A user is able to access or modify data they are not authorized to, such as accessing another user's account.
- API2:2023 Broken Authentication: Weaknesses in user authentication allow attackers to compromise accounts, passwords, sessions, or keys.
- API3:2023 Broken Object Property Level Authorization: This occurs when a user can manipulate or access attributes of an object that they should not have access to, such as changing their own role from "user" to "admin".
- API4:2023 Unrestricted Resource Consumption: API endpoints can be exploited to consume an excessive amount of resources, potentially leading to a denial of service.
- API5:2023 Broken Function Level Authorization: A user can access or perform an action that they are not authorized for, such as a regular user being able to access an administrator's function.
- API6:2023 Unrestricted Access to Sensitive Business Flows: A user can bypass or manipulate business logic, like making multiple payments with a single transaction.
- API7:2023 Server Side Request Forgery: An attacker can force the API to make requests to an arbitrary domain or IP address on their behalf.
- API8:2023 Security Misconfiguration: This includes a wide range of issues, such as improper security settings in the API or its underlying infrastructure.
- API9:2023 Improper Inventory Management: An incomplete or incorrect inventory of all APIs can lead to the discovery of outdated or vulnerable APIs that are no longer being maintained.
- API10:2023 Unsafe Consumption of APIs: Developers may trust data from third-party APIs and fail to apply the same level of security validation, which can introduce vulnerabilities.
We review each of these threats in more detail below.
In this article:
Understanding the API Attack Lifecycle
API attacks often follow a predictable lifecycle that mirrors traditional application attack chains but with nuances specific to APIs:
Reconnaissance: In the first stage, attackers probe for exposed endpoints, analyze API documentation, inspect request/response patterns, and identify potential entry points. Tools like Postman, Burp Suite, or custom scripts are commonly used during this phase.
Authentication and authorization testing: Attackers try to bypass authentication mechanisms or escalate privileges, often exploiting weaknesses like predictable tokens, poorly managed sessions, or missing authorization checks at the object or function level.
Exploitation: Attackers attempt targeting vulnerabilities such as broken object level authorization or injection flaws to access or modify sensitive data. This may also involve chaining multiple issues, like combining improper inventory management with insecure direct object references (IDORs), to maximize impact.
Persistence or abuse: Attackers may leverage access for data exfiltration, service disruption, or financial fraud. This lifecycle highlights the importance of continuously monitoring and securing all stages of API interaction.
The Need for Multi-Layered Protection
APIs require protection at multiple levels because no single control can address the wide range of threats they face. A secure authentication layer may stop unauthorized users, but without proper authorization checks, even legitimate users can perform unauthorized actions. Similarly, rate limiting can help mitigate denial-of-service attempts but won't protect against logic flaws or data leaks.
Effective API security combines preventive, detective, and responsive controls. Preventive controls include authentication, input validation, and schema enforcement. Detective measures like logging, anomaly detection, and runtime protection help identify suspicious behavior. Responsive strategies involve incident response processes and automated threat blocking.
Security must also operate across the entire API lifecycle from design and development to deployment and retirement. This includes practices like secure design reviews, dependency scanning, rigorous testing, and inventory management. Multi-layered protection ensures resilience, even when individual controls fail or are bypassed.
API1:2023 Broken Object Level Authorization (BOLA)
Broken object level authorization (BOLA) remains one of the most common and serious security risks in APIs. This vulnerability occurs when API endpoints fail to properly enforce authorization on object references, allowing attackers to access, modify, or delete data belonging to other users simply by guessing or manipulating object identifiers.
For example, if an API allows a user to retrieve account information by specifying an account ID in the URL, incomplete authorization checks may let one user view or edit someone else’s data. Mitigating BOLA requires strict checks at every endpoint that accesses resources or objects. Authorization must be implemented server-side and should verify not just authentication, but also whether the authenticated user actually has permission to interact with the specified object.
API2:2023 Broken Authentication in API Contexts
Broken authentication refers to weaknesses in how APIs manage identity and session controls, leading to unauthorized access when these processes are bypassed or subverted. Unlike traditional web applications, APIs must handle stateless authentication and may expose multiple endpoints that require unique authentication flows.
Sending tokens over insecure channels, failing to enforce token expiration, or mismanaging session states are all common errors that attackers exploit to impersonate legitimate users or escalate privileges. Securing authentication in APIs goes beyond simple password controls. Robust implementations should include strong token management, support for standards like OAuth or OpenID Connect, and should strictly validate every authentication attempt.
API3:2023 Broken Object Property Level Authorization (BOPLA)
Broken object property level authorization (BOPLA) introduces a finer distinction in API vulnerabilities, focusing on authorization checks at the individual property level of objects returned by the API. Even if a user is entitled to access an object, they may not have access to all its fields.
For example, a standard user may be able to see their own account record but should not be able to see sensitive fields like internal flags, administrative notes, or third-party identifiers. Lack of granular controls at this level enables data exposure that attackers can exploit.
Addressing BOPLA means ensuring that every property in response payloads and request bodies is subject to proper access controls. Developers must implement field-level authorization logic, typically enforced by the backend, to prevent overexposure of sensitive data attributes.
API4:2023 Unrestricted Resource Consumption
APIs without limits on resource consumption present a massive risk surface, easily exploited by attackers or misbehaving clients. Unrestricted resource consumption occurs when APIs allow excessive use of compute, memory, storage, or network bandwidth, leading to denial-of-service (DoS), increased operational costs, or cascading system failures.
These vulnerabilities are particularly dangerous in cloud and microservices contexts where APIs underpin business processes and automation. To prevent these attacks, APIs must enforce strict resource quotas such as rate limiting, response size reductions, and concurrent request controls at both the gateway and backend layers.
API5:2023 Broken Function Level Authorization (BFLA)
Broken function level authorization (BFLA) occurs when APIs fail to verify whether a user is authorized to execute specific actions, even if object-level permissions are enforced. For example, administrative functionalities, such as user management or configuration changes, may be accessible to unauthorized roles because the API only checks authentication or does not enforce sufficient role-based access control (RBAC).
Attackers who gain access to these endpoints can conduct privilege escalation or abuse critical functions. Defending against BFLA requires clearly defined privilege boundaries and tight mapping of business roles to function permissions. Every sensitive operation exposed via the API should trigger explicit access checks, not just authentication.
API6:2023 Unrestricted Access to Sensitive Business Flows
APIs frequently automate business processes, and unrestricted access to sensitive business flows creates opportunities for attackers to manipulate business logic for fraud, abuse, or unauthorized operations. This vulnerability extends beyond technical exploitation to encompass misuse of the legitimate behaviors APIs enable, such as repeated purchases, transaction bypasses, or privilege escalations simply by automating API calls without checks.
Mitigating this risk involves understanding business logic as an attack surface. Organizations should document critical paths, enforce rate limits, and build contextual validation into API endpoints that process business transactions. Continuous monitoring, anomaly detection, and regular reviews of transaction flows help ensure only intended patterns are supported, blocking business logic abuse before it leads to systemic impact or monetary loss.
Uri Dorot
Uri Dorot is a senior product marketing manager at Radware, specializing in application protection solutions, service and trends. With a deep understanding of the cyberthreat landscape, Uri helps bridge the gap between complex cybersecurity concepts and real-world outcomes.
Tips from the Expert:
In my experience, here are tips that can help you better defend against the OWASP API Top 10 beyond the common advice:
Use decoy objects to detect BOLA and BOPLA attempts early: Create “honeytokens” or dummy object IDs/fields in the API that no legitimate user should access. Attempts to access these can indicate enumeration or privilege escalation attempts in progress.
Establish per-client behavioral baselines using ML anomaly models: Most API abuse is subtle and user-contextual. Train lightweight behavioral models (e.g., using request patterns, frequency, parameter shifts) per client or token to detect deviations, like abuse of sensitive business flows or silent recon activity.
Implement dynamic access control based on data sensitivity: Go beyond static RBAC or ABAC. Assess the sensitivity of data at runtime and dynamically tighten access or trigger step-up auth (e.g., MFA) when a request targets more sensitive or privileged data, especially across object properties.
Log and inspect every unexpected 4xx response: API clients are usually deterministic. If logs show frequent 401, 403, or 404s with varied inputs, it may indicate probing or fuzzing. Correlate with source IPs or tokens to isolate attackers attempting to map business logic or discover endpoints.
Use eBPF-based observability to detect low-level API abuse: Kernel-level tools like eBPF (extended Berkeley Packet Filter) can observe API usage patterns below the application layer. They can flag unusual network I/O, system calls, or memory spikes tied to specific API calls—ideal for catching SSRF or abuse patterns.
API7:2023 Server-Side Request Forgery (SSRF) in APIs
Server-side request forgery (SSRF) in APIs happens when an endpoint allows attackers to cause backend servers to make unintended requests, often targeting internal systems inaccessible to the public. SSRF may arise if an API accepts user-supplied URLs or request destinations without validation, and then fetches data or triggers actions on behalf of the client.
This can result in internal data leakage, enumeration of private infrastructure, or remote code execution. To defend against SSRF, APIs must tightly validate any external requests, implement allow-lists for destination hosts, and reject potentially dangerous protocols or IP ranges. Network-level segmentation and firewalls further reduce risk, alongside input sanitization and output filtering.
API8:2023 Security Misconfiguration in API Infrastructure
API infrastructures often consist of layered components (API gateways, reverse proxies, microservices, databases) each introducing opportunities for misconfiguration. Security misconfiguration in APIs may manifest as default credentials, unnecessary HTTP methods, overly permissive cross-origin resource sharing (CORS) settings, missing encryption, or inconsistent error handling.
Attackers actively look for these weaknesses to gain unauthorized access, intercept data, or disrupt services. Preventing misconfiguration requires strong change management, automation, and adherence to configuration baselines. Organizations should establish consistent deployment patterns, use secure-by-default templates, and regularly audit configurations for drift.
API9:2023 Improper Inventory Management
APIs evolve rapidly, and improper inventory management creates risks when organizations have incomplete visibility into the APIs they expose. Orphaned, deprecated, or undocumented endpoints become easy targets for attackers, especially in complex environments with continuous integration and deployment. Without accurate asset tracking, security monitoring and risk assessment are unreliable, leading to blind spots and unpatched vulnerabilities.
Solving this challenge requires automated API discovery, continuous cataloging, and rigorous version control. Visibility must extend to internal, partner, and public APIs. Effective inventory management enables timely incident response, mapping of data flows, and proper decommissioning of obsolete components. Organizations need reliable processes and automated tooling to keep pace with rapid growth and evolving API portfolios.
API10:2023 Unsafe Consumption of APIs
APIs commonly depend on third-party or partner services, introducing risks if external APIs are integrated or consumed without proper safeguards. Unsafe consumption of APIs includes trusting responses without validation, failing to handle errors or malicious payloads, and exposing sensitive credentials in outbound requests.
Attackers may manipulate external dependencies or inject malicious data to compromise the local system or trigger data exfiltration. Mitigating this risk requires adopting defensive consumption patterns, including rigorous response validation, fallback mechanisms, and secure storage of connection secrets. Ongoing vetting of third-party APIs for security maturity, compliance, and reliability is also essential.
The release of the OWASP API Top 10 2023 reflects significant shifts in the threat landscape as compared to the 2019 edition. Notably, the 2023 update introduces new categories such as unrestricted resource consumption and unrestricted access to sensitive business flows, acknowledging the increased risk associated with API misuse at scale and business logic exploitation.
These changes represent a broader understanding of how APIs are attacked in practice, emphasizing threats that impact system availability and business integrity rather than focusing solely on data leakage. Additionally, the 2023 edition consolidates and redefines several existing categories to provide greater clarity and actionable guidance.
For example, the concept of authorization vulnerabilities is split into more granular issues—broken object level authorization (BOLA) and broken object property level authorization (BOPLA)—allowing for more precise risk mitigation strategies. This granularity helps organizations tailor their defenses to technical challenges.
Here are some of the ways that organizations can better protect themselves against risks such as the OWASP API Top 10.
1. Enforcing Strong Object- and Property-Level Authorization
To prevent unauthorized access to sensitive resources, APIs must implement strict controls at both the object and property levels. This involves enforcing precise access rules based on user roles, ownership, and the business context of each request.
- Enforce authorization at both the object and property levels to prevent broken object level authorization (BOLA) and broken object property level authorization (BOPLA). Define granular access controls that align with user roles and scopes.
- Use allowlist-based access enforcement to explicitly define which users or roles can access specific resources or fields. Avoid relying on deny lists or default access.
- Apply business logic checks to ensure users cannot traverse to unauthorized objects or manipulate fields beyond their privileges. Validate ownership and context-specific constraints on each request.
- Validate authorization after authentication and any contextual checks. Ensure that all data access and operations are gated by explicit and validated access policies.
2. Implementing Robust Authentication Flows
Strong authentication flows are critical to defending against unauthorized access and automated attacks. A secure implementation combines multiple layers of protection to verify user identity and detect suspicious behavior.
- Enforce multi-factor authentication (MFA), strong credential policies, and secure session management. Ensure sessions are short-lived, tied to specific devices, and protected against hijacking.
- Protect against brute-force and credential-stuffing attacks by monitoring login attempts and blocking automated tools. Implement account lockouts or challenge mechanisms after repeated failures.
- Use rate limiting, behavioral detection, and IP/device risk scoring to identify abnormal access patterns. Dynamically adjust authentication requirements based on the assessed risk.
3. Designing APIs for Predictable Resource Consumption
To ensure APIs scale reliably and resist abuse, it’s important to design for predictable resource usage. This involves enforcing limits and validating requests to prevent excessive load or misuse of expensive operations.
- Apply quotas, timeouts, and concurrency limits to restrict how often and how long clients can interact with the API. Tailor these limits based on user roles or subscription tiers.
- Include business logic validation to detect and block abuse of costly operations, such as repeated initiation of resource-heavy workflows or excessive use of nested queries.
- Restrict access to high-cost endpoints using role- and context-based rules. Only authorized users should trigger operations with significant processing or financial impact.
4. Hardening API Infrastructure Configurations
Misconfigured infrastructure can expose APIs to serious vulnerabilities. Securing the API environment requires consistent configurations, automated validation, and layered defenses across the stack.
- Standardize secure defaults, enforce schema validation, and apply strict input handling. Validate both request structure and content to reduce the risk of injection and deserialization attacks.
- Reduce misconfigurations through automated security policies and continuous environment scanning. Use infrastructure-as-code (IaC) tools to detect and fix insecure settings before deployment.
- Integrate multi-layered protection across layers 3 through 7, including network-level filtering, protocol enforcement, and application-layer controls. Each layer should enforce consistent security expectations.
5. Maintaining Accurate and Automated API Inventories
Keeping an up-to-date inventory of all APIs is essential for managing security risks and preventing exposure from forgotten or unmonitored endpoints. Automation aids in maintaining visibility.
- Continuously discover shadow, dormant, or orphaned APIs using automated runtime API discovery. Relying solely on documentation or source code is not sufficient to capture all active endpoints.
- Track API versions, schemas, and deprecation status to ensure outdated or unsupported interfaces are properly managed or retired. Maintain clear versioning policies across environments.
- Apply schema enforcement at runtime to validate incoming requests against expected structures. This helps detect unexpected usage and prevents exposure from undocumented inputs.
6. Securing Integrations and Outbound API Calls
APIs often depend on external services, making it essential to secure both integrations and outbound calls. Improperly handled interactions can lead to data exposure, logic abuse, or server-side request forgery (SSRF).
- Validate both upstream and downstream dependencies to ensure third-party services meet security standards. Monitor for changes that could introduce risks or break trust boundaries.
- Apply logic-level validation on chained workflows and service integrations. Confirm that each step in a multi-system process enforces proper authorization and input validation.
- Implement SSRF protections by using outbound allowlists and strict destination verification. Ensure the API can only communicate with approved external services and validate all request parameters.
7. Applying Schema Validation and Input Controls
Schema validation and input controls are essential for reducing attack surface and ensuring consistent request behavior. APIs should strictly enforce what input is allowed and reject anything unexpected.
- Enforce strict request and response schemas to define exactly what data is accepted and returned. Validate against these schemas at runtime to catch malformed or malicious requests early.
- Block unexpected fields, data types, or deeply nested queries. This is especially critical in GraphQL APIs to prevent introspection abuse, excessive query depth, or data leakage.
- Apply consistent input controls across all endpoints, including checks on parameter length, format, and allowed values. Use centralized validation logic to reduce gaps in enforcement.
8. Ensuring Visibility into API Workflows and Business Logic
Understanding and securing API workflows requires full visibility into how users interact with business logic across multiple steps. Security controls must account for the intended sequence and context of operations.
- Map complete API workflows, such as login → transaction → confirmation, to understand typical usage patterns. Use this mapping to detect deviations from expected sequences or abuse of intermediate steps.
- Deploy business logic abuse (BLA)-focused policies that define and enforce valid transitions between API functions. Block out-of-sequence or contextually invalid operations.
- Monitor contextual attributes like user roles, step order, and environment (e.g., production vs. test) to ensure that API calls are consistent with legitimate workflows. Use this data to flag or block anomalous behavior.
9. Business Logic and GraphQL-Specific Protection
GraphQL APIs introduce unique risks due to their flexible query structure and depth. Protecting them requires both general business logic controls and GraphQL-specific enforcement mechanisms.
- Apply resolvers, depth limits, and query complexity checks to prevent resource exhaustion and abuse. Restrict how deeply queries can nest and how much data they can request in a single call.
- Prevent business logic bypass by validating nested queries and blocking high-cost operations that could be triggered through complex query chaining.
- Enforce per-field and per-operation authorization to control access at a granular level. Ensure each field or mutation respects the caller's role, scope, and contextual permissions.
10. API Attack Lifecycle Visibility and Multi-Layered Protection
Protecting APIs requires visibility across the full attack lifecycle, from initial probing to exploitation and beyond. A unified, layered defense helps detect, prevent, and respond to threats in real time.
- Detect all phases of the API attack lifecycle, including reconnaissance, enumeration, exploitation, and post-exploitation activities. Monitor for unusual patterns in access, payloads, and response behaviors.
- Combine WAF, bot mitigation, behavioral analytics, and API-specific security controls into a single integrated model. Correlate signals across layers to improve detection accuracy.
- Support both preventive and responsive controls. Block known attack patterns in real time and enable fast incident response through alerting, logging, and automated remediation workflows.
11. Runtime API Security Posture Management (RASP-M)
Effective API security posture management must be grounded in real-time data from live environments. This approach helps identify practical risks and prioritize remediation based on actual usage and threat activity.
- Perform risk assessments using live production traffic instead of relying solely on static scans. This reveals exploitable vulnerabilities that static tools often miss, such as logic flaws and broken access controls.
- Identify misconfigurations, overly broad permissions, missing authorization checks, and sensitive data exposures as they occur in real-world usage.
- Prioritize fixes based on actual attack patterns and exposure levels. Align remediation efforts with business impact to focus resources where they matter most.
Securing modern APIs requires more than basic authentication and gateway controls. The OWASP API Security Top 10 highlights how attackers increasingly exploit business logic flaws, authorization gaps (BOLA/BOPLA/BFLA), uncontrolled resource consumption, and poor API inventory management. Radware helps organizations reduce these risks by combining runtime API discovery, schema enforcement, behavioral detection, and automated abuse prevention, making it easier to implement a multi-layered API security strategy aligned with the API attack lifecycle.
Radware API Security helps organizations discover and govern APIs across cloud-native and hybrid environments, including undocumented, shadow, and dormant APIs that often become unmonitored attack surfaces. At runtime, it enforces schema validation and positive security models to block unexpected fields, malformed payloads, and abnormal request structures—controls that are critical for reducing injection risks, unsafe API consumption, and GraphQL-specific threats such as introspection abuse, excessive query depth, or high-complexity queries. By maintaining an accurate inventory of exposed APIs and versions, Radware API Protection also supports stronger posture management by revealing mismatches between documented behavior and real-world production traffic.
To address OWASP API Top 10 risks related to business logic abuse, authentication attacks, and unrestricted resource consumption, Radware applies behavioral analysis to detect anomalous sequences and usage patterns, such as excessive enumeration, brute-force attempts, credential stuffing, workflow misuse, and high-cost endpoint abuse. These protections integrate naturally with Cloud WAF Service for layered application and API defenses, and with Bot Manager to mitigate automated abuse that often drives reconnaissance, exploitation, and scraping. For large-scale disruption attempts that can mask API exploitation or degrade availability, Cloud DDoS Protection Service and DefensePro help ensure API continuity during volumetric and multi-vector attacks. Together, these capabilities strengthen API security across the full lifecycle, helping organizations enforce authorization boundaries, reduce attack surface, and maintain continuous visibility into high-risk API workflows.