← Lesson
Isolation and Confused Deputy
Joeven
Run
Reset
Python loads on first run
WORKER_ENV = {"MODEL_KEY": "mk-demo"} TOOL_ENV = {"STRIPE_KEY": "sk-live-DEMO"} def worker_call(tool, args, job): # Worker may call services. It does not apply Stripe itself. if tool == "refund": return refund_service(job["tenant"], args) if tool == "search_kb": return {"text": "5-7 days"} return {"ok": False, "code": "UNKNOWN_TOOL"} def refund_service(auth_tenant, args): requested = args.get("tenant") if requested and requested != auth_tenant: return {"ok": False, "code": "PERMISSION_DENIED"} if "STRIPE_KEY" not in TOOL_ENV: return {"ok": False, "code": "NO_SECRET"} if "STRIPE_KEY" in WORKER_ENV: return {"ok": False, "code": "WORKER_TOO_PRIVILEGED"} return {"ok": True, "tenant": auth_tenant, "cents": 400} job = {"tenant": "acme"} print("own", worker_call("refund", {"tenant": "acme"}, job)) print("other", worker_call("refund", {"tenant": "other"}, job)["code"]) print("worker holds stripe", "STRIPE_KEY" in WORKER_ENV)
Run to execute this in your browser. Nothing is sent to a server.