CIS*6510: Data Leakage Attacks & Defense-in-Depth in LLM-Enabled Web Applications
University of Guelph — CIS*6510 (MSc course project) · Feb 2026 – Apr 2026
A controlled, Flask/Python mock-LLM web application built with synthetic data for a graduate course project (CIS*6510) analyzing data leakage attacks and defense-in-depth mechanisms in LLM-enabled web applications. Two attack classes were tested: cross-user data leakage and prompt injection. Three defensive layers were implemented -- Context Isolation (restricts model access to only the data a user is authorized to view), Prompt Sanitization (detects and filters malicious or manipulative user inputs before they reach the model), and Response Redaction (masks or blocks sensitive information if the model attempts to expose it in its output) -- and evaluated across 8 defense configurations (every combination of the three layers on/off) against both attack classes. This is a distinct, earlier, controlled academic evaluation using synthetic data in a mock-LLM environment -- separate from the independently built and measured LLM Data Leakage Lab (a personal project against a real, self-built vulnerable Flask app), which reports its own, different numbers.
Tools: Python, Flask
Skills demonstrated: LLM security architecture design, prompt sanitization, output redaction, layered/defense-in-depth security design, controlled experimental evaluation design
Frameworks: Defense-in-depth, Context isolation -- see Framework & Regulatory Knowledge
Outcome: Final result: under the vulnerable baseline configuration, both attack classes (cross-user data leakage and prompt injection) succeeded. Under the full three-layer defense configuration, both attack classes were blocked. Across the 8 evaluated configurations, no individual layer alone was sufficient to stop both attack classes -- the combined, layered defense-in-depth configuration provided the strongest protection, the same architectural pattern independently measured end-to-end in the separate LLM Data Leakage Lab.