Lecteur Markdown
BEAMREACTOR_RSS_FEEDER
RSS Feeder v2.0 - Upgrade Documentation #
Vue d'ensemble #
Mise à jour du rss_feeder.php de BeamReactor pour AEGIS IA avec intégration du Sanitizer JASSPR et système de cache MySQL pour l'intelligence des menaces.
Nouveautés v2.0 #
1. Intégration du Sanitizer JASSPR #
- Validation de toutes les données entrantes (titres, URLs, descriptions)
- Protection contre injection SQL et XSS
- Nettoyage automatique des données avant stockage
- Limite de taille configurable (4KB par défaut)
2. Cache MySQL (`rss_cache`) #
CREATE TABLE `rss_cache` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`source_id` INT NOT NULL,
`title` VARCHAR(255) NOT NULL,
`description` TEXT,
`link` VARCHAR(512),
`pub_date` DATETIME,
`fetched_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
`category` VARCHAR(100),
`keywords` TEXT,
INDEX(`pub_date`),
INDEX(`source_id`),
INDEX(`category`),
FULLTEXT(`title`, `description`, `keywords`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
3. Extraction de mots-clés #
Détection automatique de mots-clés liés à la sécurité :
- Vulnérabilités (CVE, exploit, zero-day)
- Malware (ransomware, trojan, botnet)
- Attaques (XSS, SQL injection, DDoS, phishing)
- IA et machine learning
- Patches et updates
4. Catégorisation automatique #
- `vulnerability` - Vulnérabilités et CVE
- `threat` - Menaces et attaques
- `ai-news` - Actualités IA
- `general` - Autres actualités
5. Corrélation future #
La structure permet de :
- Relier des événements temporels
- Analyser les patterns d'attaques
- Générer des rapports chronologiques
- Détecter les tendances émergentes
Installation #
Étape 1 : Copier le Sanitizer #
cp -r lib/sanitizer/ /path/to/beamreactor/lib/
Étape 2 : Remplacer rss_feeder.php #
# Backup de l'ancien
cp plugins/rss_feeder/rss_feeder.php plugins/rss_feeder/rss_feeder.php.bak
# Installer le nouveau
cp rss_feeder_enhanced.php plugins/rss_feeder/rss_feeder.php
Étape 3 : La table `rss_cache` se crée automatiquement #
Au premier chargement du plugin, la table sera créée si elle n'existe pas.
Compatibilité #
✅ 100% rétro-compatible
- L'affichage existant est préservé
- Les fonctionnalités actuelles fonctionnent à l'identique
- Le cache s'ajoute de manière transparente
- Pas de breaking changes
Utilisation #
Mode normal (inchangé) #
Le plugin fonctionne exactement comme avant. Les items sont affichés et en plus stockés en cache.
Accès au cache (nouvelles possibilités) #
// Récupérer tous les items en cache
$query = mysqli_query($db_ressource, "SELECT * FROM rss_cache ORDER BY pub_date DESC LIMIT 50");
// Chercher par mots-clés
$query = mysqli_query($db_ressource,
"SELECT * FROM rss_cache WHERE keywords LIKE '%CVE%' ORDER BY pub_date DESC");
// Chercher par catégorie
$query = mysqli_query($db_ressource,
"SELECT * FROM rss_cache WHERE category='vulnerability' ORDER BY pub_date DESC");
// Recherche full-text
$query = mysqli_query($db_ressource,
"SELECT * FROM rss_cache WHERE MATCH(title, description, keywords)
AGAINST('ransomware attack' IN BOOLEAN MODE)");
Prochaines étapes #
Vue agrégée (à implémenter) #
Créer une page qui affiche tous les flux combinés :
// plugins/rss_feeder/rss_aggregated.php
$feeds = mysqli_query($db_ressource,
"SELECT c.*, l.rsstitle as source
FROM rss_cache c
JOIN rss_links l ON c.source_id = l.id
WHERE l.activated=1
ORDER BY c.pub_date DESC
LIMIT 100");
Corrélation avec incidents #
// Relier les news aux incidents détectés dans les logs
$incidents = mysqli_query($db_ressource,
"SELECT i.*, r.title, r.pub_date
FROM security_incidents i
LEFT JOIN rss_cache r ON
DATE(i.detected_at) = DATE(r.pub_date)
AND r.keywords LIKE CONCAT('%', i.attack_type, '%')");
Architecture #
/lib/sanitizer/ ← Sanitizer JASSPR
/Datatypes/
DatatypeString.php ← Validation strings
DatatypeURL.php ← Validation URLs
Parser.php ← Parser principal
/plugins/rss_feeder/
rss_feeder.php ← Plugin amélioré (ce fichier)
conf/rss_feeder.conf.inc.php
locale/
rss_feeder.en.inc.php
rss_feeder.fr.inc.php
Base de données:
rss_links ← Existant (sources RSS)
rss_cache ← Nouveau (items cachés)
Bénéfices pour AEGIS IA #
1. Veille automatisée - Tous les flux de sécurité en un seul endroit
2. Historique complet - Base de données searchable de tous les événements
3. Corrélation - Relier les news aux incidents clients
4. Intelligence - Anticiper les menaces via les patterns
5. Rapports - Générer des rapports chronologiques pour clients
6. Légitimité - 22 ans de code BeamReactor + intelligence moderne
Notes techniques #
Sanitizer #
Le Sanitizer JASSPR (2017-2018) est ton code original. Il a été conservé tel quel malgré les modifications de l'équipe JASSPR. Les parties "cassées" ne sont pas utilisées dans ce contexte RSS.
Performance #
- Le cache se fait après l'affichage (pas de ralentissement)
- Les erreurs de cache sont silencieuses (pas d'interruption)
- Index MySQL optimisés pour les recherches
- FULLTEXT pour recherche rapide
Sécurité #
- Toutes les entrées sont validées par le Sanitizer
- mysqli_real_escape_string sur les données SQL
- Détection des patterns d'injection
- Limitation de taille des champs
Support #
Pour toute question sur cette implémentation :
- Le code est documenté inline
- La structure suit les conventions BeamReactor
- Testé avec PHP 8.x et MySQL 5.7+
---
Auteur original : Treveur Bretaudière (2005-2025)
Version : 2.0 - 21.11.2025
Licence : Beam Reactor Engine License