Tools / System Design
Explain about "insecure upload/download" injection defect.
Uploading/downloading files in an insecure manner is a broad type of risk that covers path manipulation, data caching, file handling, malware and anti-virus, access control, and bandwidth concerns.
Path manipulation is a major concern. For this type of injection defect, untrusted data is used to construct the path to the resource. For example:
- Path manipulation for a download may allow unauthorized access to a resource.
- Path manipulation for a upload may allow a file to be placed on an unauthorized location covering up a legitimate resource.
- Path manipulation for an upload may allow an executable file to open up "back-doors".
Mitigation strategies:
- Do not use untrusted data in file paths or names; instead, use server-generated file paths and names.
- Restrict the application's access to its home directory and subdirectories, thereby leveraging the operating system's access controls.
- Normalize the path prior to validation and authorization checks when using untrusted data as part of a file path. Validate the path against a whitelist.
More Related questions...