Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

httpav

51 sites Security covered
View on drupal.org

A Drupal module that submits uploaded files to a HTTP service endpoint. Uploaded files are sent in a configurable manner to a configurable endpoint. The response of which will control if the file can be accepted by Drupal.

The intent is to obfuscate complicated TCP/Sock Anti-virus backends with a standard HTTP interface to allow for a more microservice architecture.

Prerequisites

  1. A service that is reachable via HTTP

API requirements

The module makes some assumptions on how the HTTP request needs to be made. It allows for parts of the request to be configurable to help accommodate differences in service endpoints.

Request

The module will make a request that looks like:

'Headers' => {
  'Content-Type' => 'multipart/form-data'
}
'multipart' => [
  [
    'name' => 'malware',
    'contents' => '@file.png',
    'filename' => 'file.png',
  ]
]

Response

The module assumes that the service will respond with the results in a particular format.

{
  "result": {
    "infected":true,
    "result":"ApplicUnwnt",
    "engine":"5.0.163652.1142",
    "updated":"20190406"
  }
}

The module expects the service to return with the `infected` key to represent if the file can be saved or not. If the `infected` key is `true` the file will fail the validation check in Drupal and will not allow the file to be saved.

Similar projects

  • ClamAV: Anti-virus backend for media management.

Activity

Total releases
2
First release
Feb 2025
Latest release
2 months ago
Release cadence
351 days
Stability
100% stable

Releases

Version Type Release date
1.3.0 Stable Feb 10, 2026
1.2.0 Stable Feb 24, 2025