Ce principe est-il efficace contre les bots ?

Ce principe est-il efficace contre les bots ? - PHP - Programmation

Marsh Posté le 09-12-2007 à 21:09:50    

Pour un site codé en PHP, est-ce que, pour empécher l'inscription de robots, demander à remettre des chiffres dans l'ordre serait efficace contre des robots ou pas (en gros, sont-ils capables de le faire ou pas ?) ?  
 
Je me base sur le script suivant :
 

Code :
  1. <?php
  2.  
  3. // Fonction permettant de générer une suite aléatoire à l'inscription pour éviter les inscriptions de robots //
  4.  
  5. function get_antispam()  
  6.  {
  7.     $chiffres = range(0,9);
  8.       shuffle($chiffres);
  9.      foreach ($chiffres as $chiffre) {
  10.         echo $chiffre ;
  11.      }
  12.  }
  13.  
  14. ?>


 
Merci d'avance  :jap:


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
Reply

Marsh Posté le 09-12-2007 à 21:09:50   

Reply

Marsh Posté le 09-12-2007 à 21:36:26    

Si le robot peut les lires alors on pourra lui demander de les classés.
En l'occurence il pourra les lire au vu de ton "echo" donc ce ne sera pas très sécurisé, affiche les avec GD dans une image et déjà ce sera mieux.

Reply

Marsh Posté le 09-12-2007 à 21:38:45    

Un bot prévu pour ton site pourra effectivement faire ça de manière simple :( Mais faut que le bot soit spécialement conçu pour attaquer ton site

Reply

Marsh Posté le 09-12-2007 à 22:01:35    

Je pensais effectivement mettre le code généré dans une image mais j'avais peur que ça soit superflu en fait.


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
Reply

Marsh Posté le 10-12-2007 à 09:00:39    

le souci se porte alors sur l'accesibilité de ton site...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 10-12-2007 à 10:50:49    

Oui, effectivement, je vais devoir réfléchir là dessus.
 
En ce qui concerne l'image, j'ai un chtit problème : il s'agit donc d'une fonction de ma librairie de fonctions qui va se retrouver au beau milieu d'une page puisque c'est là que ça sera utile. Le problème c'est que pour générer l'image faut commencer par header(content : image/png) ou un truc comme ça hors comme y'a forcément du xHTML avant ça gueule :o
Je pensais à utiliser la temporisation pour éviter ce problèle mais du coup je ne sais pas trop comment déclarer qu'il s'agit d'une image :(
 
Merci d'avance ;)


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
Reply

Marsh Posté le 10-12-2007 à 10:53:00    

Tristou a écrit :

Le problème c'est que pour générer l'image faut commencer par header(content : image/png) ou un truc comme ça hors comme y'a forcément du xHTML avant ça gueule :o


Non. T'essaye d'envoyer une image au beau milieu du flux xhtml, ce qui est un non-sens [:pingouino]

Reply

Marsh Posté le 10-12-2007 à 10:55:46    

donc en fait, je créé simplement l'image sans dire "hop je t'envoies une image" au navigateur


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
Reply

Marsh Posté le 10-12-2007 à 11:02:49    

L'image va être demandée par le navigateur par une autre requête. Donc l'image doit se trouver quelque part sur le serveur.
 
Genre tu génère l'image, tu l'enregistres sur le serveur (surtout pas de header). Puis dans le formulaire, tu mets le lien vers cette image

Reply

Marsh Posté le 10-12-2007 à 21:39:09    

Une solution en test sur un modeste site d'un client :

 

un mix de css et de test de turing :
un champ explicitement nommé 'email', rendu invisible par css pour l'utilisateur.
Les bots iront remplir avec tout le zèle ce champ, ce qui permettra de les filtrer.

 

Au cas où le client désactive les css, un message textuel pourra préciser qu'il ne faut pas remplir ce champ destiné à leurrer les robots.

 

C'est en production depuis une semaine pour le moment donc retour d'expérience limité, mais le concept est simple. Il est loin d'être infaillible, mais impose une manipulation humaine pour le prendre en compte. Mais la contre mesure est aussi simple que de renommer des champs.

 

Enfin bon tout ça c'est la théorie, tant dans quelques semaines je mets un captcha classique  :o

 

edit: autre avantage, l'utilisateur ne voit rien et n'a rien à faire !

Message cité 1 fois
Message édité par PunkRod le 10-12-2007 à 21:40:06
Reply

Marsh Posté le 10-12-2007 à 21:39:09   

Reply

Marsh Posté le 10-12-2007 à 22:14:02    

PunkRod a écrit :

Une solution en test sur un modeste site d'un client :
...
edit: autre avantage, l'utilisateur ne voit rien et n'a rien à faire !


 
 
C'est faux, que fais-tu des utilisateurs qui naviguent sans les CSS ? :kaola:


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 10-12-2007 à 23:33:40    

ca existe ? a  part lynx je vois pas...
 
merde, moi qui utilise les css, il faut plutot utiliser la balise  
<font color='red'>
...

Reply

Marsh Posté le 11-12-2007 à 08:10:54    

weed a écrit :

ca existe ? a  part lynx je vois pas...
 
merde, moi qui utilise les css, il faut plutot utiliser la balise  
<font color='red'>
...


bah justement ... J'ai une amie aveugle qui utilise synthétiseur vocal + tablette braille ...  :)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 11-12-2007 à 13:26:30    

NewsletTux a écrit :

 


C'est faux, que fais-tu des utilisateurs qui naviguent sans les CSS ? :kaola:


 :fou:

 

C'est mentionné dans mon message : un message précise à l'utilisateur de ne rien saisir !
le message est invisible par css, mais s'il est visible, l'utilisateur voit qu'il n'a rien à saisir...

 

Demander à l'utilisateur de lire un formulaire est un pré-requis pas un effort supplémentaire :o

Message cité 1 fois
Message édité par PunkRod le 11-12-2007 à 13:28:24
Reply

Marsh Posté le 11-12-2007 à 14:23:18    

PunkRod a écrit :


 :fou:  
 
C'est mentionné dans mon message : un message précise à l'utilisateur de ne rien saisir !
le message est invisible par css, mais s'il est visible, l'utilisateur voit qu'il n'a rien à saisir...
 
Demander à l'utilisateur de lire un formulaire est un pré-requis pas un effort supplémentaire :o


 
Ce principe semble interessant.
Merci.


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed