Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    Combattere lo Spam con il CAPCHA

    Buon giorno a tutti, sono arcistufo di trovare quegli odiosi messaggi su guestbook e news!!
    Ho visto che si può ovviare inserendo questo CAPCHA.
    ho visto un tutorial dove aime utilizza un database, per la gestione del CAPCHA,
    purtroppo non lo posso utilizzare perchè non ho database e per memorizzare i messaggi del guestbook utilizzo banalissimi txt.

    La mia domanda è come ovviare a questo problema dello spam senza l'utilizzo di un DB?

    PS: volevo aggiungere che l'hosting del sito è appoggiato su windows.
    grazie mille

  2. #2
    Qui
    Trovi un captcha senza db e senza txt ricorda che utilizza le sessioni per memorizzare il codice di sicurezza poi quando fai invia modulo prima di salvare i dati nella guest fai un controllo se il codice mandato via post è uguale a quello salvato in sessione


  3. #3

    Re: Combattere lo Spam con il CAPCHA

    Originariamente inviato da ANTAGONIA
    La mia domanda è come ovviare a questo problema dello spam senza l'utilizzo di un DB?
    3 anni fa ho integrato in una vecchia versione di phpBB KCaptcha e ho abbattuto del 99% i messaggi di spam.

    Puoi utilizzare le sessioni oppure un campo hidden per passare un hash del valore di verifica. In questo modo non ti devi appoggiare a database o file.

  4. #4

    Re: Re: Combattere lo Spam con il CAPCHA

    Originariamente inviato da filippo.toso
    3 anni fa ho integrato in una vecchia versione di phpBB KCaptcha e ho abbattuto del 99% i messaggi di spam.

    Puoi utilizzare le sessioni oppure un campo hidden per passare un hash del valore di verifica. In questo modo non ti devi appoggiare a database o file.
    l'hash in un campo hidden non te lo consiglio perché renderebbe possibile trovare cosa viene usato per generare l'hash

    In ogni caso ti sconsiglio di usare direttamente un hash come md5 o sha1, usa almeno un HKEY-MD5 o HKEY-SHA1 che prevedono l'utilizzo di una chiave aggiuntiva, chiamata SALT, per generare l'hash

  5. #5

    Re: Re: Re: Combattere lo Spam con il CAPCHA

    Originariamente inviato da daniele_dll
    l'hash in un campo hidden non te lo consiglio perché renderebbe possibile trovare cosa viene usato per generare l'hash
    Per quello basta fare md5($captcha . $secret), in questo modo è altamente improbabile che uno spammer riesca a bypassare il captcha utilizzando un DB di hash. Ovviamente non si tratta di un sistema ad elevata sicurezza, ma alla fin dei conti si tratta di ridurre lo spam, non di proteggere una web application finaziaria, etc.

  6. #6
    Cmq guarda questi captcha funzionano con le gd2 la libreria di php vedi se è istallata sul tuo sito/hosting

  7. #7

    Re: Re: Re: Re: Combattere lo Spam con il CAPCHA

    Originariamente inviato da filippo.toso
    Per quello basta fare md5($captcha . $secret), in questo modo è altamente improbabile che uno spammer riesca a bypassare il captcha utilizzando un DB di hash. Ovviamente non si tratta di un sistema ad elevata sicurezza, ma alla fin dei conti si tratta di ridurre lo spam, non di proteggere una web application finaziaria, etc.
    trovare delle chiavi che collidono con un dato hash md5 (e se non erro anche sha1) è diventata cosa abbastanza semplice

    Nel 2005, alla conferenza EuroCrypt, due ricercatori hanno mostrato com'è possibile trovare chiavi che collidono con l'hash in tempi estremamente ridotti

    http://www.brics.dk/eurocrypt05/acceptedpapers.html

    How to Break MD5 and Other Hash Functions
    Xiaoyun Wang and Hongbo Yu
    (Shandong University)
    Qui c'è un link dove se ne parla
    http://www.financialcryptography.com...es/000394.html

    A quest'indirizzo c'è il PDF con le spiegazioni
    http://web.archive.org/web/200706042...md5-attack.pdf

    Inoltre, come sistema alternativo, giusto per essere più precisi, usando le rainbow table, ovvero pregenerando tutte le varie combinazioni, su una macchina più o meno potente, sempre che non se ne scarichi una già pronta dal web, è possibile craccare l'hash in meno di un ora usando un software che sfrutti le rainbow table per fare il cracking.

    Se poi qualcuno trova sul web un implementazione delle specifiche che ho linkato prima ci vorrà molto meno tempo ^^

    motivo per il quale, ripeto, un HKEY-MD5, anche se non da la sicurezza assoluta, mette più "rogne"

  8. #8

    Re: Re: Re: Re: Re: Combattere lo Spam con il CAPCHA

    Originariamente inviato da daniele_dll
    trovare delle chiavi che collidono con un dato hash md5 (e se non erro anche sha1) è diventata cosa abbastanza semplice

    Nel 2005, alla conferenza EuroCrypt, due ricercatori hanno mostrato com'è possibile trovare chiavi che collidono con l'hash in tempi estremamente ridotti
    Si, certo, puoi trovare una chiave che collide con l'MD5 indicato nella form, MA se non conosci il valore di $secret, NON potrai utilizzarla per passare il controllo. Per pace di tutti, ecco il codice che dimostra la teoria:

    Codice PHP:
    <?php 
    $secret   
    '123'// password segreta, stile [url]http://api.wordpress.org/secret-key/1.0/[/url]
    $captcha  'pippo'// stringa visualizzata nel captcha

    $md5 md5($captcha $secret); // stringa inserita nel campo hidden della form
    echo($md5); // f7b2993185f755d2212840328001bb2f
    ?>
    Ammesso di trovare una stringa il cui MD5 collide con f7b2993185f755d2212840328001bb2f (il valore passato nella form), se lo utilizzi nel codice di verifica, non funzionerà:

    Codice PHP:
    <pre>
    <?php 
    $secret   
    '123'
    $md5 'f7b2993185f755d2212840328001bb2f'// valore proveniente dal campo hidden della form
    $input 'pippo123'// valore il cui MD5 collide con f7b2993185f755d2212840328001bb2f

    $check_md5 md5($input $secret);

    if (
    $md5 == $check_md5) {
        echo(
    "OK");
    } else {
        echo(
    "KO");
    }

    echo(
    "\r\n");

    $secret   '123'
    $md5 'f7b2993185f755d2212840328001bb2f'// valore proveniente dal campo hidden della form
    $input 'pippo'// valore originale del capctha

    $check_md5 md5($input $secret);

    if (
    $md5 == $check_md5) {
        echo(
    "OK");
    } else {
        echo(
    "KO");
    }
    ?>
    </pre>

  9. #9
    ehm, se tu trovi una serie di chiavi che collidono, guardandole, personalmente, appena noterei che una delle chiavi contiene il captcha mi renderei da conto subito quale sarebbe il salt

    verificata quest'ipotesi con qualche chiave, una volta che so che all'inizio ci sta il captcha e che la secret è pippo rigenero l'hash aggiungendo SOLAMENTE pippo alla fine dei miei captcha finti

    ergo, se:
    f7b2993185f755d2212840328001bb2f

    è composto da
    pippo123

    E' perfettamente normale che l'hash di pippo123123 sia diverso da pippo123, ma pippo è il captcha che vedi a video quindi, una volta visto che il captcha è pippo, ed appurato questo controllo con un altro paio di captcha o direttamente con un test, tutti gli hash che passo alla pagina php li genero inserendo 123 alla fine e mi sono risolto il problema perché il codice che fa il controllo riceve la stringa del captcha che passo, appende 123 e poi effettua un confronto tra l'hash ricevuto dal browser, che è pure manomesso, e l'hash che a generato lui con il captcha passato

    Certo è che se uno trova la chiave usata per generare pippo123 e non si accorge da solo che contiene il captcha è tonto o è un ragazzino che non sa come passare il proprio tempo ... ma per quello non c'è che fare

    ---

    tutto ciò non vuol dire che l'md5 non serva, però usarlo cosi è più pericoloso ... come dicevo l'HMAC-MD5, che si può implementare con poche righe di codice, da già un livello di sicurezza in più

    Qui c'è del PSEUDO CODE
    codice:
    function hmac (key, message)
        opad = [0x5c * blocksize] // Where blocksize is that of the underlying hash function
        ipad = [0x36 * blocksize]
    
        if (length(key) > blocksize) then
            key = hash(key) // keys longer than blocksize are shortened
        end if
    
        for i from 0 to length(key) - 1 step 1
            ipad[i] = ipad[i] XOR key[i]
            opad[i] = opad[i] XOR key[i]
        end for
    
        return hash(opad || hash(ipad || message)) // Where || is concatenation
    end function
    preso direttamente da wikipedia
    http://en.wikipedia.org/wiki/HMAC

    come vedete con questo giochino si complica un pò di più la vita a chi vuol far danni ... non è la panacea di tutti i mali ma minimo raddoppia i tempi per trovare le collisioni dell'hash di base.

    In alternativa l'HMAC-SHA1 da un minimo di sicurezza in più derivata dal fatto che ci vuole più tempo a trovare le collisioni con lo SHA-1

    O, ancora meglio, chi usa PHP5 può utilizzare
    http://www.php.net/manual/en/function.hash.php
    http://www.php.net/manual/en/function.hash-algos.php

    Che supporta un sacco di algorittimi di hashing

    L'algorittimo di hashing
    Whirlpool

    è tra i più sicuri
    http://en.wikipedia.org/wiki/Whirlpool_(cryptography)

  10. #10
    ragazzi vi ringrazio molto gentili.
    Però ho un'altro problemino...in pratica ho scaricato da qui http://rodomontano.altervista.org/captcha.php tutto l'occorrente...ma purtroppo quando inserisco il Captcha generato, mi restituisce sempre come "condice errato".
    Invece il codice digitato è esatto...

    Voi sapete se c'era qualche bug?Ed è stato risotto(si alla pescatora )?

    grazie ancora....

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 © 2025 vBulletin Solutions, Inc. All rights reserved.