2010-11-21 8 views
0

J'ai un site de petites annonces ...Est-ce que cette fonction de "donner un pourboire à un ami" est sûre en termes de spam et de robots?

Chaque classé est affiché dans une page php appelé show_ad.php

Je travaille sur une fonction « pointe un ami », où les utilisateurs entrent leur propre nom, l'email des amis et un court message à l'ami.

Ce qui précède est pas de problème, mais je dois vous assurer que les bots ne pas utiliser ce formulaire pour « spam » etc ...

Une façon est captcha, mais je pensais à créer mon propre captcha , donc voici mon plan, et j'ai besoin de vous pour me dire si elle a des défauts:

1- Sur le chargement du fichier show_ad.php, je génère un nombre aléatoire, disons 5 chiffres.
2- Je transmets le numéro à l'utilisateur et demande aux utilisateurs d'entrer ce numéro dans une entrée de texte de formulaire.
3- Le numéro est également placé dans une entrée cachée.
4- L'utilisateur appuie sur le bouton "envoyer".
5- J'utilise ajax pour appeler un fichier php appelé send_tip.php, et je récupère la valeur de l'entrée cachée, et la compare à l'entrée de texte que l'utilisateur a saisie, et vérifie si elles correspondent, puis envoie le courriel.

Rien n'est jamais assez sûr, mais est-ce suffisant pour un site de petites annonces?

Merci

MISE À JOUR:

6- ajouter une table à MySQL, qui enregistre les adresses IP de l'utilisateur qui envoie un courrier électronique, et si elle dépasse plus de dire 3 e-mails par minute 30 e-mails par jour, je les arrête ... Alors alors peut-être que le mail suffit, et que je devrais passer les premiers pas avec le nombre aléatoire? Qu'est-ce que tu penses?

+1

Pourquoi, au nom du ciel, inventer votre propre CAPTCHA? –

+0

Je ne sais pas si c'est sûr à partir de robots, mais il n'est probablement pas à l'abri du spam, car c'est probablement ce que vous enverrez à l'ami. – bmb

+1

FWIW, les amis et la famille qui donnent mon adresse e-mail personnelle à des sites Web ont tendance à obtenir une réponse difficile de ma part (* "Si je voulais que le New York Times ait mon adresse e-mail, je l'ai Si vous voulez m'envoyer quelque chose, prenez l'URL et envoyez-la moi directement. "*). Et le site Web est toujours complètement ignoré. –

Répondre

6

Vous pouvez envisager d'utiliser reCAPTCHA au lieu de réinventer la roue et de créer votre propre CAPTCHA.

Comme un effet secondaire agréable, vous aidez à numériser des livres!

+0

+1 pour choisir reCaptcha – shevski

+0

+1 pour reCaptcha, des tas de sites majeurs l'utilisent et il numérise des vieux livres! –

3

On pourrait facilement écrire un bot qui regarde le champ caché et soumet les bonnes données.

Donc non, ce n'est pas sécurisé.

+0

Vérifiez mes modifications puis ... –

+0

Je ne suis pas sûr de ce que votre édition a été, mais si c'est quelque chose qui peut être scripté, les spammeurs en profiteront. Fondamentalement, l'obscurité du site est la seule ligne de défense ici. Cette garantie particulière n'y ajoute presque rien. – Matthew

+0

D'accord, votre mise à jour concerne la limitation de débit. Cela pourrait suffire si vous pouvez trouver les limites appropriées. (Notez que les spammeurs peuvent avoir accès à de nombreuses adresses IP.) En passant, c'est une bonne chose à faire, peu importe si vous utilisez finalement quelque chose comme une image traditionnelle CAPTCHA. – Matthew

1

Aucun CAPTCHA n'est 100% bot-proof, mais 99% bot-proof est suffisant. AJAX sera un énorme barrage routier pour les robots, ce qui est assez sûr. Vous devez donner des noms trompeurs pour former des champs. Par exemple, votre champ caché de votre "numéro" s'appellera "message", donc votre bot va le bourrer. Toutefois, si votre site est assez grand, les programmeurs de bot reprogramment leurs bots pour faire face à votre site ...

Voir aussi: Practical non-image based CAPTCHA approaches?

1

Ce n'est pas très sûr. Une meilleure solution serait de générer ce nombre à 5 chiffres et de le stocker dans la session. Puis générer une image qui montre le nombre. Tout bot qui a besoin de pirater ce captcha doit être capable d'OCR l'image, ce qui est beaucoup plus complexe. Un autre léger avantage de cette approche est qu'elle fonctionne sans avoir besoin d'AJAX, bien que cela puisse aussi être un inconvénient, car AJAX est un obstacle supplémentaire pour les robots. Vous pouvez, si vous le souhaitez, utiliser AJAX pour demander l'image.

[edit] Un très grand avantage d'écrire votre propre captcha, c'est que quelqu'un a besoin d'écrire un bot spécifique pour cela. Les captchas communs peuvent être piratés par des bots génériques qui cherchent juste des signes. J'ai réussi à protéger certaines de mes formes en remplaçant un captcha complexe par un simple fait sur mesure qui affiche simplement du texte et qui nécessite toujours la même réponse!