13

Recherchez des virus

antivrus

POST https://tesseractor.com/api/v1/antivirus?login=&password=

loginVotre code d'identification.
passwordVotre mot de passe.
multipart/form-data
fileContenu du PDF en binaire.
$ curl -D - -X POST "https://tesseractor.com/api/v1/antivirus?login=abcdef&password=ABCDEF" -F "file=@file.pdf"

NOTE : Le service n'accepte de rechercher des virus que dans un PDF.

Téléchargez le code des fonctions sendpost et file_mime_type de la librairie iZend. Copiez les fichiers dans l'espace de votre application.

NOTE : Reportez-vous à la page Appelez l'API du service pour une description des fonctions sendpost et file_mime_type.

Ajoutez le fichier antivirus.php avec le contenu suivant :

  1. require_once 'sendhttp.php';
  2. require_once 'filemimetype.php';

Charge le code des fonctions sendpost et file_mime_type.

  1. function antivirus($login, $password, $file) {

Définit la fonction antivirus. $login est votre code d'identification. $password est votre mot de passe. $file est le chemin d'accès du fichier PDF à analyser.

  1.     $curl = 'https://tesseractor.com/api/v1/antivirus' . '?' . 'login=' . urlencode($login) . '&' . 'password=' . urlencode($password);

Met $curl à l'URL de l'action antivirus avec le code d'identification et le mot de passe du compte de l'utilisateur. $login et $password doivent être échappés.

  1.     $files=array('file' => array('name' => basename($file), 'tmp_name' => $file, 'type' => file_mime_type($file)));

Prépare la liste des fichiers attachés au POST : file - le PDF à analyser avec le nom du fichier, le chemin d'accès au fichier et son type MIME.

  1.     $response=sendpost($curl, false, $files);

Envoie la requête HTTP avec sendpost. Les arguments login et password sont déjà dans $curl.

  1.     if (!$response or $response[0] != 200) {
  2.         return false;
  3.     }

Si $response vaut false, le serveur est inaccessible. Si $response[0] ne contient pas le code de retour HTTP 200 Ok, une erreur d'exécution s'est produite. En cas d'erreur, antivirus retourne false.

  1.     $r=json_decode($response[2], true);

Décode les données retournées en JSON.

  1.     if ($r['status'] == 'success') {
  2.         return true;
  3.     }

Retourne true si aucun virus n'a été détecté dans le PDF.

  1.     if ($r['status'] == 'fail') {
  2.         return $r['data']['names'];
  3.     }

Retourne un tableau des noms des virus qui ont été détectés si le PDF est infecté.

  1.     return false;
  2. }

Retourne false en cas d'erreur.

EXEMPLE

Testez le programme avec les fichiers fournis par l'EICAR :

En supposant que vous avez sauvé les fichiers sendhttp.php, filemimetype.php et antivirus.php dans le répertoire courant, lancez PHP en mode interactif, chargez la fonction antivirus et appelez-la avec votre code d'identification et votre mot de passe, le chemin d'accès à un fichier PDF :

$ php -a
php > require_once 'antivirus.php';
php > print_r(antivirus('abcdef', 'ABCDEF', 'eicar.pdf'));
Array
(
    [0] => Pdf.Dropper.Agent-6299277-0
)
php > quit

Le document est infecté par le virus Pdf.Dropper.Agent-6299277-0.

VOIR AUSSI

Appelez l'API du service, Validez un PDF/A, Générez un PDF/A

Commentaires

Pour ajouter un commentaire, cliquez ici.