Antiflood - PHP - Programmation
Marsh Posté le 21-03-2003 à 08:30:20
Je suis en train de faire un forum, et mon anti-flood est axé sur deux choses distinctes :
Le fait d'empêcher que le même message soit posté 2 fois dans un délais de 24 heures. Et également la vérification par rapport à l'IP du posteur : vérifier que la même IP ne poste pas plus d'un certain nombre de fois dans un temps déterminé. Il faut mettre les deux en //.
Le reste : cookie, etc... est facile à déjouer et inefficace. Même l'IP seule de suffit pas, il existe des logiciels multi-proxy qui peuvent faire zapper l'IP de quelqu'un toutes les minutes voire toutes les secondes.
Et même comme cela, ce n'est pas réellement suffisant. Il faut pouvoir empêcher le post d'anonyme en cas de problème, bloquer les inscriptions et bannir les gens inscrits qui flooderaient.
Marsh Posté le 21-03-2003 à 15:02:55
Oauis, c'est clair.
Dans mon cas, c'était simplement pour éviter que le premier lamer de troisième classe vienne foutre le bordel dans mon forum. Parce qu'avec un système de session pareil, l'utilisateur n'aurait qu'à changer de browser.
Mais, c'est pas mauvais comme idée "d'empêcher que le même message soit posté 2 fois dans un délais de 24 heures." Ça m'éviterait d'avoir a dealer avec les macros.
Marsh Posté le 21-03-2003 à 15:48:47
Cap'tain caca a écrit : |
Et le gars qui floude avec un message différent à chaque fois ?
Marsh Posté le 21-03-2003 à 15:54:21
Taiche a écrit : |
Bah, évidemment c'est combinné à quelque chose d'autre.
Et déjà là, ça barre tout ce qui est EZmacro et cie.
Marsh Posté le 21-03-2003 à 18:08:10
Taiche a écrit : |
C'est pour cela qu'il faut combiner avec l'IP, mais comme je le lui ai déjà dit, ya pas d'anti-flood fiables à 100% si le forum autorise les posts anonymes et ne nécessite pas d'identification.
Marsh Posté le 21-03-2003 à 03:18:27
Voilà, je me suis fait un petit système d'antiflood.

Tout d'abord je set la variable de session d'antiflood :
session_set_cookie_params(time()+60);
session_start();
$HTTP_SESSION_VARS['antiflood'] = "1";
Après je vérifie dans un autre fichier si la variable est enregistré comme ça :
session_start();
$antiflood = $HTTP_SESSION_VARS['antiflood'];
if (session_is_registered("antiflood" ))
{
die("bleh" );
}
Mais là le gros fif il unregister par la variable après 60 secondes d'où le problème. Alors l'antiflood reste toujours actif. J'ai pourtant regardé dans mon php.ini et tout, ça semble en règle.
Enfin, si c'est simplement pas la bonne façon de coder un antiflood, vous pouvez me dire grosso modo comment m'en tailler un autre ?
Merci