Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 4.94 KB

README.md

File metadata and controls

95 lines (72 loc) · 4.94 KB

v1: PHP >= 5.4 < 8.4 v2: PHP >= 7.2 < 8.4 v3: PHP >= 7.2 License: GPL v2 PRs Welcome

What is phpMussel?

An ideal solution for shared hosting environments, where it's often not possible to utilise or install conventional anti-virus protection solutions, phpMussel is a PHP script designed to detect trojans, viruses, malware and other threats within files uploaded to your system wherever the script is hooked, based on the signatures of ClamAV and others.


What's this repository for?

This provides automatic file upload scanning to your website.

composer require phpmussel/web

Example:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$Web = new \phpMussel\Web\Web($Loader, $Scanner);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Scans file uploads (execution terminates here if the scan finds anything).
$Web->scan();

// Fixes possible corrupted file upload names (Warning: modifies the content of $_FILES).
$Web->demojibakefier();

// Cleanup.
unset($Web, $Scanner, $Loader);

?><html>
    <form enctype="multipart/form-data" name="upload" action="" method="post">
      <div class="spanner">
        <input type="file" name="upload_test[]" value="" />
        <input type="submit" value="OK" />
      </div>
    </form>
</html>

(And, after using that form to try uploading ascii_standard_testfile.txt, a benign sample provided for the sole purpose of testing phpMussel)…

Screenshot: Screenshot


Documentation:

See also:


Last Updated: 1 July 2024 (2024.07.01).