Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [PHP/MYSQL] antispam tramite domanda risposta

    ciao a tutti
    apprendendo che il captcha classico, cioè quello con l'immagine di numeri e lettere, viene bucato abbastanza spesso e leggendo su internet varie soluzioni, una di queste soluzioni era quella di proporre all'utente umano una domanda da prelevare ad esempio da una tabella del db a cui lui stesso doveva rispondere per far validare il commento..

    bene
    io ho fatto questa tabella con campi domanda e risposta relativa....
    faccio comparire con semplice query la domanda mentre la risposta della stessa query la passo in sessione per quandoo poi dovrà fare il controllo se è giusta o sbagliata.

    credo che questo sia il procedimento...premesso che ora ho solo una ventina di domande nella tabella, questo sistema non è proprio sicuro, viene bucato abbastanza spesso....

    ho sbagliato io qualcosa nell'impostazione?

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Credo sia difficile che venga bucato, specie se le domande non sono in lingua inglese.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ciao ranma
    allora pensi che siano umani che mettono lo spam?

    sinceramente dubito....
    non è che hanno qualche programmino ad hoc per far scorrere le parole del vocabolario italiano e prima o poi ci azzeccano?

    le domande sono del tipo
    di che colore è il cavallo bianco di napoleone
    quanto fa uno più due(in lettere)
    di inverno è soffice e bianca e si deposita sui tetti

    in pratica faccio query
    prelevo la domanda e la risposta la metto in sessione...nel momento in cui l'utente preme invia si fa il controllo....

    prima c'era uno che era fissato con i passaporti falsi e da quando ho cambiato metodo antispam non si è più visto ora si è passati ad argomenti piccanti...
    diversi nick e mail ma stesso modello di messaggio..credo sia sempre lo stesso bot con profili diversi

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Ti posto le domande che utilizzo in un forum che riceveva 50-60 iscrizioni giornaliere da parte di bot

    Di che colore è il cavallo bianco di Napoleone?
    Quel'è la capitale d'Italia?
    Quante dita si hanno per ogni mano? (scrivi la risposta in lettere)
    Quante ruote ha una moto? (scrivi la risposta in lettere)
    Quanti colori ha la bandiera italiana? (scrivi la risposta in lettere)

    Non ho più nessun bot registrato da novembre, quando ho attuato il sistema a domande.

    Fare un brute force con il dizionario è troppo elaborato, se riescono ad iscriversi sono persone fisiche, oppure passi in qualche modo la risposta in chiaro.

    Oltretutto, considera che bucare un captcha o un sistema anti-bot non è automatico, di solito vengono presi di mira quelli dei cms come joomla o drupal perché più presenti nel web. Ma per bucare un captcha prorpietario occorre creare uno script ad hoc per il tuo sito.

    Solo il fatto di leggere la risposta, riconoscerla, e sapere dove incollare la domanda, implica che qualcuno si è studiato il tuo sito web appositamente. Ma dubito

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ma tu hai fatto come me? cioè passi la risposta in sessione per poi controllarla?

    attualmente ho il sistema nome mail commento stile wordpress diciamo..non è un blog in wordpress il mio....però ora sto pensando di fare un sistema con registrazione utente..mi sembra più filtrato

  6. #6
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    No, metto un campo hidden con la risposta corretta ma codificata in md5 più un salt casuale (esempio: md5("sdafsdf".$risposta) e poi la confronto con quello che mi passa l'utente.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    in termini di codice

    nella pagina del form
    faccio query
    mostro domanda a video
    e inserisco risposta nel campo hidden
    Codice PHP:
    $codesecuremysql_query("SELECT * FROM domanda ORDER BY rand() LIMIT 1");
                    if(
    $securemysql_fetch_array($codesecure)){
                    
    $domanda_secure$secure['domanda'];
                    
    $risposta_secure$secure['risposta'];
                    
    $form_present .= "

    <label for=\"lab_captcha\">Rispondi alla domanda di sicurezza:[b]
    $domanda_secure[/b]</label></p>


    <input class=\"textcaptcha\" id=\"lab_captcha\" type=\"text\" name=\"codiceverifica\" size=\"25\"> "
    .error($codiceverifica).$error_code."</p>";

    $risposta_securemd5("sdafsdf".$risposta_sicure)
    $form_present "<input type=\"hidden\" name=\"risp\" value=\"$risposta_secure\">;
                    } 
    dove faccio il controllo
    Codice PHP:
    $codiceverificastrtolower($_POST['codiceverifica']);//converto tutto in minuscolo perchè md5 è case sensitive
    $codiceverificamd5("sdafsdf".$codiceverifica);
    $controllo$_POST['risp'];
    if(
    $codiceverifica == $controllo){


  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    penso che ci sia da considerare che un utente a una domanda del tipo:
    quanti colori ha la bandiera italiana possa rispondere "sono tre" o no?

  9. #9
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Originariamente inviato da amphioxus
    penso che ci sia da considerare che un utente a una domanda del tipo:
    quanti colori ha la bandiera italiana possa rispondere "sono tre" o no?
    devono essere domande mirate, se hai paura che l'utente scriva boiate specifica bene cosa vuoi come risposta.
    Es.

    quanti colori ha la bandiera italiana (risposta in lettere, 3 caratteri)

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.