Comment puis-je laisser le fichier .htaccess
d’Apache vérifier si PHP est activé? J’ai essayé des choses comme et
mais cela ne semble rien faire lorsque
/ désactive le module.
Je voudrais avoir un repli dans mon .htaccess
qui refuse l’access de tous lorsque PHP est désactivé. Afin d’éviter les fuites de code PHP en texte brut.
Je veux faire quelque chose comme ça:
# If PHP is not installed, deny all access to .php files to prevent PHP code leakage order deny,allow deny from all
En fin de compte, il vérifiera quelque chose comme if php7 AND php5 AND php4 are disabled, deny access
. Des idées?
De plus, lorsque AllowOverride est None et que le fichier .htaccess
ne fait rien. Quelles sont les options pour empêcher le code PHP de fuir en texte clair?
Order Deny,Allow Deny from all
Dans Apache 2.4
Require all denied
Dans Apache 2.4, il existe plusieurs nouvelles fonctionnalités utiles: define , ifdefine et if, else, ifelse .
Dans ce qui suit, nous pouvons refuser par défaut et activer uniquement si PHP_IS_ENABLED
est défini.
Define PHP_IS_ENABLED Define PHP_IS_ENABLED # ... Require all denied
Voici une solution pour vérifier avec plusieurs versions de PHP (par exemple “si php 5 ou php 7 est activé”) qui fonctionne en effet dans .htaccess
.
Il nécessite Apache 2.4 avec le module mod_env
(99% est activé sur votre hôte).
SetEnv PHP_IS_ENABLED yes SetEnv PHP_IS_ENABLED yes ... your directives
REDIRECT_PHP_IS_ENABLED
est nécessaire pour rendre ce travail pour les requêtes redirigées en interne avec mod_rewrite.
Voici un raffinement de la réponse de cronfy pour .htaccess
que j’utilise pour définir les directives PHP qui doivent être définies avant que les scripts ne s’exécutent, donc ne peut pas être défini dans le code (par exemple ini_set()
):
SetEnv MOD_PHP 5 SetEnv MOD_PHP 7 php_value post_max_size 100M php_value upload_max_filesize 50M
Ces directives doivent être synchronisées avec celles de .user.ini
:
post_max_size = 100M upload_max_filesize = 50M