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
Recall & Review
beginner
What does HTTPS stand for and why is it important?
HTTPS stands for HyperText Transfer Protocol Secure. It encrypts data between the user's browser and the server, protecting sensitive information from being intercepted.
Click to reveal answer
beginner
What is a secure cookie in Django?
A secure cookie is a cookie that is only sent over HTTPS connections. In Django, setting the 'SESSION_COOKIE_SECURE' or 'CSRF_COOKIE_SECURE' to True ensures cookies are sent securely.
Click to reveal answer
intermediate
How do you enable HTTPS in a Django project?
You enable HTTPS by configuring your web server (like Nginx or Apache) with SSL certificates and setting Django settings like 'SECURE_SSL_REDIRECT = True' to force HTTPS.
Click to reveal answer
intermediate
What does the 'HttpOnly' flag do for cookies?
The 'HttpOnly' flag prevents JavaScript from accessing the cookie, reducing the risk of cross-site scripting (XSS) attacks. In Django, set 'SESSION_COOKIE_HTTPONLY = True'.
Click to reveal answer
advanced
Why should you use 'SECURE_HSTS_SECONDS' in Django settings?
Setting 'SECURE_HSTS_SECONDS' enables HTTP Strict Transport Security (HSTS), telling browsers to only use HTTPS for your site for a set time, improving security.
Click to reveal answer
Which Django setting forces all requests to use HTTPS?
ASECURE_HSTS_SECONDS
BSESSION_COOKIE_SECURE
CCSRF_COOKIE_SECURE
DSECURE_SSL_REDIRECT
✗ Incorrect
SECURE_SSL_REDIRECT = True makes Django redirect all HTTP requests to HTTPS.
What does setting 'SESSION_COOKIE_SECURE = True' do?
ASends session cookies only over HTTPS
BMakes cookies accessible to JavaScript
CDisables cookies
DEncrypts cookie content
✗ Incorrect
It ensures session cookies are sent only over secure HTTPS connections.
What is the purpose of the 'HttpOnly' flag on cookies?
AMakes cookies visible to all domains
BPrevents JavaScript access to cookies
CAllows cookies over HTTP only
DEncrypts cookies
✗ Incorrect
HttpOnly prevents JavaScript from reading cookies, improving security.
Which protocol does HTTPS use to secure communication?
ASMTP
BFTP
CSSL/TLS
DHTTP/2
✗ Incorrect
HTTPS uses SSL/TLS protocols to encrypt data between client and server.
What does setting 'SECURE_HSTS_SECONDS' do in Django?
AEnforces browsers to use HTTPS for a set time
BDisables cookies
CRedirects HTTP to HTTPS immediately
DEnables HTTP caching
✗ Incorrect
It tells browsers to only connect via HTTPS for the specified number of seconds.
Explain how HTTPS and secure cookies work together to protect user data in a Django application.
Think about data safety during transmission and cookie security.
You got /4 concepts.
Describe the key Django settings you would configure to ensure your site uses HTTPS and secure cookies.
Focus on settings that control HTTPS enforcement and cookie security.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of setting SESSION_COOKIE_SECURE = True in Django settings?
easy
A. To allow cookies on both HTTP and HTTPS
B. To make cookies accessible to JavaScript
C. To disable cookies entirely
D. To ensure cookies are only sent over HTTPS connections
Solution
Step 1: Understand what SESSION_COOKIE_SECURE does
This setting tells Django to only send session cookies over HTTPS connections, preventing them from being sent over insecure HTTP.
Step 2: Analyze the options
To ensure cookies are only sent over HTTPS connections correctly describes this behavior. The other options do not match the purpose of this setting.
Final Answer:
To ensure cookies are only sent over HTTPS connections -> Option D
Quick Check:
SESSION_COOKIE_SECURE = True means HTTPS only [OK]
Hint: Secure cookies only send on HTTPS connections [OK]
Common Mistakes:
Thinking it makes cookies accessible to JavaScript
Believing it disables cookies
Assuming it allows cookies on HTTP
2. Which of the following is the correct way to enable HTTPS redirection in Django settings?
easy
A. SECURE_SSL_REDIRECT = False
B. SECURE_SSL_REDIRECT = True
C. SESSION_COOKIE_SECURE = False
D. CSRF_COOKIE_SECURE = False
Solution
Step 1: Identify the setting for HTTPS redirection
The setting SECURE_SSL_REDIRECT controls whether Django redirects HTTP requests to HTTPS.
Step 2: Choose the correct value to enable redirection
Setting SECURE_SSL_REDIRECT = True enables automatic redirection to HTTPS. The other options either disable security or relate to cookies.
Final Answer:
SECURE_SSL_REDIRECT = True -> Option B
Quick Check:
Enable HTTPS redirect with SECURE_SSL_REDIRECT = True [OK]
Hint: Set SECURE_SSL_REDIRECT to True to force HTTPS [OK]
Common Mistakes:
Setting SECURE_SSL_REDIRECT to False disables HTTPS redirect
Confusing cookie settings with HTTPS redirect
Not enabling HTTPS redirect at all
3. Given the following Django settings snippet, what will happen when a user accesses the site over HTTP?
Hint: HTTPS redirect happens before cookies are sent [OK]
Common Mistakes:
Thinking cookies are sent over HTTP despite redirect
Assuming CSRF protection is disabled
Believing HTTP access is allowed without redirect
4. You set SESSION_COOKIE_SECURE = True but notice session cookies are still sent over HTTP. What is the most likely cause?
medium
A. The site is not using HTTPS, so cookies are sent anyway
B. The browser does not support secure cookies
C. You forgot to set SECURE_SSL_REDIRECT = True
D. You need to set CSRF_COOKIE_SECURE = False
Solution
Step 1: Understand the role of SECURE_SSL_REDIRECT
This setting forces HTTP requests to HTTPS, ensuring secure cookies are sent only over HTTPS.
Step 2: Identify why cookies are sent over HTTP
If SECURE_SSL_REDIRECT is not enabled, users can access the site over HTTP, so cookies may be sent insecurely despite SESSION_COOKIE_SECURE.
Final Answer:
You forgot to set SECURE_SSL_REDIRECT = True -> Option C
Quick Check:
Enable SECURE_SSL_REDIRECT to enforce HTTPS [OK]
Hint: Enable SECURE_SSL_REDIRECT to prevent HTTP cookie sending [OK]
Common Mistakes:
Assuming browser ignores secure cookie flag
Thinking CSRF_COOKIE_SECURE affects session cookies
Believing HTTPS is automatic without redirect
5. You want to secure your Django site so that session and CSRF cookies are only sent over HTTPS, and all HTTP requests redirect to HTTPS. Which combination of settings achieves this securely?
hard
A. SECURE_SSL_REDIRECT = True, SESSION_COOKIE_SECURE = True, CSRF_COOKIE_SECURE = True
B. SECURE_SSL_REDIRECT = False, SESSION_COOKIE_SECURE = True, CSRF_COOKIE_SECURE = True
C. SECURE_SSL_REDIRECT = True, SESSION_COOKIE_SECURE = False, CSRF_COOKIE_SECURE = False
D. SECURE_SSL_REDIRECT = False, SESSION_COOKIE_SECURE = False, CSRF_COOKIE_SECURE = False
Solution
Step 1: Ensure HTTP requests redirect to HTTPS
Setting SECURE_SSL_REDIRECT = True forces all HTTP requests to HTTPS, preventing insecure access.
Step 2: Secure cookies for session and CSRF
Setting both SESSION_COOKIE_SECURE and CSRF_COOKIE_SECURE to True ensures cookies are only sent over HTTPS connections.
Step 3: Evaluate other options
The other options fail to secure either redirection or cookies properly, leaving security gaps.