Fork me on GitHub




« 1 ... 8 9 10 (11) 12 13 »


Re: Inscriptions d'utilisateurs indésirables
Aspirant
Inscrit: 11/11/2010 14:56
Messages: 78
En faisant une petite recherche sur google je tombe sur pas mal de question concernant le robot inscription avec pratiquement tous les CMS, la meilleur solution possible testé avec d'autres CMS est la question réponse dans le formulaire d'inscription. le principe est simple chaque webmaster peut configurer une question avec une réponse propre à lui.
passons maintenant au pratique.
j'utilise xoops 2.5.4 et le module profile 1.62
on commence par modifier le fichier include/forms.php
on cherche la ligne
Citation :
$elements[0][] = array('element' => new XoopsFormPassword(_US_VERIFYPASS, 'vpass', 35, 32, ''), 'required' => true);
$weights[0][] = 0;


juste apres on colle

Citation :

global $xoopsModuleConfig;
$elements[0][] = array('element' => new XoopsFormLabel(_QUESTION_ANTI_ROBOT, $xoopsModuleConfig['profile_questionn']));
$weights[0][] = 0;

$elements[0][] = array('element' => new XoopsFormText(_REPONSE_AU_QUESTION_ANTIBOT, 'question', 35, 32, ''), 'required' => true);
$weights[0][] = 0;


on ouvre maintenant le fichier register.php

on cherche la ligne

Citation :
$vpass = isset($_POST['vpass']) ? $myts->stripSlashesGPC(trim($_POST['vpass']) ) : '';


et on colle juste après le code

Citation :
$question = isset($_POST['question']) ? $myts->stripSlashesGPC(trim($_POST['question']) ) : '';


global $xoopsModuleConfig;
if ( (isset($question)) && ($question != $xoopsModuleConfig['profile_reponse']) ) {
$stop .= _US_REPONSEAUQUESTIONESTFAUX . '<br />';
}



le 3eme fichier à modifier est xoops_version.php

on colle dans la partie de configurtation

Citation :
$modversion['config'][2]['name'] = 'profile_questionn';
$modversion['config'][2]['title'] = '_PROFILE_MI_PROFILE_QUESTION';
$modversion['config'][2]['description'] = '';
$modversion['config'][2]['formtype'] = 'textbox';
$modversion['config'][2]['valuetype'] = 'text';
$modversion['config'][2]['default'] = 'où se trouve Paris??';

$modversion['config'][3]['name'] = 'profile_reponse';
$modversion['config'][3]['title'] = '_PROFILE_MI_PROFILE_REPONSE';
$modversion['config'][3]['description'] = '';
$modversion['config'][3]['formtype'] = 'textbox';
$modversion['config'][3]['valuetype'] = 'text';
$modversion['config'][3]['default'] = 'france';


dans le fichier language/main.php on colle

Citation :
define("_REPONSE_AU_QUESTION_ANTIBOT", "La reponse pour la question est:");
define("_US_REPONSEAUQUESTIONESTFAUX", "Votre reponse au question est faux. ressayez encore une fois");
define("_QUESTION_ANTI_ROBOT", "Question Anti Robots, Prouve que vous etes humain");



voilà c'est tout vous pouvez changer la question et la réponse dans les préférence de profile soit par exemple 4 plus 3 égal à combien? l'utilisateur doit taper manuellement la réponse juste pour pouvoir s'inscrire sinon il tombe sur un message d'erreur pour ressayer. depuis que j'ai ajouté ça à mon site j'ai jamais eu d'inscription bidon même si ça arrive on sait jamais il suffit de modifier la question et la réponse dans les préférences.


Posté le : 29/10/2013 23:29
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Merci Olivee,
J'avais déjà lu une conversation de ce genre sur xoops.org.

Je me suis permis de proposer ton idée et ton explication sur github.

Voir https://github.com/XOOPS/XoopsCore/issues/41

Posté le : 30/10/2013 00:39

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Aspirant
Inscrit: 11/11/2010 14:56
Messages: 78
voici une autre solution peut être plus efficace au lieu de fixer la question et la réponse on pose aléatoirement une question avec une réponse à chaque affichage du formulaire d'inscription donc le robot ne peut pas enregistrer la réponse pour ressayer encore une fois donc en tout il y a plus que 200 possibilités alors pas de chance pour le robot tout con de trouver la bonne réponse au question.
vous êtes libre de changer le contenu des array et du question mais il faut garder une phrase logique et compréhensible sans piège il faut bien sûr penser aux utilisateurs humain pour ne pas les démotiver .

dans le fichier forms.php on ajoute
Citation :
// On créer 3 array avec des valeurs permettant de construire plusieurs question
$array1 = array('chat','chien','cheval','pigeon','singe','mouton','cochon','poisson','renard','lion');
$array2 = array('Gérard Holtz','Vincent Lagaf','Laurence Ferrari','Michel Drucker','Jean-Pierre Foucault','Christophe Dechavanne','Carla Bruni','Patrick Sebastien','Jean-Pierre Pernaut','William Leymergie');
$reponse = array('blanc','bleu','rouge','noir','violet','jaune','marron','rose','gris','vert');

// Et on forme notre phrase avec des éléments des tableaux choisis au hasard
$phrase = 'Quelle est la couleur du '.$array1[rand(0,9)].' <strong>'.$reponse[rand(0,9)];.'</strong> de '.$array2[rand(0,9)].' ?';



$elements[0][] = array('element' => new XoopsFormHidden('hidebott', $reponse[rand(0,9)]));
$weights[0][] = 0;

$elements[0][] = array('element' => new XoopsFormLabel(_QUESTION_ANTI_ROBOT, $phrase));
$weights[0][] = 0;
$elements[0][] = array('element' => new XoopsFormText(_REPONSE_AU_QUESTION_ANTIBOT, 'phrase', 35, 32, ''), 'required' => true);
$weights[0][] = 0;





et dans le fichier register.php on ajoute

Citation :

$phrase = isset($_POST['phrase']) ? $myts->stripSlashesGPC(trim($_POST['phrase']) ) : '';
$hidebott = isset($_POST['hidebott']) ? $myts->stripSlashesGPC(trim($_POST['hidebott']) ) : '';

if ( (isset($phrase)) && ($phrase != $hidebott) ) {
$stop .= _US_REPONSEAUQUESTIONESTFAUXCOULEUR . '<br />';

}



il y a une autre solution c'est de changer complètement le formulaire d'inscription et changer le lien de la page register.php c'est un peux compliquer à expliquer ici.




ps: pour Alain la réponse doit être en minuscule, il faut changer France par france c'est plus facile pour l'utilisateur humain. On peut même demander de taper un mot qu'on fixe aléatoirement comme ça l'utilisateur sait se qu'il doit taper. merci de proposer cette solution au core team on peut introduire tout ça dans le core de xoops dans la fonction XoopsUserUtility::validate

on peut utiliser cette astuce dans le formulaire des commentaires comme ça on aura plus des commentaires bidons.
s'il y a des questions je suis là.

Posté le : 30/10/2013 10:47
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
La question serait de ce type ?

Citation :
Quelle est la couleur du cheval noir de Laurence Ferrari ?

C'est moins bon car la réponse se trouve dans la question.

Je préfère une question du genre :

Citation :
Que produit une vache ?
Citation :
Combien de pattes à un chat ?

Posté le : 30/10/2013 11:51

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Merci olivee pour ta participation

Posté le : 30/10/2013 13:43

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Est-ce vraiment différent de la solution précédente ? C'est à dire faire un test identique, mais à partir d'un champs créé dans le formulaire d'inscription sans modifier les fichiers de formulaire ? Ça fonctionne, si on ne remplit pas ou si la réponse est fausse message d'erreur et l'on ne peut valider le formulaire.
Mais ça n'empêche quand même pas les robots de s'inscrire !
Votre dernière méthode est-elle plus efficace ??

Posté le : 31/10/2013 00:38

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Aspirant
Inscrit: 11/11/2010 14:56
Messages: 78
pour comprendre quelle solution est plus efficace il faut comprendre comment un robot fonctionne.
sur internet maintenant on trouve des milliers si c'est pas des millions des sites qui tournent sur xoops, il y a aussi des As de programmation qui sont capable de tous faire donc je prend un chinois comme exemple. ce chinois il va créer un code le plus simple en php pour explorer dans un axe de temps tous les pages profile/register.php soit en faisant une petite recherche sur google soit en prenant les pages de sa base de donnée (préenregistré auparavant) et remplir les champs du formulaire aléatoirement et poster ces infos en utilisant par exemple la fonction curl. le seul test qui se fait dans ce cas c'est coté serveur il va vérifier si le nom d'utilisateur et l'email existent et si les deux champs pour le mot de passe sont identique s'il y a pas de problème le serveur va accepter l'inscription donc ce chinois il peut prédéfinir un mot de passe identique pour tous les sites qu'il explore et change aléatoirement donc le nom d'utilisateur et l'email et procéder par la suite par poster des commentaires bidons que vous avez certainement rencontré.

1ere solution: il y'aura un champs supplémentaire qu'il doit remplir obligatoirement avec la bonne réponse, le code comme il est conçu il va pas comprendre et il ne peut pas savoir la réponse même si la réponse se trouve dans la question donc il va mettre aléatoirement un mot je vous laisse le plaisir de calculer la probabilité que ce robot tout con puisse trouver la bonne réponse . mais le chinois il va certainement s'il a le temps bien sûr trouver dans ses log un message d'erreur comme si c'est impossible de s'inscrire sur votre site malgré que c'est xoops alors la solution pour lui c'est d’ouvrir votre site et voir c'est quoi le problème il va vite comprendre qu'il y a une question a répondre puisque c'est une seule réponse donc il va modifier son code pour remplir le champs avec la bonne réponse or puisque la question est configurable dans les préférences la solution est simple il faut modifier la réponse et c'est un peut compliquer pour ce chinois de suivre dans ce cas.


2eme solution: c'est presque pareille l'avantage peut être c'est de démotiver ce chinois de modifier son code puisqu'il y a plus que 200 possibilités pour les questions et les réponses, il doit savoir tous les questions et tous les réponses pour qu'il puisse modifier son code et croyez moi c'est pas facile c'est du travail pour lui en plus ça vaut pas la peine le seul cas ou c'est motivant peut être s'il y a des millier des sites qui utilise les mêmes questions et les même réponses, la solution pour ça c'est toujours pareille changer les questions et les réponses possible.

3eme solution: l'inconvénient de ceux deux solutions c'est qu'il y a dans tous les cas utilisation des ressources du serveur et email envoyé pour le robot et pour les admins dans le vide. la solution pour ça c'est de changer complètement le lien de la page register.php j'ai dû changer dans le core de xoops et c'est un peut compliquer pour expliquer, c'est claire donc pour vous le robot ne sait pas le lien de la page pour l'explorer évidemment notre serveur est bien tranquille dans son petit coin.


malheureusement pour toute ces solutions il y a un inconvénient de langue les français qui ne comprennent pas l'anglais et les anglais qui ne comprennent pas le français.....
si vous avez des idées pour résoudre ce problème je suis preneur.

voilà j’espère que c'est claire, à vous de décider quelle solution est meilleure.

Posté le : 31/10/2013 10:48
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
pour ma part, je bloque les petits malins par un pare-feu avant qu'ils accèdent aux ressources machines, mais ils faut posséder un serveur dédié pour cela (et un pare-feu). Les réglage du pare-feu se font automatiquement via une base de données qui contient toutes les IPs louches qui sont bannis. Et pour remplir cette base de données, d'autres serveurs scrutent les logs des serveurs web et grâce à des règles spécifiques liées à l'IP, à l'URL demandées, etc... pour remplir la BDD de toutes les IP rencontrées qui ont une action louche.

Je suis en train de finaliser un module pour Xoops qui exploitera cette BDD.

Posté le : 31/10/2013 16:11
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Aspirant
Inscrit: 11/11/2010 14:56
Messages: 78
si j'ai bien compris tu parle du badrobot daemon

Citation :
The badrobot daemon is a short script written in ruby that runs in the background and should not impact your system performance. It checks once every second if the file /tmp/badrobot has been touched. If so, it reloads the banned IPs from the MySQL database and adds them to your firewall. It also remembers the next expiration time to refresh the firewall rules whenever an IP ban has expired.


est ce qu'avec ça j'aurai pas ce problème dans mes log et il y'aura pas de problème pour les crowler pour l'indexation?
j'ai des fichiers log apache de taille >100MB par jour je sais pas se que je dois faire.

Citation :
[Sat Oct 19 07:08:28 2013] [error] [client 31.210.122.181] File does not exist: /var/www/muieblackcat
[Sat Oct 19 07:08:28 2013] [error] [client 31.210.122.181] File does not exist: /var/www/scripts
[Sat Oct 19 07:08:28 2013] [error] [client 31.210.122.181] File does not exist: /var/www/admin
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/admin
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/admin
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/db
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/dbadmin
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/myadmin
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/mysql
[Sat Oct 19 07:08:29 2013] [error] [client 31.210.122.181] File does not exist: /var/www/mysqladmin
[Sat Oct 19 07:08:30 2013] [error] [client 31.210.122.181] File does not exist: /var/www/typo3
[Sat Oct 19 07:08:30 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpadmin
[Sat Oct 19 07:08:30 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin
[Sat Oct 19 07:08:30 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpmyadmin/scripts
[Sat Oct 19 07:08:30 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpmyadmin1
[Sat Oct 19 07:08:31 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpmyadmin2
[Sat Oct 19 07:08:31 2013] [error] [client 31.210.122.181] File does not exist: /var/www/pma
[Sat Oct 19 07:08:31 2013] [error] [client 31.210.122.181] File does not exist: /var/www/web
[Sat Oct 19 07:08:31 2013] [error] [client 31.210.122.181] File does not exist: /var/www/xampp
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/web
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/php-my-admin
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/websql
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpmyadmin/scripts
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin
[Sat Oct 19 07:08:32 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin-2
[Sat Oct 19 07:08:33 2013] [error] [client 31.210.122.181] File does not exist: /var/www/php-my-admin
[Sat Oct 19 07:08:33 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin-2.5.5
[Sat Oct 19 07:08:33 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin-2.5.5-pl1
[Sat Oct 19 07:08:33 2013] [error] [client 31.210.122.181] File does not exist: /var/www/phpMyAdmin
[Sat Oct 19 07:08:34 2013] [error] [client 31.210.122.181] File does not exist: /var/www/mysqladmin
[Sat Oct 19 07:08:34 2013] [error] [client 192.99.3.156] File does not exist: /var/www/wp-login.php
[Sat Oct 19 19:09:00 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:01 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:03 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:04 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:12 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:13 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:21 2013] [error] [client 157.55.33.78] File does not exist: /var/www/robots.txt
[Sat Oct 19 19:09:22 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:22 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:35 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:36 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:49 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php
[Sat Oct 19 19:09:53 2013] [error] [client 60.12.194.130] File does not exist: /var/www/phpmyadmin/scripts, referer: /phpmyadmin/scripts/setup.php


Posté le : 31/10/2013 17:48
Partager Twitter Partagez cette article sur GG+
Re: Inscriptions d'utilisateurs indésirables
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
c'est sur le même principe, mais c'est une solution "propriétaire" que j'ai développé en C, car j'ai pas mal de serveurs (pour moi et mes clients) sur des réseaux et dans des data-centres différents donc "badrobot" n'était pas assez puissant.


Sinon pour ton problème de log, si tu as un serveur dédié pense a fail2ban / IPtable, très pratique, il peut agir sur tous les logs et tous les ports par des règles que tu fixe au départ (je l'utilise sur des serveurs que j'administre pour des clients)

Posté le : 31/10/2013 17:58
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 ... 8 9 10 (11) 12 13 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

51 Personne(s) en ligne (38 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 51 | Plus ...