Changeset 90353 in spip-zone


Ignore:
Timestamp:
Jun 19, 2015, 10:45:35 AM (5 years ago)
Author:
cedric@…
Message:

Report de r90352 : Detection des flooders : quand un utilisateur comptabilise plus de 200 visites d'articles dans une visite,
on note son IP dans le dossier tmp/flood/
Au bout de 24H (redefinissable via la constante _IP_FLOOD_TTL) on la supprime de tmp/flood/
Ces IP reperees peuvent ensuite etre considerees comme des BOT ou meme kickee temporairement, au choix, action a ajouter dans le mes_options.php par exemple

Location:
_core_/branches/spip-3.0/plugins/statistiques
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _core_/branches/spip-3.0/plugins/statistiques

  • _core_/branches/spip-3.0/plugins/statistiques/genie/visites.php

    r88961 r90353  
    208208}
    209209
    210 //
    211 // Calcule les stats en plusieurs etapes
    212 //
    213 // http://code.spip.net/@genie_visites_dist
     210/**
     211 * Nettoyer les IPs des flooders 24H apres leur dernier passage
     212 */
     213function visites_nettoyer_flood(){
     214        if (is_dir($dir=_DIR_TMP.'flood/')){
     215                include_spip('inc/invalideur');
     216                if (!defined('_IP_FLOOD_TTL')) define('_IP_FLOOD_TTL',24*3600); // 24H par defaut
     217                $options = array(
     218                        'mtime' => $_SERVER['REQUEST_TIME'] - _IP_FLOOD_TTL,
     219                );
     220                purger_repertoire($dir,$options);
     221        }
     222}
     223
     224
     225/**
     226 * Cron de calcul de statistiques des visites
     227 *
     228 * Calcule les stats en plusieurs étapes
     229 * @uses calculer_visites()
     230 *
     231 * @param int $t
     232 *     Timestamp de la dernière exécution de cette tâche
     233 * @return int
     234 *     Positif si la tâche a été terminée, négatif pour réexécuter cette tâche
     235**/
    214236function genie_visites_dist($t) {
    215237        $encore = calculer_visites($t);
     
    220242                return (0 - $t);
    221243
     244        // nettoyer les IP des floodeurs quand on a fini de compter les stats
     245        visites_nettoyer_flood();
     246
    222247        return 1;
    223248}
  • _core_/branches/spip-3.0/plugins/statistiques/paquet.xml

    r87721 r90353  
    22        prefix="stats"
    33        categorie="statistique"
    4         version="0.4.27"
     4        version="0.4.28"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
  • _core_/branches/spip-3.0/plugins/statistiques/public/stats.php

    r88961 r90353  
    8888                ecrire_fichier($fichier, serialize($content));
    8989        }
     90        else {
     91                $flood = sous_repertoire(_DIR_TMP, 'flood') . $GLOBALS['ip'];
     92                @touch($flood);
     93        }
    9094}
    9195
Note: See TracChangeset for help on using the changeset viewer.