This is a custom Symfony anti-virus validator for file uploads. It uses the Quahog library to connect to a running clamav unix socket and scan the uploaded file.
This repository is strongly influenced by the clamav-validator for laravel and the TissueBundle.
composer require ferdynator/clamav-constraint
Also make sure you have ClamAv
installed.
Add this constraint in your entity of choice:
use ferdynator\ClamAvConstraint\Validator\Constraints as VirusAssert;
class JobImage {
...
/*
* ...
* @VirusAssert\ClamAv
*/
protected $file;
...
}
In case you are not using a unix socket or have it in a non-standard position you can pass an alternative socket-url:
/*
* ...
* @VirusAssert\ClamAv(
* socket="tcp://0.0.0.0:1234"
* )
*/
protected $file;
The clamav
daemon needs read-access to the uploaded file. You can specify
a chmod-mode with the chmod
option of the constraint.
/*
* ...
* @VirusAssert\ClamAv(
* chmod=0600
* )
*/
protected $file;