• User Newbie

    Guestbook in php con Anti-Spam

    Salve a tutti,
    nel mio sito ho inserito un guestbook che viene di continuo riempito a mai finire di fastidiopsissimi messaggi spam chilometrici.

    Vorrei inserire quelle immagini col codice da inserire, come posso fare?
    Grazie


  • User Attivo

    ciao,

    stai parlando dei captcha. ci dovrebbe essere una libreria ad hoc per php. una breve guida la trovi [url=http://forum.html.it/forum/showthread.php?threadid=807514]qui


  • User

    Salve a tutti, io sono riuscito a risolvere il problema molto semplicemente, ma prima cerchiamo di capire perchè ci sono questi spam.
    Dunque sono riuscito a capire, che queste persone che inviano questi messaggi di spam, usano dei programmi che ricercano sui motori di ricerca il form per inviare i messaggi, sia sul guestbook che sui form per i contatti, siccome gestisco più di un sito ho fatto delle prove negli utlimi mesi e udite udite, non ho più messaggi di spam sui miei guestbook. Torniamo all'esempio precedente:

    1. Dunque noi installiamo un guestbook sul sito, ovviamente noi lo inseriamo in una cartella che solitamente chiamiamo guestbook.........sbagliato!!! Mai usare questo termine, infatti se cercate su qualsiasi motore di ricerca la parola guestbook ne escono a centinaia, e chi fa questo di mestire alla fine vi trova anche il form di invio dei messaggi, lo memorizza nel suo programma di invio messaggi ed il vostro bel guestbook inizia a ricevere spam.
    2. Il form di invio messaggi non deve essere raggiungibile attraverso un link in html ma con un bottone in javascript, questo per il semplice motivo che i motori di ricerca non devono assolutamente indicizzare la pagina di invio dei messaggi, questa è una sicurezza superiore alle pagine create per antispam.
    3. Nel tag <title> della pagina di invio messaggi non mettete mai una parola che ricorda il guestbook ma mettete una qualsiasi altra parola, come nel resto dei file.
    4. A questo punto mettete il vostro guestbook in rete, state tranquilli che i messaggi di spam scompariranno e non ne riceverete più.
    5. Se ne trovate qualcuno è perchè avete detto ai vostri amici che il vostro guestbook non riceve più gli spam gli avete indicato l'indirizzo esatto del guestbook e vi hanno fatto un terribile scherzo.
      Provare per credere, a volte le soluzioni più semplici sono le migliori.
      Fatemi sapere.
      Buona giornata.

  • User

    Ciao e scusate se riprendo questo topic abbastanza vecchio ma veramente mi interessava l'argomento.
    Secondo voi al posto del javascript per il link, se si una un tasto in flash il risultato può essere lo stesso o la pagina per scrivere il messaggio può essere "intercettata" dai motori di ricerca!
    Grazie a tutti per la risposta!


  • User Attivo

    Prova con questo:

    <?php
    // MI RICAVO UN CODICE ALFANUMERICO CASUALE COMPOSTO DA 6 CARATTERI minuscoli e/o MAIUSCOLI
    $str = '';
    for ($i=1; $i<=6; $i++)
    {
    $set = array(rand (65,90),rand(97,122),rand(48,57));
    $str .= chr($set[rand(0,2)]);
    }
    echo $str;
    ?>

    poi mettere un campo nel form per confermare il codice e all'invio confrontarlo.


  • User

    @mikslap said:

    Prova con questo:

    <?php
    // MI RICAVO UN CODICE ALFANUMERICO CASUALE COMPOSTO DA 6 CARATTERI minuscoli e/o MAIUSCOLI
    $str = '';
    for ($i=1; $i<=6; $i++)
    {
    $set = array(rand (65,90),rand(97,122),rand(48,57));
    $str .= chr($set[rand(0,2)]);
    }
    echo $str;
    ?>

    poi mettere un campo nel form per confermare il codice e all'invio confrontarlo.

    Ti ringrazio per il consiglio...era proprio quello che cercavo...un codice di verifica.
    Unico problema è che non so mettere mani al php...Un guest da istallare sì...ma fare modifiche non sono pratico.
    Mi potresti aiutare in qualche modo se ti facessi vedere il sorgente del mio guest?


  • User Attivo

    Postami il codice e provo a vedere


  • User

    @mikslap said:

    Postami il codice e provo a vedere

    questa è la index 1100.php

    <?
    include("config.php");
    $file=fopen($firme,"r") or die("<br><br>Errore in lettura del database");
    $totMex=count(file($firme));
    $totPag=ceil($totMex/$risul_pagina);
    if (!(isset($_GET['qpag']))){
    $qpag=1;
    }else{
    $qpag=$_GET['qpag'];
    }
    $qpag=$qpag;
    $i=0;
    $k=0;
    $z=0;

    if (isset($qpag) AND $qpag > 0){
    if ($qpag > $totPag) {
    $qpag = $totPag;
    } else {
    $iniz=$qpag*$risul_pagina - $risul_pagina;
    }
    } else {
    $qpag = 1;
    $iniz = 0;
    }
    $pagina_pre = $qpag - 1;
    $pagina_seg = $qpag + 1;
    if ($pagina_pre < 1) {
    $pagina_pre = 1;
    }
    if ($pagina_seg > $totPag){
    $pagina_seg = $totPag;
    }
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <style>
    .Guest {
    font-family:Verdana;
    font-size:x-small;
    }
    a:link {
    text-decoration: none;
    color: <? echo $colorFi?>;
    }
    a:visited {
    text-decoration: none;
    color: <? echo $colorFi?>;
    }
    a:hover {
    text-decoration: none;
    color: <? echo $colorFi?>;
    }
    a:active {
    text-decoration: none;
    color: <? echo $colorFi?>;
    }
    .TesTit {
    font-family:<? echo $fontfamilyT?>;
    font-size: <? echo $fontsizeT?>;
    <? echo $fontweightT?>;
    color:<? echo $colorT?>;
    }
    .TesPeF {
    font-family:<? echo $fontfamilyPeF?>;
    font-size: <? echo $fontsizePEF?>;
    <? echo $fontweightPEF?>
    color:<? echo $colorPEF?>;
    }
    .ModFirm {
    font-family:<? echo $fontfamilyF?>;
    font-size: <? echo $fontsizeF?>;
    <? echo $fontweightF?>
    color:<? echo $colorF?>;
    }
    .Firme {
    font-family:<? echo $fontfamilyFi?>;
    font-size: <? echo $fontsizeFi?>;
    color:<? echo $colorFi?>;
    }
    .Stile1 {font-size: x-small}
    </style>
    <title>Millecento Blues Mobile</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
    }
    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d)&&d.all) x=d.all; for (i=0;!x&&i<d.forms.length;i++) x=d.forms*;
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers*.document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function MM_validateForm() { //v4.0
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args*);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf([EMAIL="'@'"]'@'[/EMAIL]);
    if (p<1 || p==(val.length-1)) errors+='- Indirizzo E-mail non valido.\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' è obbligatorio.\n'; }
    } if (errors) alert(''+errors);
    document.MM_returnValue = (errors == '');
    }
    //-->
    </script>
    </head>
    <script language="javascript">
    function controlla() {
    document.onkeypress = keyhandler;
    }
    function keyhandler(e) {
    if (document.layers){
    Key = e.which;
    }else{
    Key = window.event.keyCode;
    } if(Key==124){
    window.event.keyCode="";
    //alert(Key);
    }
    }
    function controllaNo() {
    document.onkeypress = keyhandlerq;
    }
    function keyhandlerq(e) {
    if (document.layers){
    Key = e.which;
    }else{
    Key = window.event.keyCode;
    } if(Key==124){
    window.event.keyCode="";
    //alert(Key);
    }
    }
    </script>
    <body bgcolor="<? echo $sfondo_pag?>">
    <table width="<? echo $largTabella?>" border="0" align="center">
    <tr>
    <td width="668" height="88" valign="top" bgcolor="<? echo $sfondoTabT?>"><table width="0" border="0">
    <tr>
    <td width="603"><div align="center" class="TesTit"><? echo $titolo_guest?></div></td>
    </tr>
    <tr>
    <td height="65" valign="middle"><div align="center" class="TesPeF">Tot Messaggi: <strong><? echo $totMex; ?> </strong> - Tot Pagine: <strong><? echo $totPag;?></strong></div></td>
    </tr>
    </table></td>
    </tr>
    <tr bgcolor="<? echo $sfondoTabF?>">
    <td class="ModFirm"> <form action="scrivi.php" method="post" name="form1" onSubmit="MM_validateForm('Nome','','R','Citta','','R','Email','','NisEmail','Mex','','R');return document.MM_returnValue">
    <table width="0" border="0" align="center">
    <tr>
    <td>*Nome:</td>
    <td>
    <input name="Nome" type="text" onFocus="controllaNo()" size="20" style="font-size: 10px; font-family:Verdana"></td>
    <td>*Città:</td>
    <td>
    <input name="Citta" type="text" id="Citta" onFocus="controllaNo()" size="20" style="font-size: 10px; font-family:Verdana"></td>
    <td>Nazione:</td>
    <td>
    <input name="Nazione" type="text" id="Nazione" onFocus="controllaNo()" size="20" style="font-size: 10px; font-family:Verdana"></td>
    <td> </td>
    </tr>
    <tr>
    <td>WebSite:</td>
    <td>
    <input name="Website" type="text" id="Website" onFocus="controllaNo()" size="20" style="font-size: 10px; font-family:Verdana"></td>
    <td>E-mail:</td>
    <td>
    <input name="Email" type="text" id="Email" onFocus="controllaNo()" size="20" style="font-size: 10px; font-family:Verdana"></td>
    <td>*Messaggio:</td>
    <td> <textarea name="Mex" cols="20" id="Mex" style="font-size: 10px; font-family:Verdana" onFocus="controlla()"></textarea> </td>
    <td> <br> </td>
    </tr>
    </table>
    <div align="center">
    <input type="submit" value="Firma" name="invia" style="font-size: 10px; font-family:Verdana">
    <input name="invia2" type="button" style="font-size: 10px; font-family:Verdana" onClick="MM_openBrWindow('smiles.php','','scrollbars=yes,width=200,height=220')" value="Smiles">
    </div>
    </form></td>
    </tr>
    <tr>
    <td> </td>
    </tr><? if ($totMex != 0) {?>
    <tr>
    <td><?
    while(!feof($file)) {
    $riga=fgets($file,10000);
    $arraF[$k]=$riga;
    $k=$k+1;
    }
    $omexpag=array_reverse($arraF);
    $omexpag=array_slice($omexpag,$iniz,$risul_pagina);
    $k=0;
    while ($k < count($omexpag)) {
    $cont=explode("|",$omexpag[$k]);
    while ($i < 7) {
    $ID=$cont[0];
    $Nome=$cont[1];
    $Citta=$cont[2];
    $Nazione=$cont[3];
    $Web=$cont[4];
    $Mail=$cont[5];
    $Mex=ereg_replace(" ::: ","<img border='0' src='smiles/",$cont[6]);
    $Mex=ereg_replace("::",".gif'>",$Mex);
    $data=$cont[7];
    $i=$i+1;
    }
    ?><table width="0" border="0" cellpadding="0" cellspacing="0" class="Firme">
    <tr>
    <td width="667" height="15" bgcolor="<? echo $sfondoTabFiS?>" style="border: 1px solid #C0C0C0"><strong>  <? echo $Nome?></strong> da <strong><? echo $Citta?>, <? echo $Nazione?>  
    </strong></td>
    </tr>
    <tr>
    <td height="60" bgcolor="<? echo $sfondoTabFiG?>"> 
    <table width="0" border="0">
    <tr>
    <td><? echo $Mex?></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td height="15" bgcolor="<? echo $sfondoTabFiG?>"><div align="right" class="Firme"><strong>
    <? if ($Mail!="") {?>
    <a href="mailto:<? echo $Mail?>">[@mail]</a>
    <? }?>
    <? if ($Web!="") {?>

    <? if ("1".strpos($Web,"http://") > 1) {?>

            <a href="<? echo $Web?>">[www]</a>
    
            <? } else {?>
    

    <a href="<? echo "http://".$Web?>">[www]</a>

    <? } }?>

            [<? echo $data;?>]        </strong> </div></td>
        </tr>
    </table>
    <br>
    <?
    

    $i=0;
    $k=$k+1;
    }
    fclose($file);
    ?>
    <table width="0" border="0" align="center" class="Firme">
    <tr>
    <td><? if (!($qpag == 1)){
    if (!($totPag == 0)){ echo "<a href="1100.php?qpag=$pagina_pre">[Indietro]"; }} ?>
    <? if (!($qpag == $totPag)){
    if (!($totPag == 0)){ echo "<a href="1100.php?qpag=$pagina_seg">[Avanti]"; }}?>
    </td>
    </tr>
    </table></td>
    </tr><? }?>
    </table>
    </body>
    </html>

    Questa è la pagina scrivi.php

    <?
    include("config.php");
    $data=date("d/m/Y");
    $orario=date("H.i");
    $file=fopen($contatore, "r") or die("Errore di connessione al contatore");
    $ID=fgets($file,10000);
    fclose($file);
    $file=fopen($contatore, "w+") or die("Errore di connessione al contatore");
    fwrite($file,$ID+1);
    fclose($file);
    $file=fopen($contatore, "r") or die("Errore di connessione al contatore");
    $ID=fgets($file,7168);
    fclose($file);
    $file=fopen($firme, "a+t") or die("Errore di connessione al database");
    $num=count(file($firme));
    if ($num != 0) {
    $capo="\n";
    }else {
    $capo="";
    }
    $mess=ereg_replace("\n","<br>",$_POST['Mex']);
    fwrite($file,$capo.$ID."|");
    fwrite($file,$_POST['Nome']."|");
    fwrite($file,$_POST['Citta']."|");
    fwrite($file,$_POST['Nazione']."|");
    fwrite($file,$_POST['Website']."|");
    fwrite($file,$_POST['Email']."|");
    fwrite($file,$mess."|");
    fwrite($file,$data." ".$orario."|");
    fclose($file);
    ?>
    <script language="javascript">
    document.location.href="1100.php";
    </script>

    Ti ringrazio!


  • User Newbie

    Welcome to our [url=http://investa-trade.com/]investing project.Supporting of Loyal Bank we have founded our investing company succeeding in the market today. The prime investing field specialists are in our team. Wide experience and high skill of the brokers helped us to work in stability on the investing markets. Working with individual investors we have gained huge results. It helped us to work today with major companies that are increasing their income together with us.

    Authoritative analitist make proficient analyses and give us recommendations. Resulted data helps us to succeed in our work on the international and world markets and gain maximum income. That is what the strong team ready to become your reliable personal adviser in money saving and increasing capital has been created for.

    Your money will be working with highest analitist and brokers. Working with our company you get maximum income, constant stability and the safety of your capital.

    We offer you 4 kinds of investments:

    Easy - 3% after 2 days
    Usual - 12% after 1 week
    Standard - 50% after 1 month
    Hard - 165% after 3 months

    We accept: E-bullion,Pecunix,Liberty Reserve and E-gold.

    Best Regards,
    CEO Mr.Mati Maa