Question

E.g. Est-il plus sûr d'utiliser mod_php au lieu de php-cgi ? Ou est-il plus sûr d’utiliser mod_perl au lieu des scripts cgi traditionnels ?

Les problèmes de sécurité m'intéressent principalement, mais la vitesse pourrait poser problème s'il existe des différences significatives.

Était-ce utile?

La solution

La sécurité dans quel sens? De toute façon, cela dépend vraiment du script en cours d’exécution et de la qualité de son écriture. De nos jours, trop de scripts sont à moitié fondus et ne valident pas correctement les entrées.

Personnellement, je préfère FastCGI à mod_php car si un processus FastCGI meurt, un nouveau processus sera généré, alors que j'ai vu mod_php tuer l'intégralité d'Apache.

En ce qui concerne la sécurité, FastCGI vous permet techniquement d’exécuter le processus php sous un utilisateur différent de celui des serveurs Web par défaut.

Sur une note séparée, si vous utilisez le nouveau support des threads de travail d'Apache, vous voulez vous assurer que vous n'utilisez pas mod_php car certaines extensions ne sont pas thread-safe et entraîneront des conditions de concurrence critique.

Autres conseils

Si vous utilisez votre propre serveur, utilisez le module, c'est un peu plus rapide. Si vous êtes sur un serveur partagé, la décision a déjà été prise pour vous, généralement du côté CGI. La raison en est les autorisations du système de fichiers. PHP en tant que module fonctionne avec les autorisations du serveur http (généralement 'apache') et à moins que vous ne puissiez modifier vos scripts pour cet utilisateur, vous devez les modifier en 777 - lisibles par tout le monde. Cela signifie, hélas, que votre voisin de serveur peut les consulter - pensez à l'emplacement de stockage du mot de passe d'accès à la base de données. La plupart des serveurs partagés ont résolu ce problème en utilisant des éléments tels que phpsuexec et autres, qui exécutent des scripts avec les autorisations du propriétaire du script. Vous pouvez donc (devez) faire modifier votre code en 644. Phpsuexec ne fonctionne qu'avec PHP en tant que CGI - c'est à peu près tout , c’est juste une affaire de machine locale - ne fait aucune différence pour le monde entier.

La plupart des failles de sécurité sont dues à une programmation médiocre dans le script lui-même. Il est donc vraiment inutile de les utiliser si elles sont exécutées en tant que cgi ou en modules. Cela dit, les modules apache peuvent potentiellement bloquer le serveur Web entier (surtout si vous utilisez un MPM à thread) et mod_php est assez célèbre pour cela.

cgi sera plus lent, mais il existe aujourd'hui des solutions, principalement FastCGI et ses amis.

Quel est votre modèle de menace?

Dans la doc PHP install.txt pour PHP 5.2.6:

Les modules de serveur offrent des performances nettement supérieures et supplémentaires.    fonctionnalité comparée au binaire CGI.

Pour IIS / PWS:

Avertissement

En utilisant la configuration CGI, votre serveur est ouvert à plusieurs possibilités.    attaques. Veuillez lire notre section sécurité CGI pour apprendre à défendre    vous de ces attaques.

Un module tel que mod_php ou FastCGI est incroyablement plus rapide que de simples CGI. Ne faites simplement pas de CGI. Comme d’autres l’ont dit, le programme PHP lui-même constitue la plus grande menace pour la sécurité, mais il n’est pas important de noter qu’il existe une autre considération, sur les hôtes partagés.

Si votre script est sur un hôte partagé avec d'autres programmes php et que l'hôte ne s'exécute pas en mode sans échec, il est probable que tous les processus serveur s'exécutent sous le même utilisateur. Cela pourrait signifier que tout autre script php peut lire le vôtre, y compris les mots de passe de base de données. Assurez-vous donc d’examiner la configuration du serveur pour vous assurer que votre code ne sera pas lisible par des tiers.

Même si vous contrôlez votre propre hébergement, gardez à l'esprit qu'une autre application Web piratée sur le serveur pourrait être une passerelle vers d'autres.

L’utilisation d’un module intégré sera certainement plus rapide que l’utilisation de CGI. Les implications pour la sécurité dépendent de la configuration. Dans la configuration par défaut, ils sont à peu près les mêmes, mais cgi autorise certaines configurations plus sécurisées que les modules intégrés ne peuvent pas fournir, en particulier dans le contexte de l'hébergement partagé. Contre quoi voulez-vous vous protéger?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top