SeenSecure Help

Protection des Téléchargements

Bloque les fichiers malveillants avant qu'ils n'atteignent le serveur : extensions dangereuses, types MIME invalides, double extension, injection null byte et analyse du contenu.

📤 Vue d'Ensemble des Téléchargements

L'onglet Téléchargements protège votre WordPress contre l'un des vecteurs d'attaque les plus critiques : le téléchargement de fichiers malveillants. Un attaquant qui parvient à télécharger un fichier PHP peut exécuter du code arbitraire, installer des backdoors, voler des données ou prendre le contrôle total du site.

🚨 Quels types d'attaques sont évités ? Exécution PHP à distance, backdoors persistantes, vol de données (wp-config, utilisateurs), abus du serveur (minage de crypto, spam), défiguration du site et escalade de privilèges.

🎯 Ce qui est bloqué

  • PHP Fichiers .php, .phtml, .php5, .php7, .pht
  • EXÉCUTABLES .exe, .bat, .cmd, .sh, .bin, .msi
  • SCRIPTS .js, .vbs, .jsp, .asp, .aspx, .shtml
  • DOUBLE EXT. image.jpg.php, fichier.pdf.exe
  • NULL BYTE fichier.php%00.jpg
  • TAILLE Fichiers dépassant la limite configurée

🔍 Exemples d'attaques réelles

# Subir un shell PHP para tomar el control shell.php → acceso remoto al servidor
# Ocultar PHP en una imagen subida al avatar avatar.php (con cabecera GIF) → backdoor persistente
# Doble extensión para engañar a WordPress imagen.jpg.php → se ejecuta como PHP
# Null byte injection para truncar la extensión shell.php%00.jpg → el servidor ignora .jpg

📋 Extensions Bloquées & Types MIME

Le firewall maintient par défaut une liste de plus de 30 extensions dangereuses bloquées. C'est un champ de texte libre séparé par des virgules : vous pouvez ajouter ou supprimer des extensions selon les besoins de votre site. Vous pouvez également configurer des limites de taille maximale et personnaliser la liste des types MIME bloqués.

Catégorie Extensions Bloquées par Défaut
PHP .php .php3 .php4 .php5 .php7 .phtml .pht .phps .phar .pgif
EXÉCUTABLES .exe .bat .cmd .com .pif .scr .msi .app .deb .rpm
SCRIPTS .js .ws .wsh .vbs .ps1 .sh .shtml .cgi .pl .py .jar
💡 Liste personnalisable : Voici les extensions bloquées d'origine. Vous pouvez en ajouter d'autres que vous souhaitez bloquer expressément (par exemple .htaccess, .sql ou .svg) ou en retirer une dont votre site a légitimement besoin — c'est un champ de texte libre que vous modifiez vous-même.

📏 Taille maximale du fichier

Définissez la limite en Mo (10 Mo par défaut). Si vous mettez 0, la limite générale de téléchargement de votre WordPress/hébergement est utilisée à la place, régie par upload_max_filesize et post_max_size dans php.ini.

🚫 Types MIME bloqués

Liste modifiable des types MIME qui seront automatiquement rejetés. Par défaut : application/x-php, application/x-httpd-php, text/php, application/x-executable, text/x-php. Vous pouvez ajouter d'autres types selon vos besoins.

💡 Personnalisation : Si votre site télécharge légitimement des types de fichiers qui sont bloqués (exemple : fichiers .svg pour des icônes), vous pouvez supprimer cette extension de la liste. Vérifiez cependant les risques de sécurité d'abord.

🔬 Protection Avancée

Les trois options avancées fournissent des couches d'analyse supplémentaires qui détectent les techniques d'évasion courantes que les attaquants utilisent pour contourner les listes d'extensions.

🔍 Analyser le contenu du fichier

Inspecte le contenu réel du fichier à la recherche de signatures de code malveillant. Détecte le PHP caché dans les images (GIF malveillant), les scripts embarqués, l'obfuscation et autres techniques de camouflage. Il ne se fie pas uniquement à l'extension ou au MIME déclaré — il examine les octets réels.

🔗 Détecter la double extension

Détecte les fichiers avec plusieurs extensions comme image.jpg.php ou document.pdf.exe. Les attaquants utilisent cette technique car certains systèmes ne valident que la dernière extension (trompant les validations de base), mais le serveur exécute la première extension dangereuse. Détecte également les variantes comme file.php;.jpg ou file.php..jpg.

💉 Détecter l'injection null byte

The attacker adds a null byte character (%00) in the filename to truncate the extension at the filesystem level. For example, shell.php%00.jpg — the system sees .jpg and allows it, but the server saves shell.php because the filesystem truncates at the null byte.

L'attaquant ajoute un caractère null byte (%00) dans le nom du fichier pour tronquer l'extension au niveau du système de fichiers. Par exemple, shell.php%00.jpg — le système voit .jpg et l'autorise, mais le serveur enregistre shell.php car le système de fichiers tronque au niveau du null byte.

✅ Recommandation : Gardez les 3 options avancées ACTIVÉES. Elles sont légères, n'affectent pas les performances et ferment des vecteurs d'attaque bien connus. Sans elles, un attaquant peut contourner la liste d'extensions avec des techniques simples.

⭐ Recommandations & Bonnes Pratiques

Suivez ces recommandations pour maximiser la protection des téléchargements sans affecter la fonctionnalité de votre site.

📏 Limites de taille recommandées

🖼️ Images

10 Mo — Suffisant pour les photos haute résolution sur les sites portfolio, galeries ou WooCommerce. Une image légitime dépasse rarement cette taille.

🎥 Vidéos / PDFs

50 Mo — Adapté aux vidéos courtes, présentations et grands documents PDF. Si vous avez besoin de plus, envisagez le streaming externe (YouTube, Vimeo).

📦 Fichiers compressés

25 Mo — Pour les fichiers .zip, .rar, .tar.gz. Méfiez-vous des fichiers compressés très volumineux — ils contiennent souvent du contenu malveillant empaqueté.

📋 Règles d'or

  1. Gardez les 3 options avancées ACTIVÉES — Analyse du contenu, double extension et null byte. Elles sont votre dernière ligne de défense contre les contournements.
  2. Ne retirez pas d'extensions de la liste sans raison — Chaque extension bloquée est un vecteur d'attaque fermé. Si vous en avez besoin, évaluez le risque et envisagez des alternatives plus sûres.
  3. Consultez le journal d'activité périodiquement — Les 20 dernières tentatives de téléchargement bloquées apparaissent dans le journal. Leur examen vous aide à identifier les schémas d'attaque et à ajuster les paramètres.
  4. Combinez-le avec la sécurité au niveau du serveur — La protection des téléchargements fonctionne au niveau de l'application WordPress. Pour une sécurité maximale, combinez-la avec des règles du serveur web (bloquer l'exécution PHP dans wp-content/uploads via .htaccess ou Nginx).

📊 Journal d'Activité

Le panneau affiche les 20 dernières tentatives de téléchargement bloquées, chacune avec les colonnes suivantes :

Colonne Description
Heure Horodatage de la tentative
Fichier Nom du fichier tenté
Raison Badge avec la raison du blocage
Action Si la tentative a été bloquée (firewall en mode Protection/Strict) ou seulement enregistrée (mode Monitoring)
IP Adresse IP source du téléchargement
Rôle Rôle WordPress de l'utilisateur ayant tenté le téléchargement

Les badges de raison peuvent être :

Extension bloquée MIME bloqué Taille dépassée Double extension Octet nul Contenu malveillant
🔍 Interprétez le journal : Si vous voyez beaucoup de blocages pour extension bloquée depuis la même IP, il s'agit probablement d'une attaque automatisée. Les blocages pour taille dépassée peuvent être des utilisateurs légitimes — envisagez d'ajuster la limite. Les blocages pour octet nul ou contenu malveillant sont presque toujours des attaques ciblées.

🆚 Protection des téléchargements vs. Sécurité serveur

Il est important de comprendre la différence entre les deux couches. Elles ne sont pas exclusives — au contraire, elles se complètent.

Aspect Protection des téléchargements (SeenSecure) Sécurité serveur (.htaccess / Nginx)
Niveau Application WordPress (PHP) Serveur web (Apache / Nginx)
Ce qu'il protège Bloque les téléchargements malveillants avant qu'ils ne soient enregistrés sur le serveur. Analyse l'extension, le MIME, le contenu, la double extension, le null byte. Bloque l'exécution de fichiers dans des répertoires spécifiques. N'empêche pas le téléchargement, mais empêche leur exécution en tant que PHP.
Avantage Détection intelligente : contenu, contournements. Configurable depuis le tableau de bord WordPress. Fonctionne même si WordPress est compromis. Ne dépend pas de PHP.
Recommandation Utilisez les deux. La protection des téléchargements bloque 99% des attaques. La sécurité au niveau du serveur est le filet de sécurité qui attrape le 1% restant si quelque chose échoue.
📌 Note à propos des SVG : Les fichiers SVG sont sur la liste bloquée car ils peuvent contenir du JavaScript en ligne (<script> ou onload). Si vous devez télécharger des SVG pour des icônes, vous pouvez les retirer de la liste, mais envisagez de les assainir d'abord ou d'utiliser un plugin qui nettoie les SVG automatiquement.