Skip to content
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

Archive overhaul. #173

Merged
merged 9 commits into from Oct 17, 2018
Merged

Archive overhaul. #173

merged 9 commits into from Oct 17, 2018

Conversation

Maikuolan
Copy link
Member

No description provided.

Splitting responsibility for handling archives and compression out from the
recursor closure and into its own separate classes respectively.

I know we were originally going to stick to closures and hold out on going
full OOP on the core until v2, and 'cleanup' won't work on classes, but
seeing as I need to completely overhaul archive functionality already
anyway, and I don't feel too great about doing it all again 6 months or
whatever down to track if I can avoid it, I've opted to take this approach
immediately for archives and compression, and we can just consider it a
'stepping stone' to a future v2 or whatever.

Feel free to review/audit/comment this commit if you'd like. I don't shy
away from feedback! However, don't pull this into master just yet. This
commit forks a new branch, and a crapload of work still needs to be done
yet to the phpMussel core before anything is viable. Committing the work
done thus far now to avoid monster-sized commits later down the track, when
we're ready to pull (this commit is only a small piece of what's needed).
Still a work-in-progress.
Still a work-in-progress.
Basically works properly now, but there are still a few small details to be
worked out properly, I need to figure out how to check for rar encryption
properly, there's a few inconsistencies between the different handlers when
scanning that I'll need to fix somehow, I still need to update the changelogs,
docs+L10N, and then refactor a few things in the codebase so that it doesn't
look too ugly. Almost done though.
- Adds a new output value specifically for when encryption is detected.
- Removes some old, outdated references in the docs and and updates docs with
  information about the new output value.
- Report possible tampering if actual decompressed size doesn't match reported
  decompressed size.
- Reduces the max_recursion default value from 10 down to 4 to tighten safety.
- Better reporting for missing required extensions.
Removes deprecated L10N strings and adds quine detection.
- Improves the archive handler, adds new methods to the interface, etc.
- Adds support for detecting encrypted rar files.
- Adds a table to the docs to clarify which compression and archive
  formats are and aren't supported, and removes some otherwise ambiguous
  wording about it from the docs and L10N data.
- Refactoring chameleon attack detection code.
- Slightly refactoring CLI handler.
- Also fix a possible edge-case issue with pre-compressed archives.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant