J'essaie de créer un service dans lequel tout le monde peut envoyer un fichier image d'une adresse électronique / client et de le traiter. Pensez au service un peu comme flickr em> strong> montrant l'image du point de vue de la convivialité Ce mécanisme offre beaucoup d'avantages, mais je tiens à comprendre les conséquences de sécurité Est-ce que je prends la bonne approche ici? Y a-t-il de graves conséquences que je devrais être de? P>
3 Réponses :
Je ne dis pas que cela est 100% sécurisé (pouvez-vous être sécurisé à 100%?) Mais voici quelque chose que vous pouvez essayer: p>
permet de dire que vous avez un alias sur votre postfix (ou quel que soit le système de messagerie) qui redirige des courriels entrants sur un script PHP / BASH / Python pour un traitement ultérieur. p>
La première chose que je ferais est d'utiliser une bibliothèque de manipulation d'image (disons ImageMagick) et convertissez tous les fichiers entrants vers un format .png ou autre, et ne procédez plus loin avec votre logique si la conversion réussit. p>
De cette façon, si quelqu'un vous envoie des attachements malveillants (PHP Exploice, JAR, SWF, tout) La conversion échouera, et il sera donc ignoré par votre système. P>
Edit: ImageMagick a la commande "Identifier" qui fait exactement ce que vous voulez. p>
e-mails pourraient être facilement Ceci pourrait également aider: Voie sécurisée Pour télécharger une image dans PHP ... P> spoofed code> également, ce qui signifie que je peux envoyer un email d'une adresse e-mail qui ne m'appartient pas. P>
choses que vous devriez faire et prendre en considération. p>
Assurez-vous que votre serveur de messagerie est configuré pour la numérisation de virus, conservez-le à jour. Ce sera la première ligne de défense. P> li>
Lorsque l'e-mail entre dans la carte, essayez de traiter l'image dans une bibliothèque solide rock connue. p> li>
Sachez que de nombreux courriels contiennent plusieurs images, dont certaines peuvent avoir rien du tout à faire avec celui qu'ils envoient. Par exemple, nos emails de la société incluent tous notre logo en bas. Je ne sais pas exactement la solution de la solution, mais vous voudrez prendre en considération. P> li>
Différents Clients de messagerie manipulent les pièces jointes d'image, bien, différemment. Parfois, c'est comme une pièce jointe normale, parfois elle est intégrée dans le corps. Même dans le même client, une image peut être traitée différemment en fonction de si elles ont envoyé le courrier électronique en tant que texte plainte avec des pièces jointes ou du courrier HTML. P> LI>
Les gens vont tester votre système. Ils enverront des fichiers .js, ils enverront des images dont les en-têtes sont soignés afin de déborder votre bibliothèque de traitement d'image ... P> Li>
envisagez de faire appel à certaines restrictions de courrier électronique telles que Vérifications SPF . P> li>
Préparez-vous à recevoir des images absolument énorme. Les caméras d'aujourd'hui prennent de très grandes photos et beaucoup de gens ne savent pas ce qu'est la culture ou le redimensionnement signifie. Vous pouvez envisager de définir une casquette de 15 Mo ou plus de plus par courrier électronique à votre serveur. Ensuite, en combinaison avec # 2 ci-dessus, redimensionnez automatiquement des images à quelque chose d'un peu plus acceptable. P> li>
Déterminez le mécanisme que vous souhaitez réellement utiliser pour informer l'utilisateur de tout problème. N'oubliez pas que ce mécanisme est soumis à des abus. Par exemple, envisagez un message de spam envoyé à votre machine avec une réponse aux en-têtes allant chez une victime. p> li> ol>
Si vous utilisez .NET, consultez ceci pour un moyen possible de confirmer qu'un fichier est une image: Comment puis-je déterminer si un fichier est un fichier image dans .NET? P>
C'est un niveau de conseil incroyable!