Visualizzazione risultati 1 fino 16 di 16

Discussione: BAN di utenti

  1. #1
    Guest

    Red face BAN di utenti

    Sul mio sito (betty.altervista.org) ho inserito una sezione in cui è possibile mandare e-mail direttamente dal web, inserendo i propri dati, alla mia casella di posta elettronica.
    Il mio problema è che è successo che un tale "ano.asd" mi ha mandato già messaggi "schifosi" ad appena pochi giorni dall'apertura temporanea del sito...non oso immaginare cosa succederà quando ci saranno diversi visitatori ed il sito sarà indicizzato nei motori di ricerca!!

    Ora il mio dubbio è questo: nel codice PHP che ho utilizzato (visibile all'url: http://betty.altervista.org/sme_form.php) ho inserito l'istruzione
    if ($REMOTE_ADDR == "") $ip = "no ip";
    else $ip = getHostByAddr($REMOTE_ADDR);
    Posso implementare il codice PHP di questa pagina in modo che prima che consenta all'utente di inviare la mail controlli il suo REMOTE_ADDR?
    Ovvero intendo dire che il sito dovrebbe fare la seguente lista di routine:
    Click su "invia" => controllo che $REMOTE_ADDR non sia compreso in una blacklist mia (possibile in un file separato?) => se ok, controllo che tutti i campi siano stati riempiti, altrimenti mostro un messaggio di errore all'utente.

    Grazie milleeeeeeeeeeeeee!!

  2. #2
    Ospite Guest

    Predefinito

    Non ha senso bannare tramite ip,perchè purtroppo al giorno d'oggi l'indirizzo ip della maggior parte degli utenti cambia ad ogni connessione (ip dinamico)...

  3. #3
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    al di là della possibilità di controllare gli ip (cosa comunque possibile), credo che sia una cosa abbastanza inutile, visto il diffondersi degli ip dinamici. ad esempio, con l'adsl ogni volta che ti colleghi hai un ip diverso, in questo modo rischi di penalizzare un innocente e farla fare franca ad un colpevole! ciao!

    EDIT: perchè arrivo (quasi) sempre secondo?
    Ultima modifica di seneca : 12-03-2006 alle ore 19.48.30


    -- Aut Roma Aut Nihil!

  4. #4
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da seneca
    EDIT: perchè arrivo (quasi) sempre secondo?
    xkè sei lento!

    Comunque se proprio vuoi bannare tramite ip fai così:

    Codice PHP:
    <?
    if ($ip == "indirizzo ip da bannare"){
    echo
    "Non hai il permesso di inviare e-mail in quanto il tuo indirizzo ip è stato bannato";
    header (location:"index.php");}
    ?>

  5. #5
    Guest

    Predefinito

    Quindi se io volessi bannare non per IP ma per indirizzo remoto (che invece CREDO sia personale potrei fare:

    <?
    if ($REMOTE_ADDR == "indirizzo ip da bannare"){
    echo "Non hai il permesso di inviare e-mail in quanto il tuo indirizzo ip è stato bannato";
    header (location:"index.php");}
    ?>
    Giusto?

    Altro: come potrei cambiare if ($REMOTE_ADDR == "indirizzo ip da bannare") in modo che anzichè doverli elencare nello script, questo va a leggerselo da un file txt che ne conterrà molti?
    Grazie grazie grazie!!!

  6. #6
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da linformatico
    Quindi se io volessi bannare non per IP ma per indirizzo remoto
    Guarda che indirizzo remoto = ip !!!
    Comunque ora faccio uno scriptino per il database degli ip bannati e poi posto!

  7. #7
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Codice PHP:
    <?
    $file
    = file("blacklist.txt");
    foreach(
    $file as $k => $riga) {
    $cattivo[$k] = $riga;
    }
    if(
    in_array("$_SERVER[REMOTE_ADDR]",$cattivo)) {
    echo
    "SEI BANNATO!";
    }else{
    echo
    "SEI BUONO :D";
    }
    ?>
    Il contenuto del file dovrà essere l'ip bannato x ogni riga...x inserire gli ip puoi fare cosi!
    Codice PHP:
    <input type="text" id="ip"><input type="submit" id="sub" value="invia" onClick="location.href='?inserisci=si&ip='+document.getElementById('ip').value;">
    <?
    if($_GET['inserisci'] == "si" && $_GET['ip'] != "") {
    $fp = fopen("blacklist.txt","a+");
    fwrite($fp,$_GET['ip']."\n");
    echo
    "Inserito $_GET[ip]";
    }
    ?>
    Ultima modifica di Leo91 : 12-03-2006 alle ore 20.15.00

  8. #8
    Guest

    Predefinito

    Grazie mille!! Gentilissimi!!!
    Si, hai ragione probid, mi sono spiegato male io...volevo dire che quando io utilizzo quello script in php che ho riportato nel primo post, non ottengo direttamente l'ip bensì una stringa contenente ANCHE l'ip, sul genere: host54-130.pool80116.interbusiness.it
    Credo sia personale, no?
    Grazie mille Leo91, mi 6 stato davvero molto utile!!
    Probid: se x caso posti poi anche il tuo script mi fai cmq un favore!!
    Grazie ancora a tutti!! : )

  9. #9
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Smile

    Citazione Originalmente inviato da linformatico
    Grazie mille!! Gentilissimi!!!
    Si, hai ragione probid, mi sono spiegato male io...volevo dire che quando io utilizzo quello script in php che ho riportato nel primo post, non ottengo direttamente l'ip bensì una stringa contenente ANCHE l'ip, sul genere: host54-130.pool80116.interbusiness.it
    Credo sia personale, no?
    Grazie mille Leo91, mi 6 stato davvero molto utile!!
    Probid: se x caso posti poi anche il tuo script mi fai cmq un favore!!
    Grazie ancora a tutti!! : )

  10. #10
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da linformatico
    Grazie mille!! Gentilissimi!!!
    volevo dire che quando io utilizzo quello script in php che ho riportato nel primo post, non ottengo direttamente l'ip bensì una stringa contenente ANCHE l'ip, sul genere: host54-130.pool80116.interbusiness.it
    Credo sia personale, no?
    Quello non è personale e non è l'ip,è semplicemente l'host.
    Per trovare l'ip di un utente dovresti sostituire:
    Codice PHP:
    <?
    if ($REMOTE_ADDR == "") $ip = "no ip";
    else
    $ip = getHostByAddr($REMOTE_ADDR);
    ?>
    con

    Codice PHP:
    <?
    if ($_SERVER['REMOTE_ADDR'] == "") $ip = "no ip";
    else
    $ip = $_SERVER['REMOTE_ADDR'];
    ?>

  11. #11
    Guest

    Predefinito

    Qualche proposta:

    - non si può rilevare l'indirizzo MAC del pc? Quello si che è fisso per pc.

    - si crea un cookie sul pc del mittente con data e ora dell'invio dell'email e se essa risulta sgradita fai uno scriptino per bannare l'utente che ha quel cookie..

    - crei una blacklist di parole censurate e se il testo del messaggio ne contiene una non la fai inviare (senza avvisare però l'utente, altrimenti sene accorge e cambia la parola lol!)

    - se non funziona nulla di questo togli direttamente il servizio che fai prima

  12. #12
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    ancora co sto mac...

    come si fa a prendere il mac sorgente???

    al massimo hai a disposizione il mac del gateway che sta prima del server (il router del datacenter) ma non tutti i mac che il pacchetto ha passato per la rete... :/

    quella del cookie e' la via + carina... metti un id ad ogni email inviate e crei un cookie da lui con tutte gli id che quell'utente ti ha inviato, quindi quando ricevi una mail che non ti piace la marchi come "cattiva" e la prossima volta che torna a scriverti carichi il cookie, vedi che e' stato lui a spedirti la mail precedente che non ti e' piaciuta e quindi fai finta che tutto vada a buon fine ma salti la fase di invio effettivo :D
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  13. #13
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da Evcz
    quella del cookie e' la via + carina... metti un id ad ogni email inviate e crei un cookie da lui con tutte gli id che quell'utente ti ha inviato, quindi quando ricevi una mail che non ti piace la marchi come "cattiva" e la prossima volta che torna a scriverti carichi il cookie, vedi che e' stato lui a spedirti la mail precedente che non ti e' piaciuta e quindi fai finta che tutto vada a buon fine ma salti la fase di invio effettivo :D
    Anche questa è in fondo una "toppa" facilmente aggirabile: ogni volta che si fa la rimozione del file temporanei di internet e dei cookie ogni sforzo in questo senso viene vanificato!


    -- Aut Roma Aut Nihil!

  14. #14
    Guest

    Predefinito

    quella del cookie e' la via + carina... metti un id ad ogni email inviate e crei un cookie da lui con tutte gli id che quell'utente ti ha inviato, quindi quando ricevi una mail che non ti piace la marchi come "cattiva" e la prossima volta che torna a scriverti carichi il cookie, vedi che e' stato lui a spedirti la mail precedente che non ti e' piaciuta e quindi fai finta che tutto vada a buon fine ma salti la fase di invio effettivo :D
    Purtroppo sono nuovo del PHP...fin ora usavo "solo" html e js...qualcuno sa aiutarmi? E invece per controllare che il messaggio non contenga delle parole "censurate"?
    Grazie...vi sto annoiando?sono sempre qui che chiedo,chiedo,chiedo....
    Ultima modifica di linformatico : 13-03-2006 alle ore 17.49.21

  15. #15
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    Citazione Originalmente inviato da seneca
    Anche questa è in fondo una "toppa" facilmente aggirabile: ogni volta che si fa la rimozione del file temporanei di internet e dei cookie ogni sforzo in questo senso viene vanificato!
    l'unico ban che funziona è il classico che si usa sui firewall e in genere qualsiasi sistema di limitazione accessi:

    1) bloccare tutto e tutti
    2) sbloccare solo persone fidate

    gli altri modo sono semplici escamotage... :)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  16. #16
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da linformatico
    E invece per controllare che il messaggio non contenga delle parole "censurate"?
    Grazie...vi sto annoiando?sono sempre qui che chiedo,chiedo,chiedo....
    Assolutamente no...siamo qui x questo!Prova così:
    Codice PHP:
    function censura($msg){
    $censuramsg = str_replace("paroladacensurare","*****", $msg);
    return
    "$censuramsg";
    }

Regole di scrittura

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