The thing you let in (deserialization and file uploads)

The two doors every app has: where the outside world’s data comes in, and where its own data goes back out. This lesson is the first door at its worst: not a text field, but a whole object or a whole file, handed over by someone you have never met.
Before you start. Application Hardening said to check what knocks, in one line that included “a file upload”. Web Vulnerabilities (the OWASP classics) showed what happens when an attacker’s text becomes a database query or a page. Review the fix (secure code review) had you review handlers that took a path or a field they should not have. This lesson is about two inputs that look like data and behave like instructions: a saved object that is rebuilt on arrival, and a file the user named and filled.