docs: add lab11 β nginx reverse proxy hardening#11
Open
ph1larmon1a wants to merge 1 commit intomainfrom
Open
docs: add lab11 β nginx reverse proxy hardening#11ph1larmon1a wants to merge 1 commit intomainfrom
ph1larmon1a wants to merge 1 commit intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Harden the OWASP Juice Shop deployment by placing it behind an Nginx reverse proxy, enabling industry-standard security headers, configuring HTTPS with a self-signed certificate, and enforcing rate limiting and timeout protections. Evaluate the resulting setup through live header validation, TLS scanning, and login-endpoint stress testing to understand practical hardening techniques for web applications without modifying backend code.
Changes
Implemented a fully configured Nginx reverse proxy that front-ends the Juice Shop application
Ensured the backend container is not directly exposed; only Nginx publishes ports (
8080,8443)Added a complete set of security headers, including XFO, XCTO, HSTS, Referrer-Policy, Permissions-Policy, COOP/CORP, and CSP-Report-Only
Generated and configured TLS certificates, enabling HTTPS on port
8443Performed a comprehensive TLS scan using
testssl.shand documented protocol/cipher behaviorImplemented rate limiting (
10r/m,burst=5) on/rest/user/loginand validated 401β429 behaviorAdded and analyzed timeout directives to reduce DoS/slowloris risk
Created final, detailed documentation in:
labs/submission11.mdlabs/lab11/analysis/- header tests, rate-limit tests, TLS scanslabs/lab11/logs/- Nginx access/error logs showing security behaviorlabs/lab11/reverse-proxy/- proxy configuration + TLS certsTesting
Reverse Proxy Verification
docker compose up -d308response from port8080Security Header Validation
Ran:
Confirmed presence of all configured headers and correct HSTS behavior (HTTPS only)
TLS Scan
Executed
testssl.shagainst the HTTPS endpointVerified:
Saved output under
analysis/testssl.txtRate Limiting Test
logs/access.logTimeout Behavior Review
client_*_timeout,proxy_*_timeout, andkeepalive_timeoutsettingsReproducibility
Reviewers can:
testssl.shAll evidence is checked into the repository under
labs/lab11/Artifacts & Screenshots
Documentation:
labs/submission11.mdSecurity Headers Evidence:
labs/lab11/analysis/headers-http.txtlabs/lab11/analysis/headers-https.txtRate Limiting Evidence:
labs/lab11/analysis/rate-limit-test.txtTLS Scan:
labs/lab11/analysis/testssl.txtProxy Logs:
labs/lab11/logs/access.loglabs/lab11/logs/error.logConfiguration Files:
labs/lab11/docker-compose.ymllabs/lab11/reverse-proxy/nginx.conflabs/lab11/reverse-proxy/certs/Checklist