ceci est un script pour n'importe qui, mais ne garanti pas une sécurité ABSOLU
Voici un petit script d'upload PHP qui j'espère vous sera bien utile.
Je suis ouvert à toute amélioration niveau sécurité si vous remarqué une faille possible.
C'est un petit gestionnaire d'upload écrit en PHP et utilisant une base de donnée MySQL.
Le principe est de ne pas laisser connaitre l'emplacement de vos fichier lors de l'upload. Pour cela, on utilise plusieurs méthodes, déjà connu et utilisé mais rassemblé ici dans un format simple (j'espère) d'utilisation.
Pour télécharger la dernière version de myPHPupload : http://www.viaphp.net/telecharger/myPHPupload.zip
Démonstration : http://www.viaphp.net/demo/myPHPupload/
Installation
* décompresser le fichier et uploader le tout (répertoire myPHPupload comppris)
* toute la configuration se fais dans le fichier config.php :
- changer les paramètre de connexion à votre base de donnée mysql
- renseigner l'adresse de votre site
- renseigner aussi l'adresse local de là ou ce trouve myPHPUpload (Ex. : /upload/)
* naviguer jusqu'au script pour lancer le script d'installation automatique
Note de version :
0.3 :
La plus grande amélioration étant un systeme qui empèche la lecture de FAUX fichier image. getimagesize(); n'étant pas la panacé, l'image est désormais ouverte et lu ligne par ligne pour et on vérifié la non présence de code malicieux.
ID n'est plus passé dans l'url, mais désormais un identifiant "unique".
La plus grande amélioration étant un systeme qui empèche la lecture de FAUX fichier image. getimagesize(); n'étant pas la panacé, l'image est désormais ouverte et lu ligne par ligne pour et on vérifié la non présence de code malicieux.
ID n'est plus passé dans l'url, mais désormais un identifiant "unique".
0.3.1 :
Cette nouvelle version ne comporte pas de grosse mise à jours, mais surtout plusieurs petites améliorations dans l'affichage des images, la qualité des jpg ou encore le nommage des variables.
Cette nouvelle version ne comporte pas de grosse mise à jours, mais surtout plusieurs petites améliorations dans l'affichage des images, la qualité des jpg ou encore le nommage des variables.
0.4B :
- section admin protéger par login et mot de passe qui permet de :
- - supprimer les fichiers
- - faire le tri dans les fichiers temporaires (cache et fichier orphelins)
- - ... plus à venir : ban par ip, config par formulaire
- - voir et télécharger les fichiers qui sont périmés (ou non)
- plus d'options de configuration
- possibilité de définir si on veut utiliser le système de cache ou non
- prise en compte de la transparence des PNG lors d'un redimensionnement
- un mode debug
- qualité des images JPG réglable
- contre vérification du type mime par rapport à son extension. (impossible de mettre en ligne un fichier BMP avec une extension .jpg)
- on ne redimensionne plus les fichiers GIF pour l'instant. Faut que je règle le soucis de fond noir avec ceux qui sont transparent.
- section admin protéger par login et mot de passe qui permet de :
- - supprimer les fichiers
- - faire le tri dans les fichiers temporaires (cache et fichier orphelins)
- - ... plus à venir : ban par ip, config par formulaire
- - voir et télécharger les fichiers qui sont périmés (ou non)
- plus d'options de configuration
- possibilité de définir si on veut utiliser le système de cache ou non
- prise en compte de la transparence des PNG lors d'un redimensionnement
- un mode debug
- qualité des images JPG réglable
- contre vérification du type mime par rapport à son extension. (impossible de mettre en ligne un fichier BMP avec une extension .jpg)
- on ne redimensionne plus les fichiers GIF pour l'instant. Faut que je règle le soucis de fond noir avec ceux qui sont transparent.
0.4.2 :
- amélioration de l'administration
- option pour voir une miniature de l'image mis en ligne
- option pour voir un lien automatique type BBcode pour forum
- optimisation
- amélioration de l'administration
- option pour voir une miniature de l'image mis en ligne
- option pour voir un lien automatique type BBcode pour forum
- optimisation
0.4.3 :
- compteur de téléchargement de chaque fichier
- compteur de visualisation de chaque image
- le code correct pour créer la base mysql
- compteur de téléchargement de chaque fichier
- compteur de visualisation de chaque image
- le code correct pour créer la base mysql
0.4.4 :
- si on passe en mode urlRewriting, une extension est ajouter à l'url pour être compatible avec tous les forums.
- Ajout d'une option qui permet de mettre un mot de passe pour les utilisateurs
- Quelques changements mineurs dans le code
- si on passe en mode urlRewriting, une extension est ajouter à l'url pour être compatible avec tous les forums.
- Ajout d'une option qui permet de mettre un mot de passe pour les utilisateurs
- Quelques changements mineurs dans le code
0.5 :
Cette version inclue plusieurs nouveautés :
- possibilité de configurer la suppression automatique des fichiers périmés.
- on peux définir un mot de passe pour l'upload de fichier, mais aussi pour voir un fichier.
- nouveau système pour voir en direct certains fichiers multimédias. Pour l'instant, uniquement les fichiers .mp3 et .swf
- pour bannir une ip on le fais désormais via un fichier texte avec une IP par ligne.
- Re structuration des fichiers (attention lors d'une mise à jours)
- Ajout d'une page "détails" qui récapitule les infos du fichier
- Optimisation et plein de petits trucs ...
Cette version inclue plusieurs nouveautés :
- possibilité de configurer la suppression automatique des fichiers périmés.
- on peux définir un mot de passe pour l'upload de fichier, mais aussi pour voir un fichier.
- nouveau système pour voir en direct certains fichiers multimédias. Pour l'instant, uniquement les fichiers .mp3 et .swf
- pour bannir une ip on le fais désormais via un fichier texte avec une IP par ligne.
- Re structuration des fichiers (attention lors d'une mise à jours)
- Ajout d'une page "détails" qui récapitule les infos du fichier
- Optimisation et plein de petits trucs ...
0.5 :
- Quelques optimisations et amélioration en termes de rapidité
- Amélioration du lecteur multimédia
- Quelques optimisations et amélioration en termes de rapidité
- Amélioration du lecteur multimédia
1.0 Beta :
- Refonte total :: ré-écriture du code
- Installation simplifié et bien plus sécurisé
- Moteur de template : merci au projet Hyla TPL
- et beaucoup plus !
- Refonte total :: ré-écriture du code
- Installation simplifié et bien plus sécurisé
- Moteur de template : merci au projet Hyla TPL
- et beaucoup plus !
1.0.1 :
Correction de quelques petits bugs.
Correction de quelques petits bugs.
1.0.2 :
La version 1.0.2 apporte plusieurs améliorations comme la gestion des extensions interdites, autorisés ou encore une meilleur administration qui permet maintenant de gérer une partie de la configuration directementy via un formulaire.
La version 1.0.2 apporte plusieurs améliorations comme la gestion des extensions interdites, autorisés ou encore une meilleur administration qui permet maintenant de gérer une partie de la configuration directementy via un formulaire.
1.1 :
Plusieurs correction petits bugs. Amélioration à plusieurs endroit de la sécurité. Ajout de l'envoi par email du lien de téléchargement.
Plusieurs correction petits bugs. Amélioration à plusieurs endroit de la sécurité. Ajout de l'envoi par email du lien de téléchargement.
1.1.1 :
Corrige un bug d'install et ajoute des petites amélioration sur le processus d'install lui même.
Corrige un bug d'install et ajoute des petites amélioration sur le processus d'install lui même.