Manual:$wgAntivirusSetup

From Linux Web Expert

<translate> Antivirus</translate>: $wgAntivirusSetup
Configuration for different virus scanners.
<translate> Introduced in version:</translate>1.5.0
<translate> Removed in version:</translate><translate> still in use</translate>
<translate> Allowed values:</translate><translate> Unspecified</translate>
<translate> Default value:</translate>(see below)

Details

Configuration for different virus scanners. This is an associative array of associative arrays: it contains one setup array per known scanner type. The entry is selected by $wgAntivirus , i.e. valid values for $wgAntivirus are the keys defined in this array. The antivirus functions may not work on Windows in MediaWiki versions before 1.16.0.

The configuration array for each scanner contains the following keys:

command
The full command to call the virus scanner - %f will be replaced with the name of the file to scan. If not present, the filename will be appended to the command.
Note that this must be overwritten if the scanner is not in the system path; in that case, you should set $wgAntivirusSetup[$wgAntivirus ]['command'] to the desired command with full path. (This line should appear after the line that sets $wgAntivirus.)
codemap
A mapping of exit code to return codes of the detectVirus() function in "SpecialUpload.php".
  • An exit code mapped to AV_SCAN_FAILED causes the function to consider the scan to be failed. This will pass the file if $wgAntivirusRequired is not set.
  • An exit code mapped to AV_SCAN_ABORTED causes the function to consider the file to have an unsupported format, which is probably immune to viruses. This causes the file to pass.
  • An exit code mapped to AV_NO_VIRUS will cause the file to pass, meaning no virus was found.
  • All other codes (like AV_VIRUS_FOUND) will cause the function to report a virus.
You may use "*" as a key in the array to catch all exit codes not mapped otherwise.
messagepattern
A Perl regular expression to extract the meaningful part of the scanner's output. The relevant part should be matched as group one (\1).
If not defined or the pattern does not match, the full message is shown to the user.

Default values

MediaWiki version:
<translate> ≥</translate> 1.20
$wgAntivirusSetup = [

	# setup for clamav
	'clamav' => [
		'command' => 'clamscan --no-summary ',
		'codemap' => [
			"0" => AV_NO_VIRUS, # no virus
			"1" => AV_VIRUS_FOUND, # virus found
			"52" => AV_SCAN_ABORTED, # unsupported file format (probably immune)
			"*" => AV_SCAN_FAILED, # else scan failed
		],
		'messagepattern' => '/.*?:(.*)/sim',
	],
];
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.19</tvar> is unsupported version</translate>">
1.5 – 1.19
<translate> MediaWiki versions:</translate>
$wgAntivirusSetup = array(

	#setup for clamav
	'clamav' => array (
		'command' => "clamscan --no-summary ",

		'codemap' => array (
			"0" =>  AV_NO_VIRUS, # no virus
			"1" =>  AV_VIRUS_FOUND, # virus found
			"52" => AV_SCAN_ABORTED, # unsupported file format (probably imune)
			"*" =>  AV_SCAN_FAILED, # else scan failed
		),

		'messagepattern' => '/.*?:(.*)/sim',
	),

	#setup for f-prot
	'f-prot' => array (
		'command' => "f-prot ",

		'codemap' => array (
			"0" => AV_NO_VIRUS, # no virus
			"3" => AV_VIRUS_FOUND, # virus found
			"6" => AV_VIRUS_FOUND, # virus found
			"*" => AV_SCAN_FAILED, # else scan failed
		),

		'messagepattern' => '/.*?Infection:(.*)$/m',
	),
);

See also