Skip to content
/ Web Public

phpMussel upload handler (dedicated Composer version).

License

Notifications You must be signed in to change notification settings

phpMussel/Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2d3daa8 · May 17, 2025
Jan 4, 2025
Sep 19, 2024
May 17, 2025
Sep 2, 2024
Jun 13, 2023
Nov 6, 2024
Jun 9, 2020
Jul 1, 2024
Jul 17, 2024

Repository files navigation

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).