inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014
-
10 mai 2010 à 14:35
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 2009
-
16 mai 2010 à 17:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 16 mai 2010 à 17:11
joli boulot :-D
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 12 mai 2010 à 13:48
Pour les commentaires je pensais plus aux personnes qui utilisent un I.D.E. pour avoir l'autocompletion d'active. Mais aussi pour le dev', lorsque on laisse de côté un code pendant quelques temps de pouvoir le modifié sans trop se casser la tête.
++
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 12 mai 2010 à 12:10
J'ai mis dans ma classe les type-mime les plus courants, à chacun d'adapter cette liste selon ses besoins et c'est d'ailleurs pour cela que j'ai également fourni une liste de type-mime. Une fois que cela est fait, la déclaration se fait en une seule ligne, pour chaque upload.
$upload->setType("jpg/doc/xls");
Pour ce qui est des commentaires, j'ai commenté l'exemple d'utilisation. Les gens qui veulent utiliser cette classe peuvent me poser toutes les questions qu'ils veulent au besoin.
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 12 mai 2010 à 10:53
Bonjour,
Je n'aurais pas fait la vérification du type-mime comme cela. Tout est codé en dur dans votre classe, admettons que je veuille envoyé un .rar et que je ne veux pas ajouter de ligne de code dans la class. Comment faire ?
Je mettrais en paramètre lors de l'instanciation de la class un tableau de type-mime autorisés puis de boucler sur ce tableau pour vérifier si le fichier est autorisé. C'est un peu plus souple et évolutif je pense que tout en "dur".
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 11 mai 2010 à 14:53
Voilà, j'ai fait la vérification également sur le type-mime.
Cependant, effectivement, comme le disait si bien inwebo, le type-mine n'est pas fiable.
Exemple: j'ai renommé un fichier xls en .jpg, et le type-mime retourné était bien "application/vnd.ms-excel"... Le fichier a été uploadé (meme invalide mais uploadé quand meme).
J'ai fais des recherches sur le net et je ne vois pas de solutions fiable à adapter de manière native.
Si vous avez une solution à donner je suis preneur.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 11 mai 2010 à 14:03
Merci, je planche dessus, y a pas de soucis, je fais la modif de la classe dans l'aprem.
xstyled
Messages postés38Date d'inscriptionjeudi 18 mai 2006StatutMembreDernière intervention17 février 2009 11 mai 2010 à 12:47
Si il n'y a que le traitement de l'extension, on peut facilement injecter du code dans le commentaire de l'image, et l'exécuter sur le serveur du genre image.gif%00 (dans le path bien sur), donc après, il faut protéger l'url ...
Autant faire en sorte que le script d'upload soit le plus sécurisé possible pour simplifiez le code dans son utilisation.
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 11 mai 2010 à 10:31
La vérification du type de fichier ne devrait fait PAS se faire sur son extension ! Même le type-mime n'est pas sûr à 100%, mais c'est une meilleur solution que l'extension.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 10 mai 2010 à 15:29
Penses-tu alors que la vérification de l'extension du fichier faite comme je l'ai fais peut avoir une faille de sécurité?
Je peux rajouter dans l'expression régulière des fichiers strictements interdits par exemple? (lol le flemmard)
Sinon je modifie tout ca ce soir et fournirai une vérif sur le type/mime.
Merci pour tes infos.
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 10 mai 2010 à 15:07
'je sais qu'il ne prend pas toutes les extensions(ex: CSV - XLS ??) ' ?
Les mime-types sont normés.
C'est peut être prendre le problème à l'envers que de développer pour l'exception et ensuite de fixer les problèmes.
En ce qui concerne le pjpeg, qui est un mime-type inconnu à part chez microsoft, je te conseil la lecture (en anglais) de : http://www.evolve.co.nz/how-to-fix-a-pjpeg-image-upload-error.html , le 'p' serait pour 'protected'jpeg et non pas progressive, noté le conditionnel, si vous avez d'autre infos je suis à l'écoute.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 10 mai 2010 à 14:52
Oui, tu as tout à fait raison sur l'utilisation du type mime. J'ai hésité à l'employer mais je sais qu'il ne prend pas toutes les extensions(ex: CSV - XLS ??) et pour les images, IE prend le type pjpeg et pgif (ajout du "p" devant).
C'est pour moi trop bizarre donc je n'ai pas utilisé ca. 8)
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 10 mai 2010 à 14:35
Bonjour,
Après un rapide survol de cette class, il y a un point qui pourrait être amélioré le test sur l'extension du fichier. Un test sur le mime-type plutôt que sur l'extension du fichier serait plus approprié, voir $_FILES['userfile']['type'].
J'ai également fait une petite class qui réponds au même besoin, mais j'ai rajouté un test pour comparer les poids (en o) du fichier à envoyé et du fichier reçu.
16 mai 2010 à 17:11
12 mai 2010 à 13:48
++
12 mai 2010 à 12:10
$upload->setType("jpg/doc/xls");
Pour ce qui est des commentaires, j'ai commenté l'exemple d'utilisation. Les gens qui veulent utiliser cette classe peuvent me poser toutes les questions qu'ils veulent au besoin.
12 mai 2010 à 10:53
Je n'aurais pas fait la vérification du type-mime comme cela. Tout est codé en dur dans votre classe, admettons que je veuille envoyé un .rar et que je ne veux pas ajouter de ligne de code dans la class. Comment faire ?
Je mettrais en paramètre lors de l'instanciation de la class un tableau de type-mime autorisés puis de boucler sur ce tableau pour vérifier si le fichier est autorisé. C'est un peu plus souple et évolutif je pense que tout en "dur".
Deuxième chose, il faudrait commenter également votre code : j'utilise pour référence la documentation du zendframwork http://framework.zend.com/manual/fr/coding-standard.html
Cordialement
11 mai 2010 à 14:55
http://fr.selfhtml.org/divers/typesmime.htm
11 mai 2010 à 14:53
Cependant, effectivement, comme le disait si bien inwebo, le type-mine n'est pas fiable.
Exemple: j'ai renommé un fichier xls en .jpg, et le type-mime retourné était bien "application/vnd.ms-excel"... Le fichier a été uploadé (meme invalide mais uploadé quand meme).
J'ai fais des recherches sur le net et je ne vois pas de solutions fiable à adapter de manière native.
Si vous avez une solution à donner je suis preneur.
11 mai 2010 à 14:03
11 mai 2010 à 12:47
Autant faire en sorte que le script d'upload soit le plus sécurisé possible pour simplifiez le code dans son utilisation.
11 mai 2010 à 10:31
10 mai 2010 à 15:29
Je peux rajouter dans l'expression régulière des fichiers strictements interdits par exemple? (lol le flemmard)
Sinon je modifie tout ca ce soir et fournirai une vérif sur le type/mime.
Merci pour tes infos.
10 mai 2010 à 15:07
Les mime-types sont normés.
C'est peut être prendre le problème à l'envers que de développer pour l'exception et ensuite de fixer les problèmes.
En ce qui concerne le pjpeg, qui est un mime-type inconnu à part chez microsoft, je te conseil la lecture (en anglais) de : http://www.evolve.co.nz/how-to-fix-a-pjpeg-image-upload-error.html , le 'p' serait pour 'protected'jpeg et non pas progressive, noté le conditionnel, si vous avez d'autre infos je suis à l'écoute.
10 mai 2010 à 14:52
C'est pour moi trop bizarre donc je n'ai pas utilisé ca. 8)
10 mai 2010 à 14:35
Après un rapide survol de cette class, il y a un point qui pourrait être amélioré le test sur l'extension du fichier. Un test sur le mime-type plutôt que sur l'extension du fichier serait plus approprié, voir $_FILES['userfile']['type'].
J'ai également fait une petite class qui réponds au même besoin, mais j'ai rajouté un test pour comparer les poids (en o) du fichier à envoyé et du fichier reçu.
Voilà bonne continuation.
++