Savoir avec certitude quel domaine appelle une image hotlinkée ?
38 messages • Page 1 sur 3 • 1, 2, 3
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Savoir avec certitude quel domaine appelle une image hotlink
Bonjour à tous.
J'aimerais donner la possibilité à certains domaines (ou sous-domaines) d'afficher une image dynamique. Est-ce quelqu'un aurait une idée de la façon la plus simple de vérifier (en php) que le l'URL qui appelle cette image distante fait partie d'une liste de noms de domaines "identifiés" et autorisés.
Je voudrais éviter qu'un tiers puisse se faire passer pour un des domaines en question: l'image ne devrait donc pouvoir être affichée que sur les domaines précisément autorisés, voire même sur une "URL type".
Exemple: l'image peut s'afficher sur -http://www.example.com/tests/* ou sur -http://site2.com/log/check.html qui sont des urls autorisés (stockés en db), mais pas sur *.site3.net/* qui ne l'est pas.
Je ne sais pas si c'est très clair ?
D'avance merci !
J'aimerais donner la possibilité à certains domaines (ou sous-domaines) d'afficher une image dynamique. Est-ce quelqu'un aurait une idée de la façon la plus simple de vérifier (en php) que le l'URL qui appelle cette image distante fait partie d'une liste de noms de domaines "identifiés" et autorisés.
Je voudrais éviter qu'un tiers puisse se faire passer pour un des domaines en question: l'image ne devrait donc pouvoir être affichée que sur les domaines précisément autorisés, voire même sur une "URL type".
Exemple: l'image peut s'afficher sur -http://www.example.com/tests/* ou sur -http://site2.com/log/check.html qui sont des urls autorisés (stockés en db), mais pas sur *.site3.net/* qui ne l'est pas.
Je ne sais pas si c'est très clair ?
D'avance merci !
-

UsagiYojimbo - WRInaute accro

- Messages: 5178
- Inscription: Mer Nov 23, 2005 10:38
Tu peux faire ça directement via le htaccess il me semble, en spécifiant de manière explicite les sites qui doivent pouvoir hotlinker tes images. J'ai un exemple de ça (mais pas sous la main là) que je peux te coller ici tantôt (je m'en sers pour permettre aux agrégateurs d'afficher les images dans les flux rss).
Edit : si ton image est dans un dossier à elle tu peux donc utiliser ce genre de choses : http://blogtoolbox.fr/empecher-le-hotlinking-dimages/
Edit : si ton image est dans un dossier à elle tu peux donc utiliser ce genre de choses : http://blogtoolbox.fr/empecher-le-hotlinking-dimages/
Dernière édition par UsagiYojimbo le Mar Jan 20, 2009 14:02, édité 1 fois.
Est-ce que la variable d'environnement $_SERVER['HTTP_REFERER'] ne suffit pas ?
Même si elle peut etre falsifiée, ça stoppera l'immense majorité des cas, non?
Tu fais
Note les trois === parce que strpos peut renvoyer 0 si la chaine recherchée est trouvée dès le début de la chaine.
Même si elle peut etre falsifiée, ça stoppera l'immense majorité des cas, non?
Tu fais
- Code: Tout sélectionner
if (strpos($_SERVER['HTTP_REFERER'], 'tondomaine') === FALSE) {
C'est bon, renvoie l'image
} else {
Renvoie une image faisant de la pub pour ton site, ou pas d'image du tout.
}
Note les trois === parce que strpos peut renvoyer 0 si la chaine recherchée est trouvée dès le début de la chaine.
Merci pour ces premières pistes
En fait les deux contraintes principales sont:
1. uniquement php: les domaines autorisés sont stockés en db (gestion des accès, voire des abonnements).
2. ne doit pas être falsifiable (ok, c'est toujours possible, mais disons que seul un gros félé doit pouvoir y arriver
).
Je vais néanmoins voir dans quelle mesure on peut falsifier $_SERVER['HTTP_REFERER']: si ça se trouve, le niveau de sécurité sera suffisant.
Est-ce que, pour améliorer la sécurité du principe, il serait envisageable de récupérer l'ip du serveur qui héberge le site "demandeur" de l'image ?
En fait les deux contraintes principales sont:
1. uniquement php: les domaines autorisés sont stockés en db (gestion des accès, voire des abonnements).
2. ne doit pas être falsifiable (ok, c'est toujours possible, mais disons que seul un gros félé doit pouvoir y arriver
Je vais néanmoins voir dans quelle mesure on peut falsifier $_SERVER['HTTP_REFERER']: si ça se trouve, le niveau de sécurité sera suffisant.
Est-ce que, pour améliorer la sécurité du principe, il serait envisageable de récupérer l'ip du serveur qui héberge le site "demandeur" de l'image ?
-

UsagiYojimbo - WRInaute accro

- Messages: 5178
- Inscription: Mer Nov 23, 2005 10:38
$_SERVER["SERVER_ADDR"] ?
-

UsagiYojimbo - WRInaute accro

- Messages: 5178
- Inscription: Mer Nov 23, 2005 10:38
Ah oui bien vu, ça serait donc avec REMOTE_ADDR dans ce cas, non ?
-

UsagiYojimbo - WRInaute accro

- Messages: 5178
- Inscription: Mer Nov 23, 2005 10:38
Peut-être une piste : http://techjunk.websewak.com/how-to-get-ip-address-and-long-code-from-a-url-using-php/
Ca a mon avis tu ne peux pas car c'est le client qui demande l'image, donc la demande vient de l'ip du client. Et le http_referrer n'est qu'une variable transmise avec la demande de l'image, c'est pour ca qu'elle peut etre falsifiée, mais franchement ca sera tellement minime que ca ne vaut pas le coup d'aller plus loin dans la recherche de solutions, a moins bien sur que ton public soit des geeks, dans ce cas le minime peut se transformer en presque moitié, surtout si des geeks publient sur leur blog la façon de contourner ta protection.
julienr, comment ferais-tu, toi, dans ce cas, en JS par exemple (je n'y connais RIEN en js).
Voici la démarche, un peu plus clairement.
1. un client (un site web, autorisé) appelle un marqueur (ce sera plus simple de le nommer comme ça), incluant une variable (disons qu'il faut que je sache que $foo=bar dans sa demande.
2. je dois pouvoir récupérer l'info suivante:
- quel est le site demandeur ?
- quelle est la valeur de $foo
3. sur base de ces infos, je fais un petit tour dans ma db, et je renvoie:
- soit une image indiquant qu'il n'est pas autorisé
- soit une image dépendante de ce que je trouve dans la db pour $foo (si foo est positif j'envoie une image verte, si foo est négatif j'envoie une image rouge).
Peu importe quel IP client demande l'image, tant que c'est au sein d'une page d'un site autorisé.
Voici la démarche, un peu plus clairement.
1. un client (un site web, autorisé) appelle un marqueur (ce sera plus simple de le nommer comme ça), incluant une variable (disons qu'il faut que je sache que $foo=bar dans sa demande.
2. je dois pouvoir récupérer l'info suivante:
- quel est le site demandeur ?
- quelle est la valeur de $foo
3. sur base de ces infos, je fais un petit tour dans ma db, et je renvoie:
- soit une image indiquant qu'il n'est pas autorisé
- soit une image dépendante de ce que je trouve dans la db pour $foo (si foo est positif j'envoie une image verte, si foo est négatif j'envoie une image rouge).
Peu importe quel IP client demande l'image, tant que c'est au sein d'une page d'un site autorisé.
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
ne peux-tu pas passer par un script sur le site distant qui serve de passerelle?
Après tu peux contrôler a 100% l'origine car c'est le serveur de ce site.
Après tu peux contrôler a 100% l'origine car c'est le serveur de ce site.
Pas vraiment: je n'ai pas le contrôle du site distant.
C'est supposé par exemple être ton site à toi, si tu souhaitais faire appel à ce service. Je voudrais que tu n'aies qu'à coller un truc du genre dans ton code:
ou une alternative JS à ce genre de méthode
C'est supposé par exemple être ton site à toi, si tu souhaitais faire appel à ce service. Je voudrais que tu n'aies qu'à coller un truc du genre dans ton code:
- Code: Tout sélectionner
<img src="example.com/get/'.$foo.'.gif" />
ou une alternative JS à ce genre de méthode
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
il ne reste que le referer alors.
tu ne peux pas être sur qu'il n'a pas été changé.
tu ne peux pas être sur qu'il n'a pas été changé.
38 messages • Page 1 sur 3 • 1, 2, 3
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Ajouter un moteur de recherche d'images sur son site
- La terre vue par satellite : accord entre Google et Spot Image
- Google Dance de mai 2003
- Google rachète Feedburner
- Comment éviter de se faire voler son nom de domaine...
- Idées d'optimisation du référencement des images
- Google change de favicon
- Nouveautés sur les recherches de Google Images
- WebRankInfo lance un forum sur les noms de domaine
- Noms de domaine : Google se lance dans le marché
Consultez la description détaillée des produits ou services de Google suivants : Google Image Labeler
- Les sous-domaines d'un site
Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum