Visualizzazione risultati 1 fino 22 di 22

Discussione: Filtro parole-link

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Filtro parole-link

    Buona sera a tutti... ho un nuovo problema con il linkbox, da un po' di gg c'è qualche deficente che si diverte ad inserire messagi di questo tipo:
    Codice:
    online blackjack
    http://www.rancholario.com/ <a href="http://www.rancholario.com/"> individual health insurance plans </a>  individual health insurance plans  http://www.manndanceacademy.com/ <a href="http://www.manndanceacademy.com/"> home insurance </a>  home insurance  http://www.manndanceacademy.com/ <a href="http://www.manndanceacademy.com/"> cheap home insurance </a>  cheap home insurance  http://www.manndanceacademy.com/ <a href="http://www.manndanceacademy.com/"> home insurance quotes </a>  home insurance quotes  http://www.manndanceacademy.com/ <a href="http://www.manndanceacademy.com/"> homeowners insurance </a>  homeowners insurance  http://www.flambeaufrenchies.com/ <a href="http://www.flambeaufrenchies.com/"> small business insurance </a>  small business insurance  http://www.erotismoboutique.com/cytotec.html <a href="http://www.erotismoboutique.com/cytotec.html"> cytotec online </a>  cytotec online  http://www.staufferarabians.com/cymbalta.html <a href="http://www.staufferarabians.com/cymbalta.html"> cymbalta online </a>  cymbalta online  http://www.1kmillionaires.com/ <a href="http://www.1kmillionaires.com/"> life insurance quotes </a>  life insurance quotes  http://www.manickpersians.com/ <a href="http://www.manickpersians.com/"> blackjack games </a>  blackjack games  http://www.firedpokemon.com/ <a href="http://www.firedpokemon.com/"> levitra online </a>  levitra online  78716@gmail.com
    Avevo gia pensato di integrare il box con una sorta di filtro "parolacce" ho letto un mare di guide e l'idea migliore m'era parsa quella di realizzare un file txt dove inserire l'array con le parole vietate quindi al momento dell'invio messaggio un controllo su ciò che è stato scritto, e gia così per me è un problema xchè non ho la più pallida idea di come si scriva un'array e come fare a integrare la funzione nel mio codice e ora con gente che inserisce questi url così a casaccio veramente non so dove mettere le mani.
    So che vi ho gia rotto parecchio le scatoline ma se qualcuno sapesse cosa fare mi farebbe un'enorme favore GRAZIE

    PS il linkbox a cui mi riferisco è questo:
    http://www.iltelaiodipenelope.it/pub...x/box/view.php
    Ultima modifica di penelopesito : 19-04-2010 alle ore 23.00.06

  2. #2
    Guest

    Predefinito

    potresti usare un'altro metodo quello di utilizzare la funzione str_replace per eliminare le parolacce.

    Codice PHP:

    $testo
    = "Testo pieno di parolacce , sporche e puzzolenti";

    $array1 = array("parolacce" , "sporche", "puzzolenti");

    $array2 = array("paroline", "pulite" , "profumate");

    $testo = str_replace($array1 , $array2 , $testo);

    // il risultato sara "Testo pieno di paroline, pulite e profumate"

    echo $testo ;
    Spero di averti aiutato. Ciao

  3. #3
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Oppure inserisci un anti-bot, ad esempio un captcha.

  4. #4
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Grazie ragazzi sempre gentilissimi e solerti nel rispondere^^
    Java so che il captcha sarebbe la soluzione migliore ma io li odio e poi x un tool del genere sarebbe davvero troppo^^

    Scacchirako il tuo è uno dei vari esempi infatti che ho trovato in rete nelle varie guide, il problema è che io non so come integrarlo al mio codice....
    dove lo devo mettere, nel codice del form o in quello che visualizza i dati inseriti?
    Grazie

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    lo puoi mettere o prima che salvi, o quando mostri i risultati....

    Forse è meglio che lo usi prima di salvare, almeno quello script lo esegui solo una volta, ovvero al momento del salvataggio....

    Non so se mi sono spiegato...

    Ciao!

  6. #6
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da penelopesito Visualizza messaggio
    Grazie ragazzi sempre gentilissimi e solerti nel rispondere^^
    Java so che il captcha sarebbe la soluzione migliore ma io li odio e poi x un tool del genere sarebbe davvero troppo^^
    Quando si tratta di bot, secondo me, è il metodo più efficace!
    Se proprio non vuoi un captcha prova qualcosa come delle domande o operazioni (addizioni, sottrazioni ... anche se alcuni bot evadono anche quei tipi di controlli)! Devi assicurarti che l'utente che sta scrivendo sia umano!

  7. #7
    Guest

    Predefinito

    non per fare lo spammone ma ho fatto una guida visto che oggi abbiamo parlato di questa discussione : rimosso magari li trovi qualcosa di più approfondito .

    Praticamente ho creato una funzione , che tu puoi inserire nel file config.php o dove ti pare meglio.

    Poi quando ti serve questa funzione la richiami con la seguente sintassi

    Codice PHP:

    $variabile
    = filtro_parolacce($variabile_contente_il_testo_da_depurare);
    ovviamente sostituisci la $variabile_contente_il_testo_da_depurare con la variabile che ti interessa.

    Ciao
    Ultima modifica di andreafallico : 20-04-2010 alle ore 18.09.51

  8. #8
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ciao penelopesito.....

    ti ricordi il post ...
    http://forum.it.altervista.org/php-m...mmagini-2.html

    se vuoi ti do una mano anche per questo post

    guarda questo codice e i commenti : provalo se funziona....

    Codice PHP:
    <?php
    include "config.php";
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");
    /* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */

    //controllo anti-hackers by eurosalute
    //puoi applicare questo filtro anche alle altre variabili del form
    //puoi anche aumentare il filtraggio con parole che vuoi tu

    $void=0;

    if (isset(
    $HTTP_POST_VARS[messaggio]))
    {
    $mes_id = $HTTP_POST_VARS[messaggio];
    $void += substr_count($mes_id,"http");
    $void += substr_count($mes_id,".com");
    $void += substr_count($mes_id,"@");
    $void += substr_count($mes_id,"ftp");
    $void += substr_count($mes_id,"/*");
    $void += substr_count($mes_id,"./");
    $void += substr_count($mes_id,"../");
    $void += substr_count($mes_id,"cgi");
    }

    //oppure:
    //if ($void != 0) die("Errore inserimento messaggio!");

    if ($void == 0){
    //eseguo la query

    $inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
    echo
    "
    <table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
    <tr>
    <td align='center'>LinkBox by Il telaio...<br>
    Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
    la pagina verrà aggiornata<br>
    <img border='0' src='images/loading.gif'>
    <b>Grazie per aver utilizzato LinkBox</b></td>
    </tr>
    </table>"
    ;

    //continua loop if
    }
    else die(
    "Errore inserimento messaggio!");
    ?>
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Euro grazie ci speravo proprio venissi in mio aiuto anche perchè ormai conosci quel codice meglio di me ^_^' ora faccio una prova con cio che mi hai scritto e ti faccio sapere se è ok^^
    Un abbraccio

  10. #10
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per le altre variabili bisogna inserire stringhe di filtraggio diverse...

    per es. la variabile $HTTP_POST_VARS[img] è solo per gli url delle immagini...

    ho visto che alcuni inseriscono qui per questa variabili un url formato pagina web, html, htm, php

    per evitare questo bisogna fare il filtro specifico per .html .htm .php

    poi ti posto il codice....
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    hhhhhhhhhhaaaaaaaaaaaa fantastico Euro funziona perfettamente ho provato ad inserire lo stesso messaggio del "deficente" e non l'ha postato mi da l'errore!!!!!

    Me feliceeeeeeeeeeeee ^_^

    Se mi dai anche le istruzioni per le altre variabili è perfetto così man mano aggiungo ciò che serve.
    Se volessi inserire altre parole vietate le devo scrivere cosi: $void += substr_count($mes_id,"parolaccia"); Giusto?
    GRAZIEEEEEEEEEEEEEEEEEEEEEEE

  12. #12
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    si, esatto

    qui ti ho riscritto il codice, puoi aggiungere altri caratteri speciali o parole proibite se vuoi: provalo....poi mi dici se è OK

    Codice PHP:
    <?php
    include "config.php";
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");
    /* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */

    //controllo anti-hackers by eurosalute
    //puoi applicare questo filtro anche alle altre variabili

    $void_mes=0;
    $void_img=0;
    $void_url=0;
    $void_nome=0;

    if (isset(
    $HTTP_POST_VARS[messaggio]))
    {
    $mes_id = $HTTP_POST_VARS[messaggio];
    $void_mes += substr_count($mes_id,"http");
    $void_mes += substr_count($mes_id,".com");
    $void_mes += substr_count($mes_id,"@");
    $void_mes += substr_count($mes_id,"ftp");
    $void_mes += substr_count($mes_id,"/*");
    $void_mes += substr_count($mes_id,"./");
    $void_mes += substr_count($mes_id,"../");
    $void_mes += substr_count($mes_id,"cgi");
    //es.: qui aggiungi le parole da filtrare
    //$void_mes += substr_count($mes_id,"parole");
    }

    if (isset(
    $HTTP_POST_VARS[img]))
    {
    $img_id = $HTTP_POST_VARS[img];
    $void_img += substr_count($img_id,".html");
    $void_img += substr_count($img_id,".htm");
    $void_img += substr_count($img_id,".xhtml");
    $void_img += substr_count($img_id,".xml");
    $void_img += substr_count($img_id,".php");
    $void_img += substr_count($img_id,".cgi");
    $void_img += substr_count($img_id,".asp");
    $void_img += substr_count($img_id,".aspx");
    //filtro standard :
    $void_img += substr_count($img_id,"ftp");
    $void_img += substr_count($img_id,"@");
    $void_img += substr_count($img_id,"/*");
    $void_img += substr_count($img_id,"./");
    $void_img += substr_count($img_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[url]))
    {
    $url_id = $HTTP_POST_VARS[url];
    $void_url += substr_count($url_id,".gif");
    $void_url += substr_count($url_id,".jpg");
    $void_url += substr_count($url_id,".png");
    $void_url += substr_count($url_id,".jpeg");
    $void_url += substr_count($url_id,".bmp");
    $void_url += substr_count($url_id,".tiff");
    $void_url += substr_count($url_id,".tga");
    $void_url += substr_count($url_id,".miff");
    $void_url += substr_count($url_id,".xcf");
    //filtro standard :
    $void_url += substr_count($url_id,"ftp");
    $void_url += substr_count($url_id,"@");
    $void_url += substr_count($url_id,"/*");
    $void_url += substr_count($url_id,"./");
    $void_url += substr_count($url_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[nome]))
    {
    $nome_id = $HTTP_POST_VARS[nome];
    $void_nome += substr_count($nome_id,"http");
    $void_nome += substr_count($nome_id,".com");
    $void_nome += substr_count($nome_id,"@");
    $void_nome += substr_count($nome_id,"ftp");
    $void_nome += substr_count($nome_id,"/*");
    $void_nome += substr_count($nome_id,"./");
    $void_nome += substr_count($nome_id,"../");
    $void_nome += substr_count($nome_id,"cgi");
    //es.: qui aggiungi altri caratteri speciali da filtrare
    //$void_nome += substr_count($nome_id,"caratteri");
    }

    //controllo che i &void_... siano diversi da 0(zero):
    if ($void_mes != 0) die("Errore inserimento messaggio! Non sono ammessi link/url, parole o frasi oscene e caratteri speciali.");
    if (
    $void_img != 0) die("Errore inserimento url immaggine! Non sono ammessi link-url a pagine web e caratteri speciali, solo link-url file immagine. Se non si ha un file immagine, sarà inserita una immagine di default.");
    if (
    $void_url != 0) die("Errore inserimento url pagina web! Non sono ammessi link-url a file immagine e caratteri speciali, solo link-url pagine web.");
    if (
    $void_nome != 0) die("Errore inserimento nome! Non sono ammessi caratteri speciali.");

    //controllo globale :
    if ($void_mes == 0 && $void_img == 0 && $void_url == 0 && $void_nome == 0){
    //eseguo la query

    $inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
    echo
    "
    <table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
    <tr>
    <td align='center'>LinkBox by Il telaio...<br>
    Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
    la pagina verrà aggiornata<br>
    <img border='0' src='images/loading.gif'>
    <b>Grazie per aver utilizzato LinkBox</b></td>
    </tr>
    </table>"
    ;

    //continua loop if
    }
    else die(
    "Errore Globale Form Inserimento! Contattare l'Amministratore, grazie.");
    ?>
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  13. #13
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Non so come ringraziarti Euro funziona perfettamente ^_^ grazie anche x i commenti che hai inserito nel codice così ho potuto capire i vari passaggi a cosa servono^^
    Ora lo scrivo anche nel "guestbook" che ho fatto per il sito, tanto il codice è più o meno lo stesso
    Se ci fossero delle guide scritte così bene gli impediti come me potrebbero imparare parecchio
    grazie davvero un abbraccione

    PS Grazie a tutti ^_^

  14. #14
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    se mi permetti, ho fatto alcune modifiche al codice, forse così è più interessante, ma non necessario.....

    la modifica sostanziale è che il filtro invia a te stesso una email di avvertimento dell'errore avvenuto nel inserimento dei campi del form...

    ecco il codice:

    Codice PHP:
    <?php
    include "config.php";
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");
    /* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */

    //controllo anti-hackers by eurosalute
    //puoi applicare questo filtro anche alle altre variabili

    $void_mes=0;
    $void_img=0;
    $void_url=0;
    $void_nome=0;

    if (isset(
    $HTTP_POST_VARS[messaggio]))
    {
    $mes_id = $HTTP_POST_VARS[messaggio];
    $void_mes += substr_count($mes_id,"http");
    $void_mes += substr_count($mes_id,".com");
    $void_mes += substr_count($mes_id,"@");
    $void_mes += substr_count($mes_id,"ftp");
    $void_mes += substr_count($mes_id,"/*");
    $void_mes += substr_count($mes_id,"./");
    $void_mes += substr_count($mes_id,"../");
    $void_mes += substr_count($mes_id,"cgi");
    //es.: qui aggiungi le parole da filtrare
    //$void_mes += substr_count($mes_id,"parole");
    }

    if (isset(
    $HTTP_POST_VARS[img]))
    {
    $img_id = $HTTP_POST_VARS[img];
    $void_img += substr_count($img_id,".html");
    $void_img += substr_count($img_id,".htm");
    $void_img += substr_count($img_id,".xhtml");
    $void_img += substr_count($img_id,".xml");
    $void_img += substr_count($img_id,".php");
    $void_img += substr_count($img_id,".cgi");
    $void_img += substr_count($img_id,".asp");
    $void_img += substr_count($img_id,".aspx");
    //filtro standard :
    $void_img += substr_count($img_id,"ftp");
    $void_img += substr_count($img_id,"@");
    $void_img += substr_count($img_id,"/*");
    $void_img += substr_count($img_id,"./");
    $void_img += substr_count($img_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[url]))
    {
    $url_id = $HTTP_POST_VARS[url];
    $void_url += substr_count($url_id,".gif");
    $void_url += substr_count($url_id,".jpg");
    $void_url += substr_count($url_id,".png");
    $void_url += substr_count($url_id,".jpeg");
    $void_url += substr_count($url_id,".bmp");
    $void_url += substr_count($url_id,".tiff");
    $void_url += substr_count($url_id,".tga");
    $void_url += substr_count($url_id,".miff");
    $void_url += substr_count($url_id,".xcf");
    //filtro standard :
    $void_url += substr_count($url_id,"ftp");
    $void_url += substr_count($url_id,"@");
    $void_url += substr_count($url_id,"/*");
    $void_url += substr_count($url_id,"./");
    $void_url += substr_count($url_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[nome]))
    {
    $nome_id = $HTTP_POST_VARS[nome];
    $void_nome += substr_count($nome_id,"http");
    $void_nome += substr_count($nome_id,".com");
    $void_nome += substr_count($nome_id,"@");
    $void_nome += substr_count($nome_id,"ftp");
    $void_nome += substr_count($nome_id,"/*");
    $void_nome += substr_count($nome_id,"./");
    $void_nome += substr_count($nome_id,"../");
    $void_nome += substr_count($nome_id,"cgi");
    //es.: qui aggiungi altri caratteri speciali da filtrare
    //$void_nome += substr_count($nome_id,"caratteri");
    }

    //controllo che i &void_... siano diversi da 0(zero):
    if ($void_mes != 0) echo("Errore inserimento messaggio! Non sono ammessi link-url, parole o frasi oscene e caratteri speciali.");
    if (
    $void_img != 0) echo("Errore inserimento url immaggine! Non sono ammessi link-url a pagine web e caratteri speciali, solo link-url file immagine. Se non si ha un file immagine, sarà inserita una immagine di default.");
    if (
    $void_url != 0) echo("Errore inserimento url pagina web! Non sono ammessi link-url a file immagine e caratteri speciali, solo link-url pagine web.");
    if (
    $void_nome != 0) echo("Errore inserimento nome! Non sono ammessi caratteri speciali.");

    //controllo globale :
    if ($void_mes == 0 && $void_img == 0 && $void_url == 0 && $void_nome == 0){
    //eseguo la query

    $inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
    echo
    "
    <table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
    <tr>
    <td align='center'>LinkBox by Il telaio...<br>
    Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
    la pagina verrà aggiornata<br>
    <img border='0' src='images/loading.gif'>
    <b>Grazie per aver utilizzato LinkBox</b></td>
    </tr>
    </table>"
    ;

    //continua loop if
    }
    else {

    $lRemoteIP = $_SERVER['REMOTE_ADDR']; // indirizzo IP in uso
    $host_ip_remote = gethostbyaddr($lRemoteIP); //nome host in uso
    $url_path_full = ($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); //url completo usato

    // il tuo indirizzo email:
    $emailto = "penelopesito@altervista.org";

    // l'oggetto dell'email es:
    $esubject = "Errore Inserimento Box";

    // il testo dell'email:
    $emailtext = "
    Variabile usata:
    messaggio =
    $mes_id
    img =
    $img_id
    url =
    $url_id
    nome =
    $nome_id

    IP Remoto =
    $lRemoteIP
    Host Name =
    $host_ip_remote
    URL =
    $url_path_full
    "
    ;

    # invia l'email a te stesso:
    @mail("$emailto", $esubject, $emailtext, "From: $emailto");

    //frase esempio:
    die("Per favore, ricarica il box e reinserisci tutti i campi del form. Per eventuali errori ripetuti, contatta l'amministratore, grazie.");
    }
    ?>
    dimenticavo....volendo puoi inserire tutto il filtro in un file per es. lo nomini filtro_box.php e lo richiami con la funzione require.....

    se vuoi faccio anche un redirect automatico....

    Ultima modifica di EuroSalute : 21-04-2010 alle ore 15.14.36 Motivo: correzioni ....più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  15. #15
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Capperina ma sei un grande Euro davvero^^ x il linkbox è sufficente il primo codice, ma questo qui è perfetto per i commenti del sito, ho visto che c'è anche l'ip, campo che io avevo inserito nel db ma non avevo capito come recuperare, so che non è definitivo ma se fosse possibile fare un eventuale ban di ip "antipatici" sarebbe buono.
    Non star ad impazzire però perchè gia così è assolutamente perfetto, se non ti crea troppo lavoro mi piacerebbe sapere come si potrebbe mettere su un file esterno.
    GRAZIEEEEEEEEEEEEEEEEEEEEEE

  16. #16
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    prendi il codice del filtro e lo salvi creando un nuovo file filtro_box.php:
    Codice PHP:
    $void_mes=0;
    $void_img=0;
    $void_url=0;
    $void_nome=0;

    if (isset(
    $HTTP_POST_VARS[messaggio]))
    {
    $mes_id = $HTTP_POST_VARS[messaggio];
    $void_mes += substr_count($mes_id,"http");
    $void_mes += substr_count($mes_id,".com");
    $void_mes += substr_count($mes_id,"@");
    $void_mes += substr_count($mes_id,"ftp");
    $void_mes += substr_count($mes_id,"/*");
    $void_mes += substr_count($mes_id,"./");
    $void_mes += substr_count($mes_id,"../");
    $void_mes += substr_count($mes_id,"cgi");
    //es.: qui aggiungi le parole da filtrare
    //$void_mes += substr_count($mes_id,"parole");
    }

    if (isset(
    $HTTP_POST_VARS[img]))
    {
    $img_id = $HTTP_POST_VARS[img];
    $void_img += substr_count($img_id,".html");
    $void_img += substr_count($img_id,".htm");
    $void_img += substr_count($img_id,".xhtml");
    $void_img += substr_count($img_id,".xml");
    $void_img += substr_count($img_id,".php");
    $void_img += substr_count($img_id,".cgi");
    $void_img += substr_count($img_id,".asp");
    $void_img += substr_count($img_id,".aspx");
    //filtro standard :
    $void_img += substr_count($img_id,"ftp");
    $void_img += substr_count($img_id,"@");
    $void_img += substr_count($img_id,"/*");
    $void_img += substr_count($img_id,"./");
    $void_img += substr_count($img_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[url]))
    {
    $url_id = $HTTP_POST_VARS[url];
    $void_url += substr_count($url_id,".gif");
    $void_url += substr_count($url_id,".jpg");
    $void_url += substr_count($url_id,".png");
    $void_url += substr_count($url_id,".jpeg");
    $void_url += substr_count($url_id,".bmp");
    $void_url += substr_count($url_id,".tiff");
    $void_url += substr_count($url_id,".tga");
    $void_url += substr_count($url_id,".miff");
    $void_url += substr_count($url_id,".xcf");
    //filtro standard :
    $void_url += substr_count($url_id,"ftp");
    $void_url += substr_count($url_id,"@");
    $void_url += substr_count($url_id,"/*");
    $void_url += substr_count($url_id,"./");
    $void_url += substr_count($url_id,"../");
    }

    if (isset(
    $HTTP_POST_VARS[nome]))
    {
    $nome_id = $HTTP_POST_VARS[nome];
    $void_nome += substr_count($nome_id,"http");
    $void_nome += substr_count($nome_id,".com");
    $void_nome += substr_count($nome_id,"@");
    $void_nome += substr_count($nome_id,"ftp");
    $void_nome += substr_count($nome_id,"/*");
    $void_nome += substr_count($nome_id,"./");
    $void_nome += substr_count($nome_id,"../");
    $void_nome += substr_count($nome_id,"cgi");
    //es.: qui aggiungi altri caratteri speciali da filtrare
    //$void_nome += substr_count($nome_id,"caratteri");
    }
    ora, richiami il file con la funzione require, così:

    Codice PHP:
    <?php
    include "config.php";
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");
    /* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */

    //controllo anti-hackers by eurosalute
    //puoi applicare questo filtro anche alle altre variabili

    require ("filtro_box.php");

    //controllo che i &void_... siano diversi da 0(zero):
    if ($void_mes != 0) echo("Errore inserimento messaggio! Non sono ammessi link-url, parole o frasi oscene e caratteri speciali.");
    if (
    $void_img != 0) echo("Errore inserimento url immaggine! Non sono ammessi link-url a pagine web e caratteri speciali, solo link-url file immagine. Se non si ha un file immagine, sarà inserita una immagine di default.");
    if (
    $void_url != 0) echo("Errore inserimento url pagina web! Non sono ammessi link-url a file immagine e caratteri speciali, solo link-url pagine web.");
    if (
    $void_nome != 0) echo("Errore inserimento nome! Non sono ammessi caratteri speciali.");

    //controllo globale :
    if ($void_mes == 0 && $void_img == 0 && $void_url == 0 && $void_nome == 0){
    //eseguo la query

    $inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
    echo
    "
    <table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
    <tr>
    <td align='center'>LinkBox by Il telaio...<br>
    Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
    la pagina verrà aggiornata<br>
    <img border='0' src='images/loading.gif'>
    <b>Grazie per aver utilizzato LinkBox</b></td>
    </tr>
    </table>"
    ;

    //continua loop if
    }
    else {

    $lRemoteIP = $_SERVER['REMOTE_ADDR']; // indirizzo IP in uso
    $host_ip_remote = gethostbyaddr($lRemoteIP); //nome host in uso
    $url_path_full = ($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); //url completo usato

    // il tuo indirizzo email:
    $emailto = "penelopesito@altervista.org";

    // l'oggetto dell'email es:
    $esubject = "Errore Inserimento Box";

    // il testo dell'email:
    $emailtext = "
    Variabile usata:
    messaggio =
    $mes_id
    img =
    $img_id
    url =
    $url_id
    nome =
    $nome_id

    IP Remoto =
    $lRemoteIP
    Host Name =
    $host_ip_remote
    URL =
    $url_path_full
    "
    ;

    # invia l'email a te stesso:
    @mail("$emailto", $esubject, $emailtext, "From: $emailto");

    //frase esempio:
    die("Per favore, ricarica il box e reinserisci tutti i campi del form. Per eventuali errori ripetuti, contatta l'amministratore, grazie.");
    }
    ?>
    ti ricordo che questo filtro funzionerà solo per il form del box, in quanto dipende dalle variabili usate nel form...oppure inserisci nel filtro anche le altre variabili utilizzate per altri form...(nello stesso modo...non so se mi spiego)

    se vuoi creare un filtro univoco, per es. lo puoi fare per le variabili del query string.

    questa è una soluzione, ma esistono molte altre soluzioni...

    se vuoi bloccare gli IP indesiderati, potresti installare un firewall...

    utilizzo un firewall, solo per lo scopo di conoscere, come dici tu i de....ti, e se insistono bloccare il loro ip.
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  17. #17
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Perfetto grazie infinite Euro ^_^ ora me lo sistemo x benino^^
    Ho capito il discorzo delle variabili del form, ma i parametri sono gli stessi per cui lo posso sistemare ora che ho capito come cappero funziona lo posso x così dire personalizzare a seconda del form ^_^

    Ok anche x il firewall ora vedo di trovare qualcosa ad doc!!!
    Un mega abbraccio e grazie davvero di cuore per la tua disponibilità

  18. #18
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ....prego, son contento di poter aiutare

    le variabili possono essere anche le stesse, oppure essere altre nuove variabili...dipende dall'utilizzo del form, faccio un esmpio:

    se utilizzi l'immissione di url pagine web e la variabile usata nel form è uguale a url, puoi utilizzare lo stesso filtro per questa variabile...

    la funzione isset determina se quella variabile è settata e non è nulla, quindi per variabili di utilizzo diverso per ogni form, il filtro tralascerà quelle variabili non settate e nulle.

    per il firewall se vuoi te ne passo uno abbastanza buono, si installa in breve tempo senza eccessive modifiche.

    se vuoi fare questo controllo sugli IP, hai bisogno di creare una tabella nel database per poter registrare e quindi anche cancellare gli IP che desideri bannare.

    poi si tratta di realizzare una funzione che ti permette di negare l'accesso al sito tramite i record degli IP prelevati dal database.

    ma un firewall ha multiple funzioni....se vuoi te lo passo...è un open source



    IMPORTANTE***** come al solito, dimenticavo di dire che, se hai la possibilità di editare il file .htaccess, è tutto molto più semplice:

    ti basta inserire gli indirizzi Ip che vuoi bloccare in questo modo:

    # blocco IP
    order allow,deny
    deny from INDIRIZZO IP
    deny from ALTRO INDIRIZZO IP
    deny from NOMI HOST COME spammer.com
    allow from all
    # end blocco IP
    Ultima modifica di EuroSalute : 21-04-2010 alle ore 21.25.39
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  19. #19
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ho copiato le indicazioni che mi hai scritto così le ho sottomano per fare i vari settaggi
    ^_^ ti assicuro che ce ne' poca di gente con la tua pazienza e gentilezza
    se non ti crea problemi accetto volentieri il firewall, ne avevo sentito parlare ma non ne avevo ben capito la funzionalità^^ e diventa quindi inutile altro modo x bannare ip tanto più (fatta piccola ricerchina) nella maggior parte dei casi sono ip dinamici ovvero cambiano ogni volta ci si connette ad internet immagino chi si diverte a far macelli se non pensa a cambiare ip
    Ancora una volta grazie... spero un gg di potermi sdebitare

  20. #20
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    devi conoscere che questo firewall è scritto in PHP 5, quindi perchè funzioni devi abilitare il php 5, lo puoi fare con il file .htaccess....

    poi essendo in php, se hai file scritti direttamente in html o htm, dovrai rinominare i file con l'estensione o formato .php invece di .html, ecc.

    e per ogni file .html (che rinomini .php) dovrai aggiungere linee di codice che richiamano i file di configurazione e funzionamento del firewall.

    scarica il firewall:
    http://sourceforge.net/projects/web-firewall/

    c'è un file della guida ed installazione che spiega tutto...

    se vuoi maggiori informazioni o trovi difficoltà nell'installazione, chiedi....
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  21. #21
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Sei gentilissimo ora scarico e vedo di studiarmi il tutto, le mie pag sono quasi tutte in htm, la home è in asp e non posso metter mani nel file .htaccess per cui ora vedo se la cosa è fattibile ^_^
    Ti ringrazio tantissimo ...alla prossima^^ tanto sicuro avrò ancora bisogno del tuo prezioso aiuto!
    Un abbraccione

  22. #22
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    si, a risentirci....

    un abbraccio anche da parte mia
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •