Serveur HTTP simple
100%

Partage Réseau · Leçon 3

Serveur HTTP simple

Découvrez comment exposer temporairement un répertoire contrôlé avec le serveur HTTP de Python.

Le module http.server de Python peut servir des fichiers statiques pour un test de courte durée ou un transfert de confiance. Ce n’est pas un serveur web de production : il ne fournit ni authentification, ni autorisation, ni TLS, ni limitation du débit, ni traitement renforcé face à du trafic hostile.

Préparer un répertoire de partage

Créez un répertoire dédié qui contient uniquement les fichiers destinés à être exposés. Examinez les fichiers cachés, les liens symboliques, les permissions et les métadonnées sensibles avant de démarrer. Évitez de servir un répertoire personnel, la racine d’un dépôt, un répertoire d’identifiants secrets ou un chemin système.

Employez --directory afin d’indiquer explicitement la racine partagée :

$ python3 -m http.server 8000 --directory /srv/temporary-share

En l’absence de fichier d’index, le module génère normalement une liste du répertoire. Toute personne pouvant atteindre le socket en écoute peut être en mesure d’énumérer et de télécharger le contenu servi.

Pourquoi utiliser --directory /srv/temporary-share ?

Contrôler l’adresse d’écoute

Liez le serveur à l’adresse de boucle locale lorsque seul le même hôte doit s’y connecter :

$ python3 -m http.server 8000 --bind 127.0.0.1 --directory /srv/temporary-share

Pour un partage sur un réseau de confiance, liez-le délibérément à l’adresse d’interface appropriée et vérifiez la politique du pare-feu. Une exécution sans liaison restrictive écoute généralement sur toutes les interfaces disponibles, ce qui peut exposer le répertoire au-delà du réseau prévu.

Qui peut normalement atteindre un serveur lié à 127.0.0.1 ?

Tester l’accès

Depuis l’hôte qui sert les fichiers, demandez un fichier connu et examinez la réponse :

$ curl -f http://127.0.0.1:8000/example.txt

Pour un test distant autorisé, employez l’adresse d’interface choisie plutôt que la boucle locale. Confirmez à la fois que le fichier prévu est accessible et qu’un fichier situé hors de la racine documentaire ne l’est pas. La réussite dans un navigateur ne prouve pas à elle seule que l’exposition est appropriée ou confidentielle.

Quel port est explicitement sélectionné dans python3 -m http.server 8000 ?

Arrêter et nettoyer

Exécutez le service temporaire dans un terminal supervisé et arrêtez-le avec Ctrl-C une fois le transfert terminé. Vérifiez que le socket n’est plus en écoute :

$ ss -ltn 'sport = :8000'

Supprimez les copies temporaires conformément à la politique de gestion des données et annulez toute règle temporaire du pare-feu. Pour une distribution persistante, authentifiée ou exposée à Internet, employez un serveur maintenu et configuré avec un contrôle d’accès et TLS.

Que faut-il faire après la fin du transfert temporaire ?

Leçon terminée

Vous avez terminé Serveur HTTP simple

Vous savez maintenant exécuter un serveur HTTP Python temporaire dont l’exposition est limitée.

  • Servir uniquement un répertoire dédié et vérifié.

  • Lier le serveur à l’adresse appropriée la plus restrictive.

  • Tester l’accès prévu et les limites qui ne doivent pas être franchies.

  • Arrêter le socket en écoute et nettoyer l’accès temporaire après utilisation.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Partage Réseau