En photographie numérique, les métadonnées sont stockées à l'intérieur d'un fichier JPG et permettent de décrire un certain nombre d'informations complémentaires.
Elles sont réparties en 3 catégories (Source imatag.com) :
1 EXIF (Exchangeable image file format)
Le type EXIF contient principalement des informations techniques liées à la prise de vue.
- Marque et Modèle
- Date du cliché
- Vitesse d'obturation
- Exposition
- Ouverture du diaphragme
- Sensibilité (ISO)
- Distance focale
- Objectif
- Flash activé ou désactivé
- Source lumineuse
- Coordonnées GPS
- Copyright
2 IPTC (International Press Telecommunications Council)
Le type IPTC contient des informations enrichies manuellement par le photographe ou par des agences.
- Nom de l'auteur
- Adresse
- Numéro de téléphone
- Adresse email
- Site web
- Licence
- Pays où a été prise la photo
- Mots-clés
3 XMP (Extensible Metadata Platform)
Ce nouveau type permet de définir l'ensemble des informations précédentes et de les enrichir. Le format étant en XML, celui-ci peut être étendu simplement.
Les risques
Ces informations sont très utiles pour les photographes. Elles permettent d'enrichir les photos, améliore la traçabilité et la recherche par mots clés. Mais il est possible d'insérer dans ces données, grâce à des logiciels comme Exiftool, du code PHP qui pourra ensuite être exécuté une fois envoyé sur votre serveur.
exiftool -documentname='<?php echo "test"; ?>'
Si votre site contient le code suivant, alors le code PHP contenu dans le fichier exemple.jpg va s'exécuter :
include("exemple.jpg");
Solutions
Il est donc fortement déconseillé d'utiliser les fonctions include, require ou include_once pour intégrer une image depuis le PHP.
Il est également possible de supprimer toutes métadonnées d'une photo avec la librairie Gmagick :
$imageFilePath = 'exemple.jpg';
$i = new Gmagick();
$i->readImage($imageFilePath);
$i->setImageFormat('JPG');
$i->stripImage();
$i->profileImage('*', null);
$i->writeImage($imageFilePath);
$i->destroy();
La librairie Imagick permet également de faire la même chose :
$imageFilePath = 'exemple.jpg';
$img = new Imagick(realpath($imageFilePath));
$profiles = $img->getImageProfiles("icc", true);
$img->stripImage();
if(!empty($profiles)) {
$img->profileImage("icc", $profiles['icc']);
}
Lors de l'envoi de fichiers depuis un formulaire (photos ou tout type de fichiers), il est obligatoire de vérifier sa validité. Ne jamais faire confiance à l'utilisateur ni à son navigateur. Côté serveur, on met en place plusieurs niveaux de vérification :
- On vérifie l'extension du fichier pour qu'elle soit celle attendue. *.jpg ou *.png pour une photo, *.pdf pour un document...
- On vérifie son type mime, si le fichier est réellement au format souhaité
- On vérifie la taille du fichier
- On supprime les métadonnées dans le cas d'envoi de photos
- On envoie le fichier dans un répertoire non accessible, en dehors de la racine du site web, ou dans un répertoire ou il est interdit de lancer du php
- On renomme le fichier pour éviter de garder le nom initial
- Si possible, on lance une analyse anti-malware

Par Thibaut Pietri
Derniers articles
Sécuriser les API REST dans vos sites WordPress : bonnes pratiques et conseils
17 juillet 2026 L'API REST de WordPress permet de communiquer avec votre site à distance, mais elle expose aussi des surfaces d'attaque potentielle si elle n'est pas sécurisée. Voici comment protéger efficacement votre site tout en conservant ses fonctionnalités.
Sécuriser les API web PHP : bonnes pratiques pour éviter les failles courantes
14 juillet 2026 Les API web dominent les échanges d'informations entre applications, mais elles sont aussi une cible privilégiée des attaquants. Cet article détaille comment sécuriser efficacement vos API PHP pour éviter les vulnérabilités fréquentes.
SEO vs GEO : pourquoi le trafic des moteurs IA ne ressemble pas au trafic Google
29 mai 2026 Le SEO reste indispensable pour générer du trafic depuis Google. Mais avec l’arrivée des moteurs IA comme ChatGPT, Gemini, Perplexity ou Copilot, une nouvelle logique apparaît : le GEO.