En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

botsniffer Documentation › BOTSNIFFER_DOCUMENTATION

BOTSNIFFER_DOCUMENTATION

Botsniffer - Bot Statistics #

Statistiques et analyse des visites de bots.

Namespace: `Beamreactor\Plugins\Botsniffer`

Version: 2.0.0

Niveau requis: `BOTSNIFFER_LEVEL_HIGHUSER`

Vue d'ensemble #

Module de surveillance des bots visitant le site. Enregistre les visites, les corrèle avec la base de données des bots connus (`botdb`), et fournit des statistiques avec analyse de risque.

Fonctionnalités #

  • Journalisation des visites de bots
  • Corrélation avec la base `botdb`
  • Calcul du risque moyen
  • Détection des bots inconnus
  • Ajout de nouveaux bots à la base
  • Purge des logs
  • Pagination des résultats

Actions (paramètre `botaction`) #

| Valeur | Action | Description |

|--------|--------|-------------|

| `$dialbot[2]` | Purge | Vide la table `botsniffer` |

| `$dialbot[3]` | Stats | Affiche les statistiques agrégées |

| `$dialbot[9]` | Bot list | Liste les bots connus |

Actions (paramètre `botedit`) #

| Valeur | Action |

|--------|--------|

| `$dialbot[11]` | Affiche le formulaire d'ajout |

| `1` | Traite l'ajout d'un nouveau bot |

Structure des tables #

botsniffer #

CREATE TABLE botsniffer (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ip VARCHAR(45),
    useragent TEXT,
    tstamp DATETIME,
    INDEX (tstamp),
    INDEX (ip)
);

botdb #

CREATE TABLE botdb (
    id INT AUTO_INCREMENT PRIMARY KEY,
    trigger VARCHAR(30) NOT NULL,
    botname VARCHAR(200),
    url VARCHAR(255),
    category VARCHAR(30) DEFAULT 'unknown',
    risk TINYINT DEFAULT 0,
    firstvisit DATE,
    lastvisit DATE,
    UNIQUE KEY (trigger),
    INDEX (category)
);

Catégories #

| Clé | Description |

|-----|-------------|

| `search_engine` | Moteurs de recherche |

| `ai_crawler` | Crawlers IA |

| `social_media` | Réseaux sociaux |

| `monitoring` | Services de monitoring |

| `archiver` | Archiveurs |

| `feed_reader` | Lecteurs de flux |

| `seo_tool` | Outils SEO |

| `malicious` | Bots malveillants |

| `unknown` | Non identifiés |

Niveau de risque #

Échelle 0-9. Les bots inconnus reçoivent un risque par défaut de 3.

Le module calcule :

  • Risque moyen : `Σ(hits × risk) / total_hits`
  • Pourcentage inconnus : `unknown_hits / total_hits × 100`

Paramètres GET #

| Paramètre | Type | Description |

|-----------|------|-------------|

| `bspage` | int | Numéro de page |

Paramètres POST #

Ajout de bot #

| Paramètre | Type | Description |

|-----------|------|-------------|

| `fields[preg]` | string | Trigger de détection (max 30 car.) |

| `fields[botname]` | string | Nom du bot (max 200 car.) |

| `fields[url]` | URL | Documentation du bot |

| `fields[category]` | string | Catégorie |

| `fields[risk]` | int | Niveau de risque (0-9) |

Locale #

Clés utilisées dans `$dialbot`:

| Index | Description |

|-------|-------------|

| 1 | Lien retour |

| 2 | Bouton purge |

| 3 | Bouton stats |

| 4 | Message purge OK |

| 5 | Confirmation purge |

| 6 | Label total visites |

| 7 | En-tête IP |

| 8 | En-tête User-Agent |

| 9 | Bouton liste bots |

| 10 | Label nombre bots connus |

| 11 | Bouton ajouter bot |

| 13 | Label première entrée |

| 14 | En-tête timestamp |

| 15 | En-tête risque |

| 16 | Message ajout OK |

| 17 | Erreur trigger requis |

| 18 | Erreur doublon |

| 21 | Label bot inconnu |

| 24 | Label risque moyen |

| 25 | En-tête nom |

| `th_category` | En-tête catégorie |

| `cat_*` | Labels catégories |

| `unknown_pct` | Label pourcentage inconnus |

Algorithme de matching #

foreach($channel as $trigger => $info)
{
    if(stripos($useragent, $trigger) !== false)
    {
        // Bot identifié
        break;
    }
}

Le matching est insensible à la casse et cherche le trigger n'importe où dans le User-Agent.

Vues #

Vue principale #

  • Panneau de contrôle (total, purge, stats, liste)
  • Liste des 25 dernières visites paginée
  • Risque et catégorie par visite

Vue stats #

  • Top 20 des User-Agents par nombre de hits
  • Risque moyen calculé
  • Pourcentage de bots inconnus

Vue liste bots #

  • Tous les bots de `botdb`
  • Accès au formulaire d'ajout

CSS #

Le module charge `plugins/botsniffer/css/botsniffer.css`.

Classes principales :

  • `.botsniffer-table` — Tableau de données
  • `.botsniffer-panel` — Panneau de contrôle
  • `.botsniffer-risk-bar` — Barre de risque
  • `.botsniffer-cat-badge` — Badge catégorie
  • `.botsniffer-unknown` — Style bot inconnu
  • `.botsniffer-alert` — Messages d'alerte
  • `.botsniffer-pagination` — Contrôles de pagination

Notes #

  • La purge est irréversible (TRUNCATE)
  • Les bots inconnus sont signalés visuellement
  • Le trigger doit être unique dans `botdb`
  • Si `botname` est vide, le trigger est utilisé comme nom
de en fr