[backend/drive] Fix DriveController serving files with possibly invalid extensions (ISH-556)

This commit is contained in:
Laura Hausmann 2024-10-27 22:51:29 +01:00
parent 040973b19e
commit df587e417d
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -41,8 +41,6 @@ public class DriveController(
throw GracefulException.NotFound("File not found");
}
var filename = file.AccessKey == accessKey || file.Name.EndsWith(".webp") ? file.Name : $"{file.Name}.webp";
if (file.StoredInternal)
{
var pathBase = options.Value.Local?.Path;
@ -58,8 +56,8 @@ public class DriveController(
Response.Headers.CacheControl = "max-age=31536000, immutable";
Response.Headers.XContentTypeOptions = "nosniff";
return Constants.BrowserSafeMimeTypes.Contains(file.Type)
? new InlineFileStreamResult(stream, file.Type, filename, true)
: File(stream, file.Type, filename, true);
? new InlineFileStreamResult(stream, file.Type, file.Name, true)
: File(stream, file.Type, file.Name, true);
}
else
{
@ -79,8 +77,8 @@ public class DriveController(
Response.Headers.CacheControl = "max-age=31536000, immutable";
Response.Headers.XContentTypeOptions = "nosniff";
return Constants.BrowserSafeMimeTypes.Contains(file.Type)
? new InlineFileStreamResult(stream, file.Type, filename, true)
: File(stream, file.Type, filename, true);
? new InlineFileStreamResult(stream, file.Type, file.Name, true)
: File(stream, file.Type, file.Name, true);
}
}