Maison développement back-end tutoriel php Comment prévenir les vulnérabilités de téléchargement de fichiers à l'aide de PHP

Comment prévenir les vulnérabilités de téléchargement de fichiers à l'aide de PHP

Jun 24, 2023 am 08:25 AM
安全防护 php 编程 文件上传漏洞

Avec la popularité d'Internet et l'augmentation des types de sites Web, la fonction de téléchargement de fichiers est devenue de plus en plus courante, mais la fonction de téléchargement de fichiers est également devenue l'une des cibles clés des attaquants. Les attaquants peuvent prendre le contrôle du site Web et voler les informations des utilisateurs en téléchargeant des fichiers malveillants sur le site Web et en adoptant une série de comportements malveillants. Par conséquent, la manière de prévenir les vulnérabilités de téléchargement de fichiers est devenue un problème important en matière de sécurité Web. Cet article explique comment utiliser PHP pour empêcher les vulnérabilités de téléchargement de fichiers.

  1. Vérifiez les types et extensions de fichiers

Les attaquants se déguisent souvent en fichiers non menaçants tels que des images et obtiennent des autorisations système en téléchargeant des fichiers malveillants, il est donc très nécessaire de vérifier le type et l'extension des fichiers téléchargés.

Tout d'abord, vous pouvez utiliser $_FILES'file' pour obtenir le type de fichier téléchargé, juger du type de fichier et autoriser uniquement le téléchargement de types de fichiers spécifiés, tels que les formats d'image (png, jpg, etc.).

Deuxièmement, vous pouvez utiliser la fonction pathinfo() pour obtenir l'extension du fichier téléchargé. L'extension est également jugée et seule l'extension spécifiée peut être téléchargée. Cependant, il convient de noter que les extensions de certains fichiers peuvent être falsifiées, il faut donc combiner d'autres moyens pour renforcer la protection.

  1. Vérifier la taille du fichier

Un attaquant peut consommer les ressources du serveur en téléchargeant des fichiers volumineux, provoquant une charge excessive du serveur. Par conséquent, il est également nécessaire de limiter la taille des fichiers téléchargés.

Vous pouvez définir une taille de fichier maximale et autoriser uniquement le téléchargement de fichiers plus petits que cette taille. D’une manière générale, une taille d’environ 2 Mo est plus appropriée.

  1. Nom de fichier aléatoire

Un attaquant peut remplacer le fichier d'origine en téléchargeant un fichier du même nom, provoquant la perte ou l'attaque du fichier d'origine. Par conséquent, le nom du fichier téléchargé peut être randomisé pour générer un nom de fichier unique afin d'éviter que le fichier ne soit remplacé ou que les visiteurs n'obtiennent le chemin du fichier.

Vous pouvez utiliser la fonction uniqid() combinée avec l'horodatage pour générer un nom de fichier aléatoire unique et ajouter l'extension du nom de fichier d'origine à la fin. Par exemple :

$filename = uniqid().time() '.' pathinfo($_FILES'file', PATHINFO_EXTENSION);

  1. Déplacez le fichier vers le répertoire spécifié

Une fois le téléchargement réussi, le fichier téléchargé doit être déplacé vers le répertoire spécifié. Certaines vérifications de sécurité doivent être effectuées sur les fichiers téléchargés avant de les déplacer vers le répertoire.

Par exemple, vous devez déterminer les autorisations du répertoire de téléchargement et vous assurer que le répertoire de téléchargement ne se trouve pas sous le répertoire racine Web. Il est préférable de définir le répertoire de téléchargement en lecture seule et de garantir que les noms de fichiers ne contiennent pas d'informations sensibles.

  1. Empêcher l'écrasement des fichiers

Pendant le processus de téléchargement de fichiers, des fichiers portant le même nom peuvent être téléchargés. Si le fichier téléchargé ultérieurement porte le même nom que le fichier d'origine, le fichier d'origine peut être écrasé. Par conséquent, les fichiers téléchargés peuvent être renommés pour garantir qu'ils ne seront pas écrasés.

Vous pouvez ajouter un fichier de compteur dans le répertoire de téléchargement pour enregistrer le nombre de fichiers téléchargés. Le compteur sera incrémenté de 1 à chaque téléchargement et la valeur du compteur sera utilisée dans le nom du fichier.

  1. Empêcher l'exécution de code malveillant

Si le fichier téléchargé est remplacé par du code PHP malveillant, cela entraînera une grande menace pour la sécurité. Par conséquent, vous devez vous assurer que le fichier téléchargé ne sera pas exécuté en tant que fichier exécutable.

Vous pouvez modifier le fichier de configuration Apache et ajouter le code suivant :


ForceType application/octet-stream
Header set Content-Disposition attachment

This will Tous les fichiers se terminant par .php sont définis comme des fichiers binaires et sont définis comme pièces jointes lors du téléchargement.

De plus, les fichiers pouvant être téléchargés ne peuvent être que des images, du texte et d'autres fichiers au format, et les fichiers dangereux tels que les fichiers exécutables et les fichiers de script ne peuvent pas être téléchargés.

  1. Journalisation et surveillance

Enfin, la journalisation et la surveillance sont nécessaires pour faciliter la découverte des problèmes et leur traitement en temps opportun. Vous pouvez utiliser la fonction error_log() intégrée de PHP pour enregistrer les informations d'erreur dans un fichier journal, ou utiliser des outils tiers pour la surveillance et l'alarme.

En général, la prévention des vulnérabilités lors du téléchargement de fichiers nécessite l'utilisation complète d'une variété de méthodes et de moyens pour améliorer la sécurité autant que possible. Les méthodes données ci-dessus peuvent aider les développeurs PHP à éviter les problèmes de vulnérabilité courants, mais ils doivent également effectuer les ajustements et optimisations correspondants en fonction de situations spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter la protection de sécurité des requêtes et la réparation des vulnérabilités dans FastAPI Comment implémenter la protection de sécurité des requêtes et la réparation des vulnérabilités dans FastAPI Jul 29, 2023 am 10:21 AM

Comment implémenter la protection de sécurité des demandes et la réparation des vulnérabilités dans FastAPI Introduction : Dans le processus de développement d'applications Web, il est très important d'assurer la sécurité de l'application. FastAPI est un framework Web Python rapide (hautes performances) et facile à utiliser avec génération automatique de documentation. Cet article explique comment implémenter la protection de sécurité des demandes et la réparation des vulnérabilités dans FastAPI. 1. Utilisez le protocole HTTP sécurisé L'utilisation du protocole HTTPS constitue la base pour garantir la sécurité des communications des applications. FastAPI fournit

Comment implémenter le code PHP pour accéder à une page spécifiée Comment implémenter le code PHP pour accéder à une page spécifiée Mar 07, 2024 pm 02:18 PM

Lors de la rédaction d’un site Web ou d’une application, vous rencontrez souvent le besoin d’accéder à une page spécifique. En PHP, nous pouvons réaliser un saut de page grâce à plusieurs méthodes. Ci-dessous, je vais vous présenter trois méthodes de saut courantes, notamment l'utilisation de la fonction header(), l'utilisation du code JavaScript et l'utilisation des balises méta. Utilisation de la fonction header() La fonction header() est une fonction utilisée en PHP pour envoyer les informations d'en-tête HTTP originales. Cette fonction peut être utilisée en combinaison lors de l'implémentation de sauts de page. Ci-dessous se trouve un

Filtrage des données PHP : Comment prévenir les vulnérabilités de téléchargement de fichiers Filtrage des données PHP : Comment prévenir les vulnérabilités de téléchargement de fichiers Jul 30, 2023 pm 09:51 PM

Filtrage des données PHP : comment prévenir les vulnérabilités de téléchargement de fichiers La fonction de téléchargement de fichiers est très courante dans les applications Web, mais elle est également l'une des plus vulnérables aux attaques. Les attaquants peuvent exploiter les vulnérabilités de téléchargement de fichiers pour télécharger des fichiers malveillants, entraînant des problèmes de sécurité tels qu'une intrusion dans le système du serveur, une fuite de données utilisateur ou une propagation de logiciels malveillants. Afin de prévenir ces menaces potentielles, nous devons strictement filtrer et inspecter les fichiers téléchargés par les utilisateurs. Vérifier le type de fichier Un attaquant peut renommer le fichier .txt en fichier .php et le télécharger

Comment prévenir les vulnérabilités de téléchargement de fichiers à l'aide de PHP Comment prévenir les vulnérabilités de téléchargement de fichiers à l'aide de PHP Jun 24, 2023 am 08:25 AM

Avec la popularité d'Internet et l'augmentation des types de sites Web, la fonction de téléchargement de fichiers est devenue de plus en plus courante, mais la fonction de téléchargement de fichiers est également devenue l'une des cibles clés des attaquants. Les attaquants peuvent prendre le contrôle du site Web et voler les informations des utilisateurs en téléchargeant des fichiers malveillants sur le site Web et en adoptant une série de comportements malveillants. Par conséquent, la manière de prévenir les vulnérabilités de téléchargement de fichiers est devenue un problème important en matière de sécurité Web. Cet article explique comment utiliser PHP pour empêcher les vulnérabilités de téléchargement de fichiers. Vérifiez les types de fichiers et les extensions. Les attaquants téléchargent souvent des fichiers malveillants déguisés en fichiers non menaçants, tels que des images.

Comment activer la protection de sécurité du navigateur Sogou Comment activer la protection de sécurité du navigateur Sogou Jan 31, 2024 am 11:51 AM

Comment activer la protection de sécurité du navigateur Sogou ? Lorsque nous utilisons le navigateur Sogou, nous pouvons activer la protection de sécurité pour bloquer les sites Web nuisibles. Lorsque nous utilisons le navigateur Sogou, nous rencontrons parfois des sites Web nuisibles. Si nous rencontrons des sites Web nuisibles, cela présentera un danger pour l'ordinateur. Dans ce cas, nous pouvons protéger la sécurité en ligne en activant la protection de sécurité. L'éditeur ci-dessous a compilé un didacticiel de protection de sécurité pour l'ouverture du navigateur Sogou. Si vous êtes intéressé, jetez un œil ci-dessous ! Tutoriel sur l'ouverture de la protection de sécurité du navigateur Sogou [Image et texte] 1. Ouvrez d'abord le navigateur haute vitesse Sogou. Vous pouvez voir l'icône « Afficher le menu » composée de trois lignes horizontales dans le coin supérieur droit du navigateur. cliquer sur l'icône, comme indiqué sur la figure Afficher. 2. Après avoir cliqué, la fenêtre de menu du dernier navigateur de Sogou apparaîtra ci-dessous.

Empêcher les vulnérabilités de téléchargement de fichiers en Java Empêcher les vulnérabilités de téléchargement de fichiers en Java Aug 07, 2023 pm 05:25 PM

Prévention des vulnérabilités de téléchargement de fichiers dans Java La fonctionnalité de téléchargement de fichiers est une fonctionnalité indispensable dans de nombreuses applications Web, mais malheureusement, c'est également l'une des vulnérabilités de sécurité courantes. Les pirates peuvent exploiter la fonctionnalité de téléchargement de fichiers pour injecter du code malveillant, exécuter du code à distance ou falsifier les fichiers du serveur. Par conséquent, nous devons prendre certaines mesures pour éviter les vulnérabilités de téléchargement de fichiers en Java. Vérification back-end : commencez par définir l'attribut qui limite le type de fichier dans le contrôle de téléchargement de fichiers sur la page front-end, puis vérifiez le type de fichier et

Une brève description de la façon de désactiver la protection de sécurité dans le navigateur Sogou Une brève description de la façon de désactiver la protection de sécurité dans le navigateur Sogou Jan 29, 2024 pm 07:45 PM

Comment désactiver la protection de sécurité dans le navigateur Sogou ? Une sécurité trop élevée bloque les pages Web dont nous avons besoin. Comment dois-je la désactiver ? Lorsque nous utilisons le navigateur Sogou pour naviguer sur le Web, nous rencontrons la fonction de protection complète intégrée au site Web qui bloque certaines pages Web, et nous ne pouvons alors pas les prévisualiser, ce qui est très gênant. Comment devrions-nous résoudre cette situation ? Plus précisément ? Quant à l'opération, l'éditeur ci-dessous a compilé les étapes pour désactiver la protection de sécurité dans le navigateur Sogou. Si vous ne savez pas comment, suivez-moi et continuez à lire ! Comment désactiver la protection de sécurité dans le navigateur Sogou 1. Ouvrez d'abord le navigateur haute vitesse Sogou. Vous pouvez voir l'icône « Afficher le menu » composée de trois lignes horizontales dans le coin supérieur droit du navigateur. Utilisez la souris pour cliquer sur le navigateur. icône. 2. Après avoir cliqué, le navigateur Sogou apparaîtra ci-dessous.

Comment désactiver la protection de sécurité du navigateur mobile QQ Comment désactiver la protection de sécurité du navigateur mobile QQ Mar 19, 2024 pm 07:10 PM

Comment désactiver la protection de sécurité du navigateur mobile QQ ? De nombreux amis aiment utiliser le navigateur mobile QQ. Ce navigateur peut aider les utilisateurs à modifier et à éditer des fichiers, ce qui est très pratique pour le bureau et les études. Ce navigateur dispose d'une fonction de protection en profondeur de sécurité, qui peut protéger la sécurité du site Web de l'utilisateur et la sécurité des paiements, etc. ., mais de nombreux amis n'ont pas vraiment besoin de cette fonction, alors comment désactiver la protection de sécurité. Ensuite, l'éditeur vous proposera un didacticiel sur la façon de désactiver facilement la protection de sécurité sur le navigateur mobile QQ. Les amis intéressés ne doivent pas le manquer. Une liste de didacticiels expliquant comment désactiver facilement la protection de sécurité dans le navigateur QQ mobile 1. Ouvrez le navigateur QQ mobile et accédez à ma page. 2. Cliquez sur l'icône "Paramètres" dans le coin supérieur droit (comme indiqué sur l'image). 3. Entrez dans la page des paramètres et cliquez sur « Sécurité Internet »

See all articles