[Résolu] Reverse Captcha + doublon chapô
Bonjour à toute la communauté !
Tout d'abord je souhaite remercier toute l'équipe ainsi que les personnes qui aident à améliorer toujours plus ce projet simplement génial (et j'en ai testé des CMS !)
Je sollicite votre savoir pour un petit problème d'un système de captcha inversé qui me pose problème.
Pour ceux qui ne connaissent pas, je m'explique :
de la même méthode qui consiste à remplir une box pour savoir s'il s'agit d'un robot ou d'un humain, cette méthode est l'inverse, elle consiste à mettre une box cachée (ou non) qui ne doit pas être remplie. En supposant que les bots remplissent toutes les cases d'un formulaire, celui-ci n'est pas envoyé.
Cependant la partie du JS pour l'envoi ne fonctionne pas.
Voilà mon code pour les 2 parties (formulaire et javascript)
Hi everyone !
I would like to thank all the team and the community for that wonderful project, which is, for me, the best i tested !
But I have a problem I don't know how to solve, I explain :
I would incorporate a reverse captcha (instead type words, the goal is do not write something in a hidden box, that the bots don't know) to my form called by a javascript code, but the section corresponding to the sending doesn't seem to work.
Here's my code (form and javascript):
En testant avec des "alert('test')" je sais que mon code est bien pris en compte, cependant le commentaire n'est pas envoyé et je ne vois pas pourquoi...
Auriez-vous une petite idée ?
Merci par avance
Testing with some "alert('test')" in the JS, i know my code is processed, but the comment is not sent...
Do you have an idea ?
Thanks in advance
Tout d'abord je souhaite remercier toute l'équipe ainsi que les personnes qui aident à améliorer toujours plus ce projet simplement génial (et j'en ai testé des CMS !)
Je sollicite votre savoir pour un petit problème d'un système de captcha inversé qui me pose problème.
Pour ceux qui ne connaissent pas, je m'explique :
de la même méthode qui consiste à remplir une box pour savoir s'il s'agit d'un robot ou d'un humain, cette méthode est l'inverse, elle consiste à mettre une box cachée (ou non) qui ne doit pas être remplie. En supposant que les bots remplissent toutes les cases d'un formulaire, celui-ci n'est pas envoyé.
Cependant la partie du JS pour l'envoi ne fonctionne pas.
Voilà mon code pour les 2 parties (formulaire et javascript)
Hi everyone !
I would like to thank all the team and the community for that wonderful project, which is, for me, the best i tested !
But I have a problem I don't know how to solve, I explain :
I would incorporate a reverse captcha (instead type words, the goal is do not write something in a hidden box, that the bots don't know) to my form called by a javascript code, but the section corresponding to the sending doesn't seem to work.
Here's my code (form and javascript):
[== HTML ==]
<!-------- Formulaire ----------->
<fieldset class="conteneur">
<!---------- partie identité --------------->
<p class="commentaire">Un commentaire ?</p>
<form action="<?php $plxShow->artUrl(); ?>#form" name="votreForm" method="post">
<fieldset class="identité">
<div id="ident">
<label for="id_name">Pseudo :</label>
<input id="id_name" name="name" type="text" size="20" class ="box" value="<?php $plxShow->comGet('name',''); ?>" maxlength="30" />
</div>
<div id="ident">
<label for="id_site">Votre site web (facultatif) :</label>
<input id="id_site" name="site" type="text" size="20" class ="box" value="<?php $plxShow->comGet('site',''); ?>" />
</div>
<div id="ident">
<label for="id_mail">Adresse mail (facultatif) :</label>
<input id="id_mail" name="mail" type="text" size="20" class ="box" value="<?php $plxShow->comGet('mail',''); ?>" />
<!---------------------------------------- PARTIE BOX CAPTCHA ------------------------------------------------->
<label for="robots">
Vous ne devez pas remplir ce champ *
</label>
<input class="robots" name="robots" type="text" value=""/>
<!------------------------------------------------------------------------------------------------------------------------------->
</div>
</fieldset>
<!--------- partie message ----------->
<fieldset class="message">
<b><label for="id_content" class="lab_com"><?php $plxShow->lang('COMMENT') ?> :</label></b>
<textarea id="id_content" name="content" class ="box"><?php $plxShow->comGet('content',''); ?></textarea>
<input type="submit" value="Publier le commentaire" onclick="verifForm();" />
</fieldset>
</form>
</fieldset>
[== JavaScript ==]
<script language="javascript" type="text/javascript">
function verifForm()
{
if(document.forms['votreForm'].elements['robots'].value !== '')
{
document.location='http://www.fuckspam.com/';
}
else
{
document.forms['votreForm'].submit();
}
}
</script>
En testant avec des "alert('test')" je sais que mon code est bien pris en compte, cependant le commentaire n'est pas envoyé et je ne vois pas pourquoi...
Auriez-vous une petite idée ?
Merci par avance
Testing with some "alert('test')" in the JS, i know my code is processed, but the comment is not sent...
Do you have an idea ?
Thanks in advance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Les robots sont moins bete qu'on le pense. Faut pas oublier que derriere se sont des humains qui les programment et qui savent très bien quels champs sont utilisés dans tel ou tel cms. Suffit d'éplucher le code.
Pour la redirection essaye
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
héhé la console ne me dit absolument rien, pour elle tout va bien
@Stéphane :
Ah ? Je ne l'ai pas vu dans les plugins...
Normalement il suffit de modifier le nom de la case "robots" par un nom qui ne sous-entend rien de négatif dans la base de donnée du robot je pense, comme "anniversaire" voire "adresse" mais dans l'absolu je ne sais pas ce que ça vaut.
Pour le moment j'utilise le captcha de base (qui fonctionne vraiment bien) avec projethoneypot et pour le moment ça a l'air de bien fonctionner, c'est plus un projet à titre personnel comme je n'ai pas trouvé beaucoup d'info sur le sujet je voulais tenter et faire un retour sur cette méthode.
Mon problème ne vient pas de la redirection qui marche très bien mais la partie du "else", c'est vraiment cette ligne
Le commentaire est envoyé mais pas dans les commentaires a priori... si je mets un juste avant, l'alerte est bien déclenchée
(un hors sujet mais sait-on jamais, j'avais un problème de doublon du chapô, il se retrouvait en début d'article avant le contenu de ledit article, pour éviter ça, et donc permettre d'écrire un texte différent de celui retrouvé dans l'article j'ai modifié le "class.plx.show.php" et plus précisément la partie en commentant la ligne
Fin du hors sujet )
Tu pourras mettre le nom que tu veux à ton champ ça ne changera rien. Celui qui regarde les sources de PluXml saura que seuls les champs valides sont name, site, mail et content. Tout le reste c'est du pipo. Il suffit de programmer le bot spammeur en conséquence et de ne remplir que ces champs.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Si tu ne veux pas que le chapo apparaisse dans l'article, au lieu d'appeler appelle
Le gain de ne pas vérifier est négligeable. Et quand tu feras une mise à jour du core de pluxml, tu risques avoir des surprises si tu oublies de commenter à nouveau ton code.
D'une manière générale, il faut éviter d'intervenir sur le core.
Merci bien.