begin process at 2012 05 27 16:46:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > ANTI-FLOOD PAR WORDLIST ET QUESTION ALÉATOIRE

ANTI-FLOOD PAR WORDLIST ET QUESTION ALÉATOIRE


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Classé sous :antiflood, flood, antibots, robots, livredor Niveau :Initié Date de création :18/03/2007 Date de mise à jour :29/03/2007 20:34:06 Vu / téléchargé :4 877 / 294

Auteur : grobs

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


 Description

Bonjour à tous !
Je viens poster une source pour la première fois sur phpcs.

Mais parlons un peu de mon code... Comme le titre le dit, cette source en 4 fichiers est une suite de scripts permettant de sécuriser votre livre d'or (par exemple) en effectuant les opérations suivantes :

- (no_flood.php) Vérification du texte par une fonction qui compare les mots du texte à une liste de mots prédéfinis (dans flood_wordlist.txt) qui sont considérés comme du flood (rangés par ordre alphabétique et sous forme d'argument de regex).

- (poser_question_antiflood.php et verif_reponse_antiflood.php) Vérification de l'humanité de l'utilisateur par une question aléatoire.

- Vérification d'absence de mots comportant 4 consonnes à la suite ou plus.


 Conclusion

Tous les bugs anciennement connus sont résolus.

Je compte sur vous pour m'aider à l'améliore à fond :)

@++ Grobs

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 mars 2007 18:56:50 :
Comme précisé par notre ami coucou747, ce n'est pas un anti-spam mais un anti-flood.
19 mars 2007 20:06:59 :
Précision des bugs : voir la nouvelle "explication finale".
19 mars 2007 20:28:36 :
Correction du bug de variable de session qui était anormalement vide.
19 mars 2007 21:05:04 :
Ajout fonctionnalité : Vérification d'absence de mots comportant 4 consonnes à la suite ou plus. Changement de mode de fonctionnement : pour une question d'accessibilité, le changement des voyelles en langage cowboyz (ex : warez --> w4r3z) se fait maintenant dans la fonction no_flood() (anciennement dans le fichier flood_wordlist.txt).
19 mars 2007 21:08:23 :
Correction de la langue (fautes de frappes).
19 mars 2007 22:02:36 :
Correction de tous les bugs connus, la source est opérationnelle à 100% :)
20 mars 2007 18:54:45 :
Amélioration de code : la suite de if() else() pour définir les variables de question et de réponse ont été remplacés par des arrays.
20 mars 2007 20:25:03 :
Correction de bug : la regex des mots interdits contenait une liste inopérante.
22 mars 2007 22:33:16 :
Optimisation du code du fichier no_flood.php
29 mars 2007 18:36:46 :
Correction de bug : lorsque la réponse à la question de calcul mental devait être "0", le script l'interprétait comme nul et prenait donc la réponse pour fausse. J'ai donc fait en sorte que si deux chiffres étaient les mêmes, on recommence le random.
29 mars 2007 20:16:19 :
Optimisation : évite de faire des résultats négatifs lors de la question de calcul mental.
29 mars 2007 20:34:06 :
Mise à jour de la word-list.

 Sources de la même categorie

Source avec Zip Source avec une capture CAPTCHA AJAX ANTI-BOT par darkvador59
Source avec Zip Source avec une capture ACCÈS, ESPACE MEMBRE AVEC INSCRIPTION ET DÉSINSCRIPTION PAR ... par stephelle
Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
PROTÉGEZ VOS LIENS DE TÉLÉCHARGEMENT PAR MOT DE PASSE ET/OU ... par unlien

 Sources en rapport avec celle ci

DÉTECTER LES GENTILS ROBOTS POUR BANNIR LES MECHANTS ROBOTS par Anto1982
Source avec Zip LIVRE D'OR par nicomilville
Source avec Zip Source avec une capture CAPTCHA 3D ISO & LECTURE DE FONT CONSOLE par coucou747
FILTRE À GROS MOTS POUR LIVRE D'OR par armenak
Source avec Zip Source avec une capture IMAGE ANTI-SPAM par coockiesch

Commentaires et avis

Commentaire de psykocrash le 18/03/2007 17:58:41

Qu'est ce que tu passes comme valeur au paramètre $variable_de_session de la fonction verif_reponse_antispam() ?

Commentaire de grobs le 18/03/2007 18:02:13

Et bien justement la variable anormalement vide $_SESSION['reponse_antispam_livreor'].

Commentaire de psykocrash le 18/03/2007 18:19:31

T'as utilisé session_start() avant la vérification ?

Commentaire de grobs le 18/03/2007 18:31:47

oui.

Commentaire de coucou747 le 19/03/2007 00:00:29 administrateur CS

c'est un captcha, pas un anti spam... c'est un anti flood...


amelioration possible : pour les mots, tente de faire un reseau bayesien

Commentaire de grobs le 19/03/2007 18:59:28

C'est mis à jour :)

Un réseau bayésien ? Mais pour quoi faire ? En quoi les probas pourraient jouer dans mon code ?

PS : toujours personne pour mon problème ?

Commentaire de grobs le 19/03/2007 20:09:55

Je viens de trouver une précision au bug :

"Les deux bugs (certainement liés) résident dans le fichier de fonction poser_question_antiflood.php :

- La variable $reponse ne contient rien alors qu'elle devrait contenir la véritable réponse à donner.
- La variable $reponse_question_1 contient (par exemple) 7+3 au lieu du résultat (en l'occurrence, elle devrait retourner 10).

Si quelqu'un voit pourquoi, merci de m'en donner la raison."

Commentaire de grobs le 19/03/2007 20:25:21

héhé, bonne nouvelle, j'ai trouvé mon erreur. Aux lignes 61 à 69, j'avais mis $rand_choix_question au lieu de $choix_question[$rand_choix_question]. Suis-je balot !? ^^

J'avais également oublié de gérer le message de succès de l'opération si l'on était pas loggé.

Il ne reste donc plus que le bug de la variable $reponse_question_1.

Je met à jour le zip de suite.

Commentaire de ImmortalPC le 19/03/2007 21:39:02

Salut,
pour ton bug c' est tout con.
cf ligne 45 > Poser_question_antiflood.php :
$reponse_question_1 = $nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3;
Or php comprend que ce n' est que du texte !

Utilises la fonction eval :
$reponse_question_1 = eval($nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3);

@+

Commentaire de ImmortalPC le 19/03/2007 21:51:09

Re,
dsl j' ai mal copié collé :S
c' est plustôt ;

eval('$reponse_question_1 = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');

@+

Commentaire de grobs le 19/03/2007 22:00:37

C'est exactement la fonction dont j'avais besoin ! Merci beaucoup !!

Je met le zip à jour.

Sinon, des idées d'améliorations ?

Commentaire de kankrelune le 20/03/2007 14:05:53

Houwaw wouwaw houwaw... tu te prend sacrément la tête pour le choix de ta question...

$question_1 = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponse_question_1 = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$question_2 = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponse_question_2 = $choix_lettre_alphabet[$nombre_2];
$question_3 = 'Connaissez-vous le site Mangakage ?';
$reponse_question_3 = 'oui';
$question_4 = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponse_question_4 = $nombre_3.$nombre_1;
$question_5 = 'Etes-vous loggé à un compte Mangakage ?';
if(isset($_SESSION['login']))
$reponse_question_5 = 'oui';
else
$reponse_question_5 = 'non';

//On choisit aléatoirement une question
$choix_question = array($question_1, $question_2, $question_3, $question_4, $question_5);
$rand_choix_question = array_rand($choix_question);
if($choix_question[$rand_choix_question] == $question_1)
{$reponse = $reponse_question_1;}
elseif($choix_question[$rand_choix_question] == $question_2)
{$reponse = $reponse_question_2;}
elseif($choix_question[$rand_choix_question] == $question_3)
{$reponse = $reponse_question_3;}
elseif($choix_question[$rand_choix_question] == $question_4)
{$reponse = $reponse_question_4;}
elseif($choix_question[$rand_choix_question] == $question_5)
{$reponse = $reponse_question_5;}

//On initialise la variable de session qui contiendra la réponse lors de la vérification
$_SESSION['reponse_antiflood_livreor'] = $reponse;

return 'Question anti-flood : '.$choix_question[$rand_choix_question];


============>

$questions = array();
$reponses = array();

$questions[] = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponses[] = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$questions[] = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponses[] = $choix_lettre_alphabet[$nombre_2];
$questions[] = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponses[] = $nombre_3.$nombre_1;

//On choisit aléatoirement une question
$choix_question = array_rand($questions);

//On initialise la variable de session qui contiendra la réponse lors de la vérification
if(!isset($_SESSION))
session_start();

$_SESSION['reponse_antiflood_livreor'] = $reponses[$choix_question];

return 'Question anti-flood : '.$questions[$choix_question];

C'est quand même plus simple et plus propre...

Je n'ai pas regardé le reste du code je ne noterais donc pas... l'idée bien qu'elle ne soit pas nouvelle reste une bonne alternative au captcha visuels... .. .

@ tchaOo°

ps : j'ai viré deux question inutiles pour quelqu'un qui utilisera(it) cette source vu qu'elles ne concerne que ton site (êtes vous logué...)... .. .

Commentaire de grobs le 20/03/2007 18:35:31

Merci bien. Effectivement c'est bien plus simple. Mon point faible a toujours été l'utilisation des arrays. Il a falloir que je m'y mette =)

Par contre, pour les questions que tu as enlevés, je les laisse dans le zip car si les gens ont un espace membre, il leur suffira de modifier la variable de session et le nom du site. Ce que je peux faire c'est les mettre en commentaire.

Encore merci. D'autres avis ?

Commentaire de grobs le 20/03/2007 19:26:06

Aïe... Depuis, le script ne vois plus les tentatives de flood...

Commentaire de grobs le 20/03/2007 19:34:53

Rectification, l'ancien système ne fonctionnait plus non plus. Je pense que ça vient des regex de remplacement des lettres en langage c0wb0yz.

Commentaire de grobs le 20/03/2007 19:52:13

Aïe aïe aïe, le problème ne vient pas de là, j'ai testé sans cette vérif... Mais d'où vient le bug ? oO

Commentaire de grobs le 20/03/2007 20:22:23

Haha, j'ai trouvé. Vu que le fichier flood_wordlist.txt contenait un mot par ligne, l'implode générait non pas mot1|mot2|mot3 etc mais mot1<br />|mot2<br />|mot3<br /> :)

All bugs are killed !

Commentaire de grobs le 22/03/2007 22:32:17

J'ai changé tout ça, le code devient :

// On récupère le contenu du fichier
$flood_wordlist = implode('|', array_map('trim', file('http://www.mangakage.com/Includes/Fonctions/flood_wordlist.txt')));

Zip mis à jour :)

Commentaire de grobs le 29/03/2007 20:17:26

Toujours pas de note ? Bououuouuuhhh ^^

Commentaire de Alexandrex3 le 15/06/2008 00:08:52 10/10

Super !!!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ignorer les ip's de robots indexeurs [ par pyranhaz ] Bonjour,J'aimerais savoir si ce bout de code pourrait indiquer de ne pas bannir le robot si son ip existe dans la bddc'est important pour le référence Salut à tous ! [ par Houzefa ] Ouf j'ai enfin trouvé un moyen de poster dans ce nouveau forum ! ... au fait félicitations à Nix car l'interprétation des crochets dans les codes ne p Pb relation entre deux tables ! [ par milkasoprano ] Bonjour tous le monde, apres 2 heures de recherches je narrive pas a mettre en relation "deux tables" pour afficher un while avec les donn&#233;s ! c Problème d'indexation [ par LaurentKOogar ] Bonjour,GG index depuis 1 semaine la page de voteLa syntaxe du fichier robots.txt est-elle correcte ?Merci d'avance# robots.txt pour le site http://ww parser le fichier robots.txt [ par anirbas ] Safia salut a tous, je voudrais creer un moteur de recherche en php et pour cela je dois faire en sorte k'il accede au fichier robots.txt s'il exist Anti-flood [ par administrateurlinux ] Bonjour,J'aimerais m&#232;tre un anti-flood sur un formulaire, voici le code&lt;table &gt;&nbsp; &lt;tbody&gt;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&nbsp;&nbsp cacher une adresse e-mail aux robots [ par boakim ] Pour masquer une adresse e-mail au regard fureteur des robots, est-ce que ceci peut marcher ?  Ou bien ça n'offre aucune protection ?&lt;?php$adresse Livre d'or : Empecher le spam des robots [ par fdiedler2000 ] Bonjour,J'ai créer un script en PHP pour mon livre d'or. Le probleme est qu'il est pollué par des robots.Comment créer une image avec des chiffres qu' Langue des robots (crawlers) [ par aloisio11 ] Bonjour à tous, J'ai un site multi-langues : Français et Anglais La langue est stockée dans une variable session. A l'ouverture de mon site je test si Comment mettre un robots.txt à la racine de son site [ par cabanac ] Bonjour à tous,Je ne sais pas si c'est la bonne place pour effectuer ma demande, mais j'ai un petit soucis.Je ne connais pas grand chose à l'informati


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales