web-dev-qa-db-fra.com

Est-il sûr d'installer XAMPP sur mon ordinateur personnel pour tester le code PHP?

Je veux tester du code PHP et je pense que la meilleure façon est d'installer XAMPP - mais je suis nerveux à l'idée d'installer un logiciel serveur sur mon ordinateur personnel.

Est-il généralement sûr d'installer XAMPP (étant donné que je ne l'ai pas fait auparavant et que je n'ai pas beaucoup d'expérience avec la sécurité des serveurs)? Que dois-je savoir? Sinon, existe-t-il un moyen plus sûr de tester PHP code?

18
Frost

Apache et MySQL peuvent être configurés de manière à ce qu'ils écoutent uniquement les requêtes de votre propre ordinateur. Pour la plupart des systèmes de test, cela est correct et cela réduit considérablement le risque car les services ne sont pas accessibles depuis Internet.

Avant de démarrer XAMPP pour la première fois, recherchez et modifiez ces fichiers:

Pour Apache éditez les fichiers xampp\Apache\conf\httpd.conf et xampp\Apache\conf\extra\httpd-ssl.conf. Recherchez les lignes commençant par "Listen" telles que

Listen 80

et remplacez-les par

Listen 127.0.0.1:80

Pour MySQL ouvrez le fichier xampp\mysql\bin\my.cnf trouvez la section "[mysqld]" et ajoutez cette ligne

bind-address=localhost

Après avoir démarré les services, vérifier le résultat en allant dans une fenêtre de commande et démarrer et exécuter:

netstat -a -n

Pour les entrées marquées comme LISTEN dans la dernière colonne, regardez la colonne Listen. Il doit toujours commencer par 127.0.0.1 ou :: 1 mais pas par 0.0.0.0.

22

XAMPP a de très mauvais antécédents en matière de sécurité. Il existe des vulnérabilités d'exécution de code à distance exploitables via CSRF qui sont connues et non corrigées. (C'est vraiment dans leur exemple merdique d'applications PHP/MySQL fournies.) Même si vous n'êtes lié qu'à localhost, cela peut être exploité à distance. Le contre-argument est que l'attaquant devrait savoir que vous exécutez XAMPP. Leur installation de PHPMyAdmin est toujours obsolète, et il y a de mauvais exploits qui affectent également ce projet.

Ma suggestion est d'utiliser Ubuntu sur VM. L'installation de LAMP d'Ubuntu est réellement plus facile que XAMPP et est sécurisée de manière réelle. Exécutez simplement Sudo tasksel ou sélectionnez le package LAMP lorsque vous l'installez.

5
rook

Avertissement: je suis un développeur XAMPP.

Il est sûr d'installer XAMPP sur votre machine locale. Vous êtes généralement connecté à Internet via un routeur, il n'est donc pas possible d'accéder à votre installation actuelle.

De plus, XAMPP expédie une section "Comment puis-je sécuriser mon installation XAMPP?" où vous pouvez suivre ce guide pour changer le mot de passe racine MySQL, désactiver les services que vous n'utilisez pas, etc.

Récemment, XAMPP a désactivé le tableau de bord XAMPP basé sur PHP et nous avons inclus des guides html statiques. Aucun problème lié à CSFR ou lié à ce panneau maintenant il n'existe.

XAMPP prend également en compte les derniers problèmes de sécurité. Vous pouvez consulter le blog pour voir que nous avons publié de nouvelles versions dès que possible.

5
user93088

XAMPP ne doit jamais être utilisé dans un environnement de production et bien verrouillé et les mesures prises pour le sécuriser sur une machine de développement, y compris les mises à niveau ou les correctifs de sécurité des éditeurs de logiciels d'origine (PHP, Apache, MySQL, etc.).

Si vous choisissez d'installer XAMPP, assurez-vous qu'il autorise uniquement les connexions à partir de l'adresse de bouclage. Vous devez vérifier cela pour Apache, MySQL et tous les autres services que vous configurez pour XAMPP. Comme si vous avez quelque chose auquel vous pouvez accéder en interne à partir du LAN et que quelqu'un d'autre sur votre réseau sciemment ou inconsciemment peut utiliser des exploits pour accéder à votre machine et causer des dommages.

1
ITOps

Alors, que voulez-vous dire exactement par "sûr"?

  1. Êtes-vous préoccupé par la sécurité ou la confidentialité des données? (c'est-à-dire que d'autres peuvent pirater votre PC via les applications serveur et afficher/contrôler vos données locales)?
  2. Ou vous inquiétez-vous de votre code php ou du logiciel qui endommagera votre ordinateur?

Pour 1), il n'est généralement pas possible d'avoir accès à distance à votre ordinateur si votre système d'exploitation est bien configuré. Dans la plupart des cas, votre environnement réseau local est protégé par NAT, des pare-feu et d'autres techniques telles que les stratégies IP dynamiques. Apache peut également être configuré pour accepter uniquement les visites locales, comme le souligne @HendrikBrummermann.

Pour 2), essayez d'écrire du code robuste et c'est tout ce que je peux suggérer. Apache et MySQL sont des applications serveur très légères. Vous faites juste un test local, donc il ne devrait généralement pas y avoir de trafic de données important ou de frais informatiques élevés qui pourraient faire tomber votre système.

0
shuangwhywhy

Il existe un moyen plus sûr de tester votre code. Vous pouvez - et sans doute devriez-vous - installer votre logiciel serveur, quel qu'il soit (de XAMPP/WAMP sous Windows à Ubuntu Server), dans un machine virtuelle . Ce n'est pas aussi intimidant que cela puisse paraître au premier abord, bien que cela puisse être exagéré si tout ce que vous faites est de développer votre propre code.

A VM séquestre efficacement tout ce qui arrive à votre serveur (l'invité ) de se propager à votre ordinateur personnel exécutant la machine virtuelle (l'hôte ). Imaginez que vous avez des autorisations mal configurées et qu'un script que vous testez exécute une system('rm -Rf some_dir') cachée. Pas de problème! Rétablissez votre VM vers le dernier instantané et vous partez. Vous pouvez même différencier les instantanés pour voir ce qui a changé.

De plus, l'adaptateur réseau sur mon VM de choix NATs la VM, vous obligeant à configurer manuellement la redirection de port pour le VM pour y accéder, sans parler de le détecter) ça existe.

Les tests dans un VM atténue également le risque de fuite de données par le biais de logiciels malveillants. Personnellement, je crains beaucoup moins qu'une application que je teste supprime quelque chose par malveillance que je ne le fais le voler en silence et le télécharger quelque part. Votre machine hôte sera invisible pour les applications exécutées dans votre machine virtuelle.

Je suis personnellement partisan de VirtualBox d'Oracle ; il est entièrement gratuit, possède suffisamment de fonctionnalités pour me garder intéressé et est très simple à utiliser. Les machines virtuelles sont également portables: vous pouvez copier le fichier de la machine virtuelle sur une clé USB et le faire fonctionner.

Si vous devez faire des tests de logiciels à risque de toute nature, je vous suggère d'apprendre à utiliser des machines virtuelles et à y tester: c'est une compétence très utile avoir dans votre ceinture porte-outils.

0
msanford