Scan uploaded files with ClamAV or run system commands against uploaded files. This allows you to integrate third party malware scanners.
This plugin requires either ClamAV or another third-party scanner to be installed. This plugin will pass uploaded files to the scanner and take appropriate actions based ont he results, but it is not, itself, a malware scanner.
If you have a dedicated server, you can install php-clamav for performance and convenience.
Banner image from Eric Martinenz
- Log into your WordPress admin
- Click Plugins
- Click Add New
- Search for Upload Scaner
- Click Install Now under “Upload Scanner”
- Activate the plugin
- Download the plugin
- Extract the contents of the zip file
- Upload the contents of the zip file to the wp-content/plugins/ folder of your WordPress installation
- Then activate the Plugin from Plugins page.
- It says ClamAV isn’t installed?
You’ll need to install ClamAV and php-clamav. You don’t actually need ClamAV to use this plugin, though. You can use the system command to run another scanner that can accept input on the command line.
For example, you could scan with avira like this:
- It says exec is disabled
Your server admin has probably disabled the “exec” function. You’ll want to talk to your server admin before moving forward with this plugin. They may be able to help, or they may have other security measures in place that mean you don’t need this plugin.
- Why doesn’t this plugin offer a “delete file” option?
PHP automatically deletes the files for you if they’re not handled.
“The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.”
- Are there any security issues running shell commands?
The only user input that is passed to the shell command is the original file name chosen by the user, and this is passed through escapeshellarg() to sanitize it. Otherwise, the only command that’s run is chosen by you. It’s left to your server admin (or you) to determine that it’s safe for you to issue commands. This plugin should prevent attacker input from making it into the command. Let me know if you see any problems.
- Is this compatible with Multisite?
I haven’t tested this with Multisite yet. If you have input, let me know.
- Internationalized strings
- Marked compatibility with WordPress 3.4
- Added logging