Proyecto

General

Perfil

APIAntivirus

Crear un módulo que integre un motor antivirus en consigna es bastante sencillo.

Basta con crear en el directorio app/libraries/avmodules un nuevo fichero .php. Dentro de éste, definiremos una nueva clase que cumplirá lo siguiente:

  • El nombre de la clase será el mismo nombre del fichero, con la primera letra en mayúscula y sin la extensión
  • La clase extenderá a la clase Avengine

Por ejemplo, para el fichero mimotor.php:

class Mimotor extends Avengine {
}

Métodos necesarios

function scan($path)

$path: recibirá la ruta completa al fichero que se va a analizar.

En esta función se ejecutará el motor del antivirus (con exec(), system() o como proceda) contra la ruta pasada.

Resultado devuelto: array de dos posiciones, array(c, extra)
  • c: código devuelto (numérico). Posibles valores:
    • 0 => LIMPIO
    • 1 => INFECTADO
    • 2 => ERROR
  • extra: mensaje adicional, según el código toma el siguiente sentido:
    • LIMPIO: no se usa extra
    • INFECTADO: nombre del virus que afecta al fichero
    • ERROR: mensaje descriptivo del error que se ha producido

Uso de parámetros de configuración

El fichero config.php de consigna permite especificar opciones para los diversos módulos de análisis de fichero mediante la directiva avconfig. Recordemos que avconfig se definirá como un array asociativo (clave => valor).

Para recoger los valores de configuración de un módulo, éste deberá definir un constructor con un parámetro. Dicho parámetro será el array definido en config.php para avconfig.

function __construct($config) {
 $this->miopcion = $config['miopcion'];
}

Referencia

Véase el módulo para ClamAV (app/libraries/avmodules/clamav.php) para ver una implementación real

Exportar a: PDF HTML TXT