Api Gateway hard
Your Gateway is configured to cache any URL ending in `.css` or `.jpg`. An attacker tricks a victim into visiting `https://api.com/v1/profile/info/style.css`. How can this lead to an 'Account Takeover'?
- A The `.css` suffix automatically grants the attacker administrative permissions on the backend API.
- B The backend ignores the `.css` suffix and serves the victim's private profile HTML. The Gateway, seeing `.css`, caches this HTML publicy. The attacker then visits the same URL and downloads the жертва's cached private data.
- C The Victim's browser will execute the HTML as a script, sending their password to the Gateway's logs.
- D It is not possible; API Gateways never cache HTML content by default.
Answer: B. The backend ignores the `.css` suffix and serves the victim's private profile HTML. The Gateway, seeing `.css`, caches this HTML publicy. The attacker then visits the same URL and downloads the жертва's cached private data.
This is a classic 'Cache Deception' attack. It occurs when the Gateway and the Backend 'disagree' on how to interpret a URL. The Gateway trusts the extension and caches sensitive data; the attacker exploits this by crafting a URL that looks like a static asset but resolves to a dynamic, private resource.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- Your Gateway communicates with backends via HTTP/1.1 connections. A slow backend service causes 'Head-of-Line Blocking'. How does switching to HTTP/2 as the Gateway-to-Backend transport mitigate this?
- What is the primary architectural role of an API Gateway in a microservices environment?
- Why is 'Stateless Token Validation' (e.g., using JWTs) significantly more scalable at the Gateway level than 'Stateful Validation' (e.g., using Opaque/Reference Tokens)?
- An API is receiving a sudden surge of 10,000 requests per second from a single IP address. How does an API Gateway preserve the stability of the backend services?
- How can an API Gateway help prevent 'Double Charging' in a payment system when a mobile client retries a failed request due to a poor connection?
- What is the primary operational benefit of performing 'SSL Termination' at the API Gateway?