Webmaster - Protéger les adresses email contre les bots

Décembre 2016


Protéger les adresses email contre les bots


Vous êtes webmaster et pour une raison x, vous stockez l'adresse email de plusieurs membres de votre site . Ces adresses sont consultables dans leur profil (ex: forum, blog etc....).

Or, aujourd'hui, de très nombreux bots parcourent internet. Les bots sont des programmes qui se balladent sur les pages internet (tous ne sont pas animés de mauvaises intentions) et certains d'entre eux ont été conçus pour analyser les pages web et extraire les adresses email que celles-ci contiennent. Ces bots peuvent donc se rendre sur la page de la liste des membres d'un forum puis collecter toutes les adresses email. C'est une des démarches des spammeurs pour se construire un carnet d'adresse conséquent.

Comment faire pour protéger ces adresses alors?
Malheureusement il n'y a pas de solution miracle. Mais on peux au moins limiter les dégâts avec quelques bidouillages.


I Limiter l'accès des profils aux membres


C'est la technique utilisée par CCM ;-)
Celà consiste à ne laisser l'accès des profils de vos membres que pour les membres authentifiés sur le site. Tout visisteur anonyme se verra refuser l'accès à ces profils.

Avantages : Si un bot se contente de parcourir des sites au pif sans en viser un particulier, ça peut fonctionner. Le bot ne saura pas forcément qu'il doit s'authentifier.

Inconvénients: Si l'algorithme du bot est un peu plus élaboré, il essaiera peut être de se créer un compte sur le site en question pour obtenir plus de privilèges. Pour l'inscription sur votre site, n'hésitez pas à employer des images contenant du texte que l'utilisateur doit recopier, cela en arrêtera une bonne partie. L'ordonnancement des lettres dans l'image doit être complexe (toutefois il faut aussi penser aux malvoyants). De même tous les bots ne font pas toujours une recherche globale sur plusieurs sites. Certains bots peuvent viser des sites particuliers. Ils peuvent utiliser un compte et se ballader sur le site avec...

II Utilisez des images


Lorsqu'un bot cherche une adresse email, il va plus facilement faire une analyse du texte dans la page. Si vous mettez du texte dans une image, un bot peu complexe ne cherchera pas à l'analyser. Voilà encore une méthode qui peut limiter les dégâts. En utilisant une fonction qui affiche les adresses emails sous forme d'images dans les profils des membres, vous limiterez déjà un peu plus les dégâts. Plus astucieux encore: pourquoi ne pas générer une image par caractère et aligner ces images les unes après les autres pour former l'adresse? Pour l'utilisateur, cela peut être tout à fait transparent, mais pas pour un bot.
Si vous ne savez pas comment implémenter cette fonction sur votre site, n'hésitez pas à demander ici sur le forum programmation ou webmastering.
Note: Dans ce genre de cas les adresses doivent rester lisibles, évitez l'ordonnancement complexe des lettres. Ca peut vite devenir fatiguant pour vos utilisateurs.

Avantages: Pour faire face à un bot peu complexe qui ne s'arrête qu'au texte c'est bien.

Inconvénient: Une image met plus de temps à charger que du texte. Et les utilisateurs ne pourront pas faire de copier coller d'une adresse email. De même, certains bots plus élaborés peuvent avoir une fonction d'ocr:
http://fr.wikipedia.org/wiki/OCR
Et là, l'utilisation des images devient parfois insuffisante.

III Utiliser des applets


On peut utiliser des applets, c'est à dire des petits programmes qui s'executent sur le navigateur, pour afficher une adresse email. Exemples: flash et java.
Malheureusement, je ne saurais pas décrire l'efficacité de ces méthodes
car je ne sais pas comment sont ordonnées les chaînes de caractères dans ces applets. Mais au moins ce sera plus efficace que des adresses écrites dans du texte directement sur la page.

Avantage: L'adresse est mieux cachée face à un bot peu élaboré.

Inconvénients: Il existe des bibliothèques permettant de faire de la retro-conception (analyse des composantes d'un programme) sur ces applets. Un bot peut utiliser ce genre de bibliothèque pour retrouver une adresse email.
De même, le navigateur de l'utilisateur doit supporter ces applets, même s'ils sont standards, cela peut gêner une petite part de vos utilisateurs.
Et dans le cas de java, le temps de chargement de la machine virtuelle, qui exécute les applets, est long parfois.

IV Relayer l'envoi des mails et messages personnels


On cherche une adresse pour avoir une conversation privée avec un autre membre d'un site. Ils veulent discuter entre eux? Pourquoi ne pas implémenter une fonction de messagerie privée sur le site (méthode utilisée par le forum PhpBB par exemple). Ou bien pourquoi ne pas prévoir une fonction pour envoyer des mails depuis votre site aux autres membres (également utilisé par phpBB)? Celui qui écrit le mail n'a pas besoin de connaître l'adresse du destinataire pour ça. C'est le site qui se charge de l'envoi, et l'adresse de provenance sera une adresse email du site (avec le pseudonyme du membre qui envoie le mail bien sûr....).

Avantages: Là au moins il n'y a pas de soucis, l'adresse reste cachée, l'envoi se passe du côté du serveur de votre site.
Si l'envoyeur veut la vraie adresse email du destinataire, il lui suffit de la lui demander par ce biais.

Inconvénients: Il faut une bonne confiance de la part des utilisateurs envers l'administrateur du site. Il faut, d'une part, qu'ils sachent que vous avez le pouvoir de lire ces messages vous même (puisqu'ils passent par votre site), et d'autre part qu'il sachent que vous ne le ferez pas :-) (j'espère pour eux et pour vous en tout cas).
Pour l'envoi du mail, utilisez une adresse mail de provenance qui n'appartient à personne, si le membre veut répondre au mail, il peut le faire par inadvertance à l'adresse de provenance du mail. Un mail envoyé à cette adresse doit être automatiquement détruit par le biais d'un programme.

V Utilisation d'un script


On peut utiliser un langage de script exécutable sur le navigateur (le plus standard étant javascript). Vous pouvez utiliser une sorte "d'assombrissement" de la source de vos pages. L'adresse email est dans la source de la page mais on ne peux l'obtenir que par le biais d'une analyse spécifique. Par le biais d'un script javascript, vous pouvez afficher l'adresse sur la page sans que celle-ci ne soit facilement visible dans le code source.
Pour l'algorithme, vous pouvez faire comme vous voulez, pourvu que celui-ci soit un minimum complexe.
Exemple pour afficher "adresse@domaine.prout"
<script language="Javascript">
	
	function victor_hugo()
	{   
		maupassant=new String("adresseemileajardomainejeanbaptistepoquelinprout");
		gary="emileajar";
		moliere="jeanbaptistepoquelin";
		maupassant=maupassant.split(gary);
		maupassant[0]+="@";
		maupassant=maupassant[0].concat(maupassant[1]);
		maupassant=maupassant.split(moliere);
		maupassant[0]+=".";
		maupassant=maupassant[0].concat(maupassant[1]);

		return maupassant;
	}
	document.write(victor_hugo());
</script>


Avantage: Un bot simple ne devrait pas être en mesure de trouver une adresse cachée de cette manière.

Inconvénients: Oui mais certains de vos utilisateurs ont peut être désactivé le javascript sur leur navigateur. Ou
peut être que leur navigateur ne supporte pas le javascript (c'est quand même rare). Et il ya très certainement des bots capables d'intepréter du javascript, donc de retrouver uen adresse :-(

VI Laissez le choix à vos utilisateurs!!


Durant l'inscription sur votre site et même après, et même avant, vos utilisateurs DOIVENT avoir la possibilité de décider s'ils acceptent de dévoiler publiquement leurs informations personnelles ou non. Si oui, Ils doivent pouvoir décider quelles informations personnelles il acceptent de dévoiler. Ca fait partie de la législation en vigueur. En d'autres termes, c'est la loi. Il n'y a donc pas, sur ce sujet, d'avantages ou d'inconvénients qui tiennent : c'est une obligation.
De même, l'utilisateur doit pouvoir décider si ces informations ne seront accessibles qu'aux administrateurs du site, ou bien par tous les membres, ou encore les visiteurs anonymes, ou encore personne comme je l'ai expliqué précédemment.
Avoir le droit à un choix aussi précis du niveau de diffusion des informations personnelles, je ne sais pas si ça fait partie de la loi (à vérifier), mais vos utilisateurs doivent au moins avoir le choix de refuser la diffusion de leurs informations personnelles sur votre site si votre site les possède. (là c'est la loi).
De même, un utilisateur averti saura utiliser ce genre d'option pour se prémunir de la récolte de son adresse email par un bot.

Conclusion


Vous ne pourrez jamais être sûr de cacher des adresses email, affichées sur un site, à un bot. La quatrième solution est la plus avisée, mais elle n'est toujours pas sûre: vous stockez vos adresses email dans une base de données : que se passe t'il si quelqu'un parvient à s'y introduire?
Dites vous bien que certains bots peuvent redoubler d'ingéniosité....

A voir également :

Ce document intitulé «  Webmaster - Protéger les adresses email contre les bots  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.