-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix thumbnail generation for mis-detected file types #769
base: master
Are you sure you want to change the base?
Commits on Jan 24, 2021
-
Remove redundant variable assignment
Keep the default assignment in case there are more types.
Configuration menu - View commit details
-
Copy full SHA for e77958d - Browse repository at this point
Copy the full SHA e77958dView commit details -
Fix generation of thumbnails for video files under 10 seconds
* Use ffprobe/avprobe to get the total duration of each video file first. * Compute a desired optimal timestamp of 15% of the total duration to seek for and get the thumbnail from. * Fix capture of ffmpeg's output (from stderr) in exec_cmdv() by using an optional redirection to stdout. * Capture of sub-process output is optional (possible slight performance gain).
Configuration menu - View commit details
-
Copy full SHA for 03fd6dc - Browse repository at this point
Copy the full SHA 03fd6dcView commit details -
Fix updated files not updating thumbnail as well
Overwrite already existing thumbnails if the source file's mtime is more recent
Configuration menu - View commit details
-
Copy full SHA for 9ac1417 - Browse repository at this point
Copy the full SHA 9ac1417View commit details -
Fix getting output from subprocess
* Return stdout as expected from ffprobe to get duration. * Avoid throwing an exception in favour of a default value for potential malformed total duration got from ffprobe.
Configuration menu - View commit details
-
Copy full SHA for a5ea2d0 - Browse repository at this point
Copy the full SHA a5ea2d0View commit details -
Remove obsolete argument check
* Conflict with the newly added boolean arguments if they are explicitely passed by the caller. * cmdv has to be an array.
Configuration menu - View commit details
-
Copy full SHA for 7cf18b6 - Browse repository at this point
Copy the full SHA 7cf18b6View commit details -
Add seek-in value option for video thumbnails
* Allows users to specify which percentage of the total video duration to seek in instead of hardcoding 15%. * Now defaults to 50%.
Configuration menu - View commit details
-
Copy full SHA for 5a0c630 - Browse repository at this point
Copy the full SHA 5a0c630View commit details -
* This fixes a denial-of-service exploit that would allow the client to generate an infinite number of thumbnails and fill up the storage completely. Since the client had control over the requested thumbnail sizes, it could make arbitrary requests for thumbnails, and every time the backend did not find an already generated thumbnail with the specified sizes, it would happily generate a new one. * Remove the ability of the client to decide thumbnail dimensions and only let the back-end do this by reading the configuration. * Limit the number of generated thumbnails per file to only one, with "landscape" dimensions (4/3). * Use CSS "object-fit" property to adjust displaying of landscape thumbnails into squares. Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
Configuration menu - View commit details
-
Copy full SHA for 8ac7f6a - Browse repository at this point
Copy the full SHA 8ac7f6aView commit details -
Fix thumbnail generation for mis-detected file types
* Generate thumbnail despite wrong detected filetype When a file has the wrong extension, fall back to other types available until one works. For unsupported files, get the mime type to determine if we truly cannot support thumbnail generation. Cache the type detected for further requests with different sizes. * Test whether server has Fileinfo extension active Only check mime types with fileinfo extension if it is active. If not, avoid brute forcing type detection by rolling over the various thumbnail generation methods and simply return no thumbnail. * Keep capture file in memory instead of writing to disk Keep the capture data in the Image class if the capture data is valid, otherwise destroy the Image object. Image doesn't read files from disk directly anymore.
Configuration menu - View commit details
-
Copy full SHA for 40ff56e - Browse repository at this point
Copy the full SHA 40ff56eView commit details
Commits on Jan 25, 2021
-
* This fixes a denial-of-service exploit that would allow the client to generate an infinite number of thumbnails and fill up the storage completely. Since the client had control over the requested thumbnail sizes, it could make arbitrary requests for thumbnails, and every time the backend did not find an already generated thumbnail with the specified sizes, it would happily generate a new one. * Remove the ability of the client to decide thumbnail dimensions and only let the back-end do this by reading the configuration. * Limit the number of generated thumbnails per file to only one, with "landscape" dimensions (4/3). * Use CSS "object-fit" property to adjust displaying of landscape thumbnails into squares. Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
Configuration menu - View commit details
-
Copy full SHA for 2582d22 - Browse repository at this point
Copy the full SHA 2582d22View commit details -
Remove redundant request for square thumb
* We now use only one thumbnail file src for both square and rational thumbnails so remove superfluous requests. * Set the same src for both square and landscape dom classes.
Configuration menu - View commit details
-
Copy full SHA for a2d21cf - Browse repository at this point
Copy the full SHA a2d21cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f5410c - Browse repository at this point
Copy the full SHA 8f5410cView commit details -
Configuration menu - View commit details
-
Copy full SHA for db110d2 - Browse repository at this point
Copy the full SHA db110d2View commit details -
Reduce superfluous computations
Only compute thumbnail configured dimensions on thumbnail API requests.
Configuration menu - View commit details
-
Copy full SHA for e876184 - Browse repository at this point
Copy the full SHA e876184View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d93996 - Browse repository at this point
Copy the full SHA 0d93996View commit details
Commits on Jan 26, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ba6b01a - Browse repository at this point
Copy the full SHA ba6b01aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39f75b8 - Browse repository at this point
Copy the full SHA 39f75b8View commit details
Commits on Jan 27, 2021
-
* In order to handle file types that we don't want to generate thumbnails for, be explicit about it in the options. We cannot rely on just removing the unwanted file-types from the arrays of strings in the options, as the backend will generate thumbnails for files it detects the actual type for anyway.
Configuration menu - View commit details
-
Copy full SHA for e25793e - Browse repository at this point
Copy the full SHA e25793eView commit details
Commits on Jan 28, 2021
-
Auto-generate thumbnail blocklist
When a value is removed from a default array of strings in the options, the removed value should be considered explicitly blocked by the user: thumbnails should not be generated, actual underlying file type should not be checked for. Thus the blocklist should be updated with the missing string.
Configuration menu - View commit details
-
Copy full SHA for 5bcd9af - Browse repository at this point
Copy the full SHA 5bcd9afView commit details
Commits on Feb 6, 2021
-
Remove client-side sample request for img
* Down-sampling should only be requested by the backend. * For now remove the client-side logic entirely since it is both superfluous and vulnerable. This can be implemented again on the back-end if necessary.
Configuration menu - View commit details
-
Copy full SHA for 4a3dd10 - Browse repository at this point
Copy the full SHA 4a3dd10View commit details -
Configuration menu - View commit details
-
Copy full SHA for cb551a1 - Browse repository at this point
Copy the full SHA cb551a1View commit details