{"id":29756,"date":"2019-11-06T07:41:20","date_gmt":"2019-11-06T07:41:20","guid":{"rendered":"https:\/\/www.checkmarx.com\/?p=29756"},"modified":"2024-08-15T13:30:49","modified_gmt":"2024-08-15T13:30:49","slug":"breaking-down-owasp-api-security-top10-part1","status":"publish","type":"post","link":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/","title":{"rendered":"Breaking Down the OWASP API Security Top 10 (Part 1)"},"content":{"rendered":"<p>As a result of a broadening threat landscape and the ever-increasing usage of <span id=\"urn:enhancement-91e51db4\" class=\"textannotation disambiguated wl-thing\">APIs<\/span>, the <a href=\"https:\/\/owasp.org\/www-project-api-security\/\">OWASP API Security Top 10 Project <\/a>was launched. From the start, the project was designed to help organizations, <span id=\"urn:enhancement-c9921773\" class=\"textannotation disambiguated wl-thing\">developers<\/span>, and <span id=\"urn:enhancement-23e3b10c\" class=\"textannotation disambiguated wl-thing\">application<\/span> security teams become more aware of the risks associated with <span id=\"urn:enhancement-f77be482\" class=\"textannotation disambiguated wl-thing\">APIs<\/span>. This past September, the <a href=\"https:\/\/github.com\/OWASP\/API-Security\/raw\/master\/2019\/en\/dist\/owasp-api-security-top-10.pdf\">OWASP API Security Top 10 release candidate (RC)<\/a> was finalized and published on <a href=\"https:\/\/owasp.org\/www-project-api-security\/\">OWASP<\/a>.<br>\nIn my previous blog, I provided a high-level view of the interaction between <span id=\"urn:enhancement-f5df9886\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoints, modern apps, and backend servers, in addition to how they\u2019re different from their traditional browser-based counterparts. I also discussed why this project was so important to the contributors and industry overall. In this blog, I aim to clarify the first five (5) risks by highlighting some of the possible attack scenarios to help organizations and end-users understand the dangers associated with deficient <span id=\"urn:enhancement-219847c9\" class=\"textannotation disambiguated wl-thing\">API<\/span> implementations. The following discussion follows the same order as found in the OWASP <span id=\"urn:enhancement-c5747014\" class=\"textannotation disambiguated wl-thing\">API<\/span> Security Top 10.<br>\n<strong>API1:2019 &#8211; Broken Object Level Authorization:<\/strong> Attackers can exploit <span id=\"urn:enhancement-a4ed71d9\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoints that are vulnerable to <em>broken object level authorization<\/em> by manipulating the <em>ID of an object<\/em> that is sent within the client request. What this means is that the client can request information from an <span id=\"urn:enhancement-84bab42\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoint that they are not supposed to have access to. This attack normally leads to unauthorized information disclosure, modification, or destruction of data.<br>\nExample Attack Scenario:<br>\nSay for instance there is an e-commerce platform that provides financial and hosted services to a group of different online stores (shops). The platform provides an <span id=\"urn:enhancement-22d2683c\" class=\"textannotation disambiguated wl-thing\">API<\/span> used to gain access to revenue charts for each of their hosted stores, and each store should only have access to their own revenue charts. However, while inspecting the client request from a single store who wants to gain access to their own revenue charts, an attacker can identify (find) the <span id=\"urn:enhancement-6f8e4b35\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoint for those revenue charts and identify the URL in use, for example <strong>\/shops\/{shop name}\/revenue_data.json<\/strong>. Using the names of other stores being hosted on the e-commerce platform, an attacker can create a simple script to modify the <strong>{shop name}<\/strong> ID object in subsequent requests, and gain access to the revenue charts of every other store.<br>\n<strong>API2:2019<\/strong> <strong>\u2013 Broken Authentication:<\/strong> Being different than <span id=\"urn:enhancement-bcf04924\" class=\"textannotation disambiguated wl-thing\">Authorization<\/span> discussed above, <em>Authentication<\/em> on the other hand is a complex and confusing mechanism concerning <span id=\"urn:enhancement-6007b6aa\" class=\"textannotation disambiguated wl-thing\">APIs<\/span>. Since authentication endpoints are exposed to anyone by design, the endpoints that are responsible for <span id=\"urn:enhancement-97a3e7b8\" class=\"textannotation disambiguated wl-thing\">user<\/span>-authentication must be treated differently from regular <span id=\"urn:enhancement-abfaa7e1\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoints and implement extra layers of protection for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Credential_stuffing\">credential stuffing<\/a> attempts, in addition to brute force password and token guessing attacks.<br>\nExample Attack Scenario:<br>\nSuppose that an attacker obtained a list of leaked <span id=\"urn:enhancement-d399a603\" class=\"textannotation disambiguated wl-thing\">username<\/span>\/password combinations as the result of a data breach from another organizations. If the <span id=\"urn:enhancement-c50eec51\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoint handling authentication does not implement brute force or credential stuffing protections like CAPTCHA, rate-limiting, <span id=\"urn:enhancement-c719abea\" class=\"textannotation disambiguated wl-thing\">account<\/span> lockout, etc., an attacker can repeatedly attempt to gain access using the list of <span id=\"urn:enhancement-e5ac7d8c\" class=\"textannotation disambiguated wl-thing\">username<\/span>\/password combinations to determine what combination(s) work.<br>\n<strong>API3:2019<\/strong> <strong>\u2013 Excessive Data Exposure:<\/strong> By design<strong>, <span id=\"urn:enhancement-53f004ed\" class=\"textannotation disambiguated wl-thing\"><\/span><\/strong>API endpoints often expose sensitive data since they frequently rely on the client app to perform data filtering. Attackers exploit this issue by sniffing the traffic to analyze the responses, looking for sensitive data that should not be exposed. This data is supposed to be filtered on the client app, before being presented to the <span id=\"urn:enhancement-e012aa39\" class=\"textannotation disambiguated wl-thing\">user<\/span>.<br>\nExample Attack Scenario:<br>\nImage that an IoT-based camera surveillance system allows administrators to add a newly-hired security guard as a system <span id=\"urn:enhancement-b8dce8c5\" class=\"textannotation disambiguated wl-thing\">user<\/span>, and the administrator wants to ensure the new <span id=\"urn:enhancement-508047d8\" class=\"textannotation disambiguated wl-thing\">user<\/span> should only have access to certain cameras. These cameras are accessible via a mobile app that the security guard uses while at work. The newly hired security guard\u2019s mobile app makes an <span id=\"urn:enhancement-b5503017\" class=\"textannotation disambiguated wl-thing\">API<\/span> request to an endpoint in order to receive data about the cameras, and relies on the mobile app to filter which cameras the guard has access to. Although the mobile app only shows the cameras the guard can access, the actual <span id=\"urn:enhancement-11250997\" class=\"textannotation disambiguated wl-thing\">API<\/span> response contains a full list of all the cameras. Using the sniffed traffic, an attacker can manipulate the <span id=\"urn:enhancement-a8ae479f\" class=\"textannotation disambiguated wl-thing\">API<\/span> request to show all cameras, bypassing the filtering on the mobile app.<br>\n<strong>API4:2019<\/strong> <strong>\u2013 Lack of Resources &amp; Rate Limiting:<\/strong> It is common to find <span id=\"urn:enhancement-acb7d35b\" class=\"textannotation disambiguated wl-thing\">API<\/span> endpoints that do not implement any sort of rate limiting on the number of <span id=\"urn:enhancement-b370f89c\" class=\"textannotation disambiguated wl-thing\">API<\/span> requests, or they do not limit the type of requests that can consume considerable network, CPU, memory, and <span id=\"urn:enhancement-248b25e2\" class=\"textannotation disambiguated wl-thing\">storage<\/span> resources. The amount of resources required to satisfy a request greatly depends on the <span id=\"urn:enhancement-da737be\" class=\"textannotation disambiguated wl-thing\">user<\/span> input and endpoint business logic. Attackers exploit these issues causing denial-of-service attacks and associated endpoint outages.<br>\nExample Attack Scenario:<br>\nLet\u2019s say that an attacker wants to cause a denial-of-service outage to a certain <span id=\"urn:enhancement-a31a4ca9\" class=\"textannotation disambiguated wl-thing\">API<\/span> that contains a very large list of <span id=\"urn:enhancement-6b61190e\" class=\"textannotation disambiguated wl-thing\">users<\/span>. The <span id=\"urn:enhancement-36cfe194\" class=\"textannotation disambiguated wl-thing\">users<\/span>\u2019 list can be queried, but the <span id=\"urn:enhancement-1c86f120\" class=\"textannotation disambiguated wl-thing\">application<\/span> limits the number of <span id=\"urn:enhancement-76abb125\" class=\"textannotation disambiguated wl-thing\">users<\/span> that can be displayed to 100 <span id=\"urn:enhancement-2026ae3a\" class=\"textannotation disambiguated wl-thing\">users<\/span>. A normal request to the <span id=\"urn:enhancement-43f6d27c\" class=\"textannotation disambiguated wl-thing\">application<\/span> would look like this: \/api\/<span id=\"urn:enhancement-388d64a6\" class=\"textannotation disambiguated wl-thing\">users<\/span>?page=1&amp;size=100. In this case, the request would return with the first page and the first 100 <span id=\"urn:enhancement-c7934e11\" class=\"textannotation disambiguated wl-thing\">users<\/span>. If the attacker changed the <em>size parameter<\/em> from 100 to 200000, it could cause a performance issue on the backend database, since the size parameter in use is so large. As a result, the <span id=\"urn:enhancement-8a666f89\" class=\"textannotation disambiguated wl-thing\">API<\/span> becomes unresponsive and is unable to handle further requests from this or any other client.<br>\n<strong>API5:2019 \u2013 Broken Function Level <span id=\"urn:enhancement-915db18\" class=\"textannotation disambiguated wl-thing\">Authorization<\/span>:<\/strong> Although different than API1 above, exploitation of this issue requires the attacker to send <span id=\"urn:enhancement-9b91400c\" class=\"textannotation disambiguated wl-thing\">API<\/span> requests to endpoints that they should not have access to, yet are exposed to anonymous <span id=\"urn:enhancement-801325f7\" class=\"textannotation disambiguated wl-thing\">users<\/span> or regular, non-privileged <span id=\"urn:enhancement-8fe9463a\" class=\"textannotation disambiguated wl-thing\">users<\/span>. These types of flaws are often easy to find and can allow attackers to access unauthorized functionality. For example, administrative functions are prime targets for this type of attack.<br>\nExample Attack Scenario:<br>\nTo illustrate this further, imagine that during the registration <span id=\"urn:enhancement-24b9ece5\" class=\"textannotation disambiguated wl-thing\">process<\/span> to a certain <span id=\"urn:enhancement-5dd0e428\" class=\"textannotation disambiguated wl-thing\">application<\/span> that only allows <em>invited <span id=\"urn:enhancement-70b7f35c\" class=\"textannotation disambiguated wl-thing\">users<\/span> to join<\/em>, the <span id=\"urn:enhancement-7088eebf\" class=\"textannotation disambiguated wl-thing\">mobile<\/span> app triggers an <span id=\"urn:enhancement-1dec979e\" class=\"textannotation disambiguated wl-thing\">API<\/span> request to <strong><span id=\"urn:enhancement-be23355a\" class=\"textannotation disambiguated wl-thing\">GET<\/span> \/api\/invites\/{invite_guid}<\/strong>. <a href=\"https:\/\/www.w3schools.com\/tags\/ref_httpmethods.asp\">GET<\/a> is a standard <span id=\"urn:enhancement-4f67ef2e\" class=\"textannotation disambiguated wl-thing\">HTTP<\/span> method used to <em>request<\/em> information from a particular resource. In this case, the response to the <span id=\"urn:enhancement-f97c5d5a\" class=\"textannotation disambiguated wl-thing\">GET<\/span> contains details about the invite, including the <span id=\"urn:enhancement-e2974e8c\" class=\"textannotation disambiguated wl-thing\">user<\/span>\u2019s role and email address.<br>\nNow, say that an attacker duplicated the request and manipulated the <span id=\"urn:enhancement-91bcd4b2\" class=\"textannotation disambiguated wl-thing\">HTTP<\/span> method by changing <span id=\"urn:enhancement-b3eaeaca\" class=\"textannotation disambiguated wl-thing\">GET<\/span> to <a href=\"https:\/\/www.w3schools.com\/tags\/ref_httpmethods.asp\">POST<\/a>. POST is an <span id=\"urn:enhancement-8d7a18b1\" class=\"textannotation disambiguated wl-thing\">HTTP<\/span> method used to <em>send<\/em> information to create or update a resource. The URL would look like this: <strong>POST \/api\/invites\/new\/{\u201cemail\u201d:\u201dhugo@malicious.com\u201d,\u201drole\u201d:\u201dadmin\u201d}. <\/strong>In this case, the attacker easily exploits this issue and sends himself an email invite to create an admin account<strong>. <\/strong><br>\nIn the context of the five risks above, one could easily image many similar attack scenarios. Those provided were just examples of the nearly unlimited possibilities when attacking vulnerable API implementations. Hopefully you can see, the risks above are primarily caused by errors or oversights. I believe these risks could easily be managed or nearly eliminated when organizations improve their secure coding practices, especially when it comes to the way they\u2019re utilizing APIs.<\/p>","protected":false},"excerpt":{"rendered":"<p>As a result of a broadening threat landscape and the ever-increasing usage of APIs, the OWASP API Security Top 10 Project was launched. From the start, the project was designed to help organizations, developers, and application security teams become more aware of the risks associated with APIs. This past September, the OWASP API Security Top [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":57229,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[84],"tags":[218,216,205,219,228,175],"class_list":["post-29756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-api-security","tag-application-security-awareness","tag-application-security-vulnerabilities","tag-owasp-api-security-project","tag-owasp-top-10-api","tag-software-exposure"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Breaking Down the OWASP API Security Top 10 (Part 1)<\/title>\n<meta name=\"description\" content=\"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Breaking Down the OWASP API Security Top 10 (Part 1)\" \/>\n<meta property=\"og:description\" content=\"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\" \/>\n<meta property=\"og:site_name\" content=\"Checkmarx\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Checkmarx.Source.Code.Analysis\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-06T07:41:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-15T13:30:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Erez Yalon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@checkmarx\" \/>\n<meta name=\"twitter:site\" content=\"@checkmarx\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erez Yalon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\"},\"author\":{\"name\":\"Erez Yalon\",\"@id\":\"https:\/\/checkmarx.com\/#\/schema\/person\/cb0710e4bc79b776a473a974986cc123\"},\"headline\":\"Breaking Down the OWASP API Security Top 10 (Part 1)\",\"datePublished\":\"2019-11-06T07:41:20+00:00\",\"dateModified\":\"2024-08-15T13:30:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\"},\"wordCount\":1195,\"publisher\":{\"@id\":\"https:\/\/checkmarx.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg\",\"keywords\":[\"API Security\",\"Application Security Awareness\",\"Application Security Vulnerabilities\",\"OWASP API Security Project\",\"OWASP Top 10 API\",\"software exposure\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\",\"url\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\",\"name\":\"Breaking Down the OWASP API Security Top 10 (Part 1)\",\"isPartOf\":{\"@id\":\"https:\/\/checkmarx.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg\",\"datePublished\":\"2019-11-06T07:41:20+00:00\",\"dateModified\":\"2024-08-15T13:30:49+00:00\",\"description\":\"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage\",\"url\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg\",\"contentUrl\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/checkmarx.com\/#website\",\"url\":\"https:\/\/checkmarx.com\/\",\"name\":\"Checkmarx\",\"description\":\"The world runs on code. We secure it.\",\"publisher\":{\"@id\":\"https:\/\/checkmarx.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/checkmarx.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/checkmarx.com\/#organization\",\"name\":\"Checkmarx\",\"url\":\"https:\/\/checkmarx.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/checkmarx.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2024\/02\/logo-dark.svg\",\"contentUrl\":\"https:\/\/checkmarx.com\/wp-content\/uploads\/2024\/02\/logo-dark.svg\",\"width\":1,\"height\":1,\"caption\":\"Checkmarx\"},\"image\":{\"@id\":\"https:\/\/checkmarx.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Checkmarx.Source.Code.Analysis\",\"https:\/\/x.com\/checkmarx\",\"https:\/\/www.youtube.com\/user\/CheckmarxResearchLab\",\"https:\/\/www.linkedin.com\/company\/checkmarx\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/checkmarx.com\/#\/schema\/person\/cb0710e4bc79b776a473a974986cc123\",\"name\":\"Erez Yalon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/checkmarx.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/89d2fa04735f99d8297d6cf7abe12b74e420dd8f431dccf12f3155689c53ad43?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/89d2fa04735f99d8297d6cf7abe12b74e420dd8f431dccf12f3155689c53ad43?s=96&d=mm&r=g\",\"caption\":\"Erez Yalon\"},\"url\":\"https:\/\/checkmarx.com\/author\/erezy\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Breaking Down the OWASP API Security Top 10 (Part 1)","description":"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/","og_locale":"en_US","og_type":"article","og_title":"Breaking Down the OWASP API Security Top 10 (Part 1)","og_description":"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.","og_url":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/","og_site_name":"Checkmarx","article_publisher":"https:\/\/www.facebook.com\/Checkmarx.Source.Code.Analysis","article_published_time":"2019-11-06T07:41:20+00:00","article_modified_time":"2024-08-15T13:30:49+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg","type":"image\/jpeg"}],"author":"Erez Yalon","twitter_card":"summary_large_image","twitter_creator":"@checkmarx","twitter_site":"@checkmarx","twitter_misc":{"Written by":"Erez Yalon","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#article","isPartOf":{"@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/"},"author":{"name":"Erez Yalon","@id":"https:\/\/checkmarx.com\/#\/schema\/person\/cb0710e4bc79b776a473a974986cc123"},"headline":"Breaking Down the OWASP API Security Top 10 (Part 1)","datePublished":"2019-11-06T07:41:20+00:00","dateModified":"2024-08-15T13:30:49+00:00","mainEntityOfPage":{"@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/"},"wordCount":1195,"publisher":{"@id":"https:\/\/checkmarx.com\/#organization"},"image":{"@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg","keywords":["API Security","Application Security Awareness","Application Security Vulnerabilities","OWASP API Security Project","OWASP Top 10 API","software exposure"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/","url":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/","name":"Breaking Down the OWASP API Security Top 10 (Part 1)","isPartOf":{"@id":"https:\/\/checkmarx.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage"},"image":{"@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg","datePublished":"2019-11-06T07:41:20+00:00","dateModified":"2024-08-15T13:30:49+00:00","description":"Our blog series delves into the critical OWASP API Security Top 10, empowering developers to build secure APIs.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/checkmarx.com\/blog\/breaking-down-owasp-api-security-top10-part1\/#primaryimage","url":"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg","contentUrl":"https:\/\/checkmarx.com\/wp-content\/uploads\/2019\/11\/Website-1024x512-3.jpg","width":1024,"height":512},{"@type":"WebSite","@id":"https:\/\/checkmarx.com\/#website","url":"https:\/\/checkmarx.com\/","name":"Checkmarx","description":"The world runs on code. We secure it.","publisher":{"@id":"https:\/\/checkmarx.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/checkmarx.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/checkmarx.com\/#organization","name":"Checkmarx","url":"https:\/\/checkmarx.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/checkmarx.com\/#\/schema\/logo\/image\/","url":"https:\/\/checkmarx.com\/wp-content\/uploads\/2024\/02\/logo-dark.svg","contentUrl":"https:\/\/checkmarx.com\/wp-content\/uploads\/2024\/02\/logo-dark.svg","width":1,"height":1,"caption":"Checkmarx"},"image":{"@id":"https:\/\/checkmarx.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Checkmarx.Source.Code.Analysis","https:\/\/x.com\/checkmarx","https:\/\/www.youtube.com\/user\/CheckmarxResearchLab","https:\/\/www.linkedin.com\/company\/checkmarx"]},{"@type":"Person","@id":"https:\/\/checkmarx.com\/#\/schema\/person\/cb0710e4bc79b776a473a974986cc123","name":"Erez Yalon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/checkmarx.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/89d2fa04735f99d8297d6cf7abe12b74e420dd8f431dccf12f3155689c53ad43?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/89d2fa04735f99d8297d6cf7abe12b74e420dd8f431dccf12f3155689c53ad43?s=96&d=mm&r=g","caption":"Erez Yalon"},"url":"https:\/\/checkmarx.com\/author\/erezy\/"}]}},"_links":{"self":[{"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/posts\/29756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/comments?post=29756"}],"version-history":[{"count":0,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/posts\/29756\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/media\/57229"}],"wp:attachment":[{"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/media?parent=29756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/categories?post=29756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/checkmarx.com\/wp-json\/wp\/v2\/tags?post=29756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}