Beginner to intermediate · 4 steps
Logs and security
Build an explainable feedback loop without leaking secrets or trusting the wrong client address.
Before you start
Basic HTTP and Nginx configuration; a local environment for optional labs.
What you will make
A logging contract, a proxy trust model, and an incident checklist.
01 · Book chapter
Draw the feedback loop ↗
Separate collection, detection, policy, and local enforcement.
Put it to work
Draw the request path and policy path separately. Mark which part remains available when the central service is offline.
Keep as evidence: A diagram with one explicit failure scenario for each boundary.
02 · Book chapter
Design logs without secrets ↗
Keep useful operational evidence while excluding credentials and sensitive request data.
Put it to work
Create three synthetic requests containing a token, a query string, and a user identifier. Define the minimal fields your logs should retain.
Keep as evidence: A logging contract and redacted sample records using synthetic values.
Practice in the browser
Review a logging change →03 · Book chapter
Identify the actual client ↗
Make proxy trust explicit before using an address in a blocking decision.
Put it to work
Work through a direct request, a trusted proxy, and a forged forwarding header from an untrusted peer.
Keep as evidence: A table showing the accepted client address and trust decision for each case.
04 · Book chapter
Investigate in the right order ↗
Distinguish missing evidence, an incorrect decision, and failed enforcement.
Put it to work
Write an incident checklist that traces one synthetic request through the complete loop before changing a policy.
Keep as evidence: A runbook with observations, expected results, and a reversible next action.
Pause and check
Keep the useful evidence, protect the boundary
Choose an answer for every scenario, then check your reasoning. Progress is saved only in this browser.
Your checklist is saved only on this device. Keep your own evidence alongside each exercise. Follow new guides →