Comment désactiver le mod_security du serveur ?
Introduction
mod_security est un module Apache qui aide à protéger les sites web contre diverses attaques. Il bloque les exploits couramment connus à l'aide d'expressions régulières et de jeux de règles, et est activé par défaut sur les serveurs de certains hébergeurs.
Dans LaraClassifier et JobClass, les fonctions PHP telles que exec() et escapeshellarg() doivent être activées pour fonctionner correctement. Selon votre hébergeur, vous devrez peut-être désactiver mod_security pour éviter les erreurs 403 ou les protections reCAPTCHA sur les fichiers statiques.
Depuis cPanel
Pour désactiver mod_security depuis cPanel :
- Connectez-vous à cPanel
- Dans la section Sécurité, cliquez sur ModSecurity
- Sur la page suivante, vous verrez une liste de domaines avec leur statut activé/désactivé
- ModSecurity est activé par défaut pour tous les sites
- Cliquez sur le bouton OFF pour désactiver ModSecurity
Depuis le fichier .htaccess
Si vous ne pouvez pas désactiver mod_security depuis cPanel, vous pouvez le faire dans le fichier .htaccess principal en utilisant ce code :
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Notez que mod_security peut être compilé pour empêcher la désactivation via les fichiers .htaccess, et les hébergeurs peuvent également limiter les autorisations .htaccess via les paramètres AllowOverride.
Sur certains serveurs, vous pouvez désactiver ModSecurity via .htaccess, mais vous ne pouvez que l'activer ou le désactiver — vous ne pouvez pas désactiver des règles individuelles.
Une meilleure pratique qui maintient la sécurité du site est de le désactiver uniquement pour des URLs spécifiques plutôt que pour l'ensemble de votre site. Vous pouvez spécifier les URLs à cibler en utilisant une expression régulière dans une instruction <If> :
### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#"
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
<If "%{REQUEST_URI} =~ m#/assets/#">
SecFilterEngine Off
SecFilterScanPOST Off
</If>
</IfModule>