Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Why API security is non-negotiable
📖 Scenario: You are building a simple REST API for a small online store. The API handles product information and customer orders. Since this API will be used by many clients, it is very important to keep it secure to protect sensitive data and prevent misuse.
🎯 Goal: Learn why API security is essential by creating a simple API with a security check that only allows authorized users to access product data.
📋 What You'll Learn
Create a dictionary called products with exact product names and prices
Create a variable called authorized_users with a list of allowed usernames
Write a function called get_product_price that takes username and product_name and returns the price only if the user is authorized
Print the price of a product for a given authorized user and an unauthorized user to show the security check
💡 Why This Matters
🌍 Real World
APIs are everywhere, and securing them protects user data and business resources from hackers and misuse.
💼 Career
Understanding API security is essential for backend developers, security engineers, and anyone building or maintaining web services.
Progress0 / 4 steps
1
DATA SETUP: Create the product data
Create a dictionary called products with these exact entries: 'Laptop': 1200, 'Smartphone': 800, 'Tablet': 400
Rest API
Hint
Use curly braces {} to create a dictionary with keys as product names and values as prices.
2
CONFIGURATION: Define authorized users
Create a list called authorized_users with these exact usernames: 'alice', 'bob'
Rest API
Hint
Use square brackets [] to create a list of usernames.
3
CORE LOGIC: Write a function to check authorization and get price
Write a function called get_product_price that takes username and product_name. It should return the product price from products only if username is in authorized_users. Otherwise, return the string 'Access denied'.
Rest API
Hint
Use an if statement to check if the username is authorized. Use products.get() to safely get the price.
4
OUTPUT: Test the function with authorized and unauthorized users
Print the result of get_product_price('alice', 'Laptop') and get_product_price('eve', 'Laptop') to show the security check in action.
Rest API
Hint
Use two print() statements to show the price for 'alice' and the denial for 'eve'.
Practice
(1/5)
1. Why is API security considered non-negotiable in software development?
easy
A. It reduces the size of the API response.
B. It makes the API run faster.
C. It protects sensitive data and prevents unauthorized access.
D. It allows unlimited access to everyone.
Solution
Step 1: Understand the purpose of API security
API security is designed to protect sensitive data and control who can access the API.
Step 2: Analyze the options
Only It protects sensitive data and prevents unauthorized access. mentions protection and preventing unauthorized access, which is the main goal of API security.
Final Answer:
It protects sensitive data and prevents unauthorized access. -> Option C
Quick Check:
API security = protect data and access [OK]
Hint: Remember: security means protecting data and access [OK]
Common Mistakes:
Thinking security speeds up API
Confusing security with data size
Assuming open access is secure
2. Which of the following is the correct way to secure an API endpoint?
easy
A. Require an API key or token for access.
B. Use HTTP instead of HTTPS for faster connection.
C. Allow all IP addresses without restrictions.
D. Send sensitive data in URL parameters.
Solution
Step 1: Identify secure practices for API endpoints
Using API keys or tokens is a standard way to control access to APIs.
Step 2: Evaluate each option
Require an API key or token for access. requires keys or tokens, which is correct. Options A, C, and D are insecure practices.
Final Answer:
Require an API key or token for access. -> Option A
Quick Check:
API security = keys or tokens [OK]
Hint: Always require keys or tokens to secure APIs [OK]
What is the main purpose of the 'Authorization' header here?
medium
A. To provide a token proving the caller's identity.
B. To encrypt the data sent to the API.
C. To set the API response timeout.
D. To specify the data format expected.
Solution
Step 1: Understand the 'Authorization' header role
The 'Authorization' header carries credentials like tokens to prove who is calling the API.
Step 2: Match the header purpose with options
To provide a token proving the caller's identity. correctly states it provides a token for identity verification. Other options describe unrelated functions.
Final Answer:
To provide a token proving the caller's identity. -> Option A
Quick Check:
Authorization header = token for identity [OK]
Hint: Authorization header carries tokens for access [OK]
The code only checks if the 'api_key' header exists but does not verify if it is correct or valid.
Step 2: Understand the security implication
Without validating the key, anyone sending any 'api_key' header can access the data, which is insecure.
Final Answer:
It does not check if the API key is valid. -> Option D
Quick Check:
API key must be validated, not just present [OK]
Hint: Check key validity, not just presence [OK]
Common Mistakes:
Assuming presence means valid
Confusing HTTP method with security
Ignoring error handling importance
5. You want to secure an API that returns user profiles. Which combination of methods best ensures security and privacy?
hard
A. Allow all requests but log IP addresses for later review.
B. Use HTTPS, require API tokens, and validate user permissions before sending data.
C. Send user data over HTTP with a simple password in the URL.
D. Use HTTP and require no authentication for faster access.
Solution
Step 1: Identify secure transport and authentication
HTTPS encrypts data in transit, API tokens verify caller identity, and permission checks protect privacy.
Step 2: Compare options for best security practice
Use HTTPS, require API tokens, and validate user permissions before sending data. combines encryption, authentication, and authorization, which is the best approach. Others are insecure or incomplete.
Final Answer:
Use HTTPS, require API tokens, and validate user permissions before sending data. -> Option B
Quick Check:
HTTPS + tokens + permissions = secure API [OK]
Hint: Combine HTTPS, tokens, and permission checks [OK]