Cet article montre
comment on peut faire du cloaking en PHP. Il est important de noter que le
cloaking est une pratique réprouvée par les principaux moteurs de recherche. Son
utilisation à des fins abusives/frauduleuses peut se solder par le retrait de
votre site des résultats des moteurs de recherche et sa consignation sur une
liste noire comme l’expliquent les deux articles suivants :
Nous donnons cet exemple à des fins éducatives seulement. Nous vous
déconseillons de le mettre en œuvre sur votre site compte tenu des risques
encourus (la meilleure façon d’améliorer la visibilité de votre site sur les
moteurs de recherche est de produire des contenus pertinents et populaires).
Nous rappelons que le cloaking consiste à présenter aux robots des moteurs de
recherche des pages et/ou des contenus différents de ceux présentés aux
utilisateurs humains. La détection de l’origine de la requête se fait sur la
base de l’adresse IP ou du USER-AGENT contenu dans l’entête du paquet http (à
noter que la technique qui utilise l’adresse IP est plus fiable sans être
toutefois infaillible).
En PHP il est possible de récupérer les informations du USER-AGENT via la
variable d’environnement $_SERVER["HTTP_USER_AGENT"]. L’adresse IP pour sa part
est disponible via la variable $_SERVER["REMOTE_ADDR"].
Avec la technique des wild cards vous pouvez vérifier la présence de certaines
suites de caractères dans l'user-agent, l'adresse IP ou l'hôte du visiteur (cela
vous permet de déterminer l’origine de la requête par échantillonnage
c'est-à-dire sans avoir à contrôler toutes les informations contenues dans le
USER-AGENT).
Exemple 1 : cloaking sur la base du USER-AGENT
Dans l’exemple suivant, la fonction strpos() vérifie la présence des chaînes de
caractères propres à Googlebot. Si la requête émane de Googlebot une page
cloakée est générée à la volée, sinon il y a génération d’une page standard
conçue pour les utilisateurs humains.
<?php
$trouve=strpos($_SERVER["HTTP_USER_AGENT"],"Googlebot");
if($trouve!==false){ // le visiteur est Googlebot, lui présenter la page cloakée
?>
<html>
... page cloakée pour Googlebot. </html>
<?php
}
else{ // le visiteur n'est pas googlebot, redirection vers une page standard?>
<html>
... page standard...
</html>
<?php
}
?>
Exemple 2 : Cloaking sur la base de l’adresse IP
Dans ce code trois pages différentes seront présentées aux visiteurs (une pour
Googlebot, une pour le robot Inktomi et une troisième pour les autres
utilisateurs).
<?php
$adresseip=strval($_SERVER["REMOTE_ADDR"]);
$google1=strpos($adresseip,"216.239.46");
$google2=strpos($adresseip,"64.68.8");
$google3=strpos($adresseip,"66.249.");
$slurp=strpos($adresseip,"66.196");
if(($google1!==false) || ($google2!==false) || ($google3!==false) || ($slurp!==false)){
// le visiteur est Googlebot ou Inktomi, lui présenter la page cloakée
?>
<html>
... page HTML cloakée pour Googlebot et Inktomi
</html>
<?php
}
else{ // le visiteur n'est ni Googlebot ni Inktomi, lui présenter la page
"standard"
?>
<html>
... page HTML "standard"...
</html>
<?php
}
?>
Liste des USER-AGENT et des adresses IP des principaux moteurs de recherche.
Livre gratuit sur l'optimisation des applications Java/MySQL pour les besoins d'ecommerce
New Page 1
Kamal AOUDA a
le plaisir de vous informer de la publication de son
livre gratuit sur l'optimisation des applications Java/MySQL pour les
besoins du commerce électronique.
Ce livre
propose un référentiel pour l'intégration du
management des performances aux trois premières phases du cycle de
développement (analyse, design, codage). Comme son titre l'indique, ce
livre
ne traite que des problèmes de performance qui sont dus à des
anomalies dans l'analyse, le design et le codage des applications de
commerce électronique et des bases de données auxquelles elles sont
adossées. Sont exclues
du périmètre du
livre
les anomalies attribuables :
* Au réseau qui
connecte l'application à l'Internet.
* Au serveur web et au serveur d'application.
* A la version de la Java Virtual Machine utilisée.
* A tout matériel utilisé par l'application localement ou à distance.
* Aux scripts exécutés du côté du client (Vbscript, Javascript).
Notons par ailleurs que le
livre ne couvre que les phases d'analyse, de design et de codage. Les phases
de test, de déploiement et de maintenance ont été sciemment exclues parce qu'il
existe déjà un nombre conséquent de livres et d'articles qui traitent du
management des performances dans ces 3 phases.