Je dois autoriser les utilisateurs du site à fournir des images "hotlinked" distantes.manipuler en toute sécurité des images "hotlinked" distantes
Je sais que cela est un peu dangereux, voici donc la procédure actuellement:
1) analyser le chemin d'accès fourni à l'aide pathinfo PHP et de briser le chemin en plusieurs parties (hôte, nom de fichier, extension) qui sont ensuite correctement saisies.
2) exécutez une requête curl pour les en-têtes d'image comme décrit ici: How can one check to see if a remote file exists using PHP? et vérifiez qu'elle a un type png ou jpg mime valide et un code de retour HTTP 200.
3) vérifier que le nom de fichier et l'extension (du pathinfo ci-dessus) est un fichier png ou jpg valide (je ne suis pas accepter gifs, etc.)
4) enfin, stocker les données de chemin d'image dans plusieurs colonnes dans le DB (échapper les données)
Ai-je rien manqué? Y a-t-il un danger qui guette? Je pensais que je devrais peut-être refaire la fonction de boucle sur l'écran aussi, pour m'assurer que l'image est toujours là et que c'est toujours une image.
Merci pour tout conseil.
Si vous voulez être encore plus intelligent, vous pouvez essayer d'extraire les données réelles, puis essayer de créer l'objet image en PHP. Cependant, quoi que vous fassiez à ce stade n'empêchera personne de mettre une image correcte sur un serveur distant, vous fournissant l'URL et ensuite changer cette image à quelque chose de malveillant. –
@AleksG - oui, c'est le problème, et pourquoi je pense qu'il serait peut-être préférable de faire la boucle sur l'affichage ainsi que sauvegarder. Cependant, cela va à l'encontre de l'objectif de permettre des images distantes (puisque j'obtiendrai la bande passante ainsi que le succès du stockage, même temporairement). – julio
Pourquoi voulez-vous faire cela de toute façon? Quels risques craignez-vous lorsque le chemin ne serait pas audité? – Gumbo