Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql] query per raggruppare record in intervalli temporali

    Ciao

    ho una tabella che mi registra tutte le operazioni fatte su una mia applicazione web.

    Vorrei fare degli script di intrusion detection, per identificare determinati tentativi di accesso non autorizzato.

    Ad esempio, la mia tabella è fatta cosi:
    data|ip|session_id|modulo|operazione

    e un ipotetico record

    ---- | x.x.x.x | d"£RWErwerWErwe | utenti | login

    per identificare un attacco bruteforce, potrei fare una query che raggruppa i record con modulo=utenti e operazione=login per minuto, e mostrarmi i raggruppamenti maggiori di 20 (ad esempio)

    Il problema è questa tabella contiene diverse centinaia di migliaia di record, (anzi, siamo quasi al milione) e quindi dovrei evitare query ricorsive...altrimenti ammazzo mysql.

    Voi cosa mi consigliate?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    ho fatto questa query:

    codice:
     SELECT `ip` , count( id ) AS tentativi, DATE_FORMAT(
    DATA , '%Y-%m-%d %H:%i' ) AS periodo
    FROM segnalazioni
    WHERE modulo = 'utenti'
    AND operazione_POST = 'login'
    AND tentativi >10
    GROUP BY periodo
    LIMIT 0 , 30
    ma mi dice che tentativi non esiste...
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  3. #3
    e te credo che non esiste.

    I nomi di campo sono risolti dopo le condizioni espresse in where e quindi al momento di risolvere il where questi alias non esistono ancora.

    metti la condizione in HAVING


    codice:
    ....
    
    WHERE modulo = 'utenti'
    AND operazione_POST = 'login'
    GROUP BY periodo
    HAVING tentativi >10

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    immaginavo fosse una cosa simile... non ero a conoscenza dell'HAVING!

    grazie! ;-)
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.