J’aperçois parfois dans mes web logs des visiteurs qui semblent consulter une quantité exagérée de pages par rapport à la moyenne, et regardant de plus près, leur navigation est désorganisée et ils téléchargent les même pages plusieurs fois en même temps. Dans mon cas récent, le user agent de leurs navigateurs indique qu’ils ont installé une barre outil dont la signature est « FunWebProducts ».
Exemple:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322)
Ces visiteurs sont légitimes, ce ne sont pas des bots ou des aspirateurs de sites, je ne désire pas pas leur bloquer complètement l’accès au site. Mais j’ai quand même envie de leur informer qu’ils causent un problème au site en téléchargeant autant de pages et en consommant autant de bande passante pour rien, surement sans même le savoir puisque c’est un processus automatique. Sans oublier que leur ordinateur est probablement infecté par des spyware ou des adware.
Une petite recherche m’a indiqué que la compagnie responsable de cette barre outil est MyWebSearch. Les gens l’installent pour avoir des emoticones, des curseurs différents et des screen savers gratuits, mais le prix à payer est probablement cher en considérant toutes les modifications faites à leur navigateur sans leur consentement.
J’ai donc décider d’écrire une petite fonction en Javascript qui les averti de la situation:
infectedWords = new RegExp("(FunWebProducts)", "i");
browser = navigator.userAgent;
if (browser.match(infectedWords)) {
alert("Il semble que votre navigateur soit infecté par un programme appellé '" + RegExp.$1 + "' qui cause des problèmes pour notre site web. S'il vous plait, veuillez le désinstaller.");
}
Le visiteur va recevoir un message popup à chaque fois qu’ils visionnent une page web qui contient ce code, ce qui, vous vous en doutez, devrait être assez irritant pour les motiver à trouver une solution au problème, sans toutefois les empêcher de lire la page qui les intéresse.
Cette fonction peut-être améliorée pour ajouter tout autre mots-clés qui se trouvent dans le user agent d’un navigateur pour un produit qui pose des problèmes à votre site, ou à vos visiteurs, en modifiant la ligne suivante, qui suit la grammaire des Regular Expressions, en séparant les termes avec une barre verticale:
infectedWords = new RegExp("(FunWebProducts|AutreProduitIndesirable)", "i");