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

    Script php per bloccare browser

    Ciao a tutti.
    Pur avendo provato e riprovato svariate soluzioni, non riesco ad impedire l'accesso ad un IP (russo) al mio piccolo sitino (www.avariateam.com). La cosa che mi fa ancora più rabbia è che detto IP è perfino statico (ed in teoria più facile da neutralizzare). Tuttavia, avendo notato dalle statistiche che questo simpaticone è l'unico a visitare il sito con Netscape, mi domandavo se fosse possibile implementare il sito con uno script in php che neghi l'accesso alle mie pagine (tutte in php) e rimandi lo stesso ad una pagina prestabilita. Premetto di utilizzare già un IP banner che però non ha alcun effetto su questo Utente.
    Grazie ed un saluto a tutti visto che sono nuovo del Forum.
    La radioattività uccide lentamente! Chi se ne frega tanto noi sardi non abbiamo fretta.

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    A parte il fatto che $_SERVER dovrebbe essere d'aiuto, non credo che la soluzione migliore per bloccare un IP sia farlo da codice PHP.
    Modifica il file .htaccess nella root del sito aggiungendo alla fine queste righe:

    codice:
    Order Allow,Deny
    Deny From indirizzo IP
    Allow From All
    Fonti: esperienza e http://www.javascriptkit.com/howto/htaccess5.shtml

  3. #3
    Originariamente inviato da skjobax
    A parte il fatto che $_SERVER dovrebbe essere d'aiuto, non credo che la soluzione migliore per bloccare un IP sia farlo da codice PHP.
    Modifica il file .htaccess nella root del sito aggiungendo alla fine queste righe:

    codice:
    Order Allow,Deny
    Deny From indirizzo IP
    Allow From All
    Fonti: esperienza e http://www.javascriptkit.com/howto/htaccess5.shtml
    Già fatto ma sembra non avere alcun effetto. Sigh!
    Perdona ma mi riferivo ad uno script poichè avevo visto qualcosa del genere in rete che però poi mi è sfuggito.
    La radioattività uccide lentamente! Chi se ne frega tanto noi sardi non abbiamo fretta.

  4. #4
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    beh puoi sempre fare "alla vecchia maniera"...
    Quando vedi che l'utente si collega con quell'IP, mettigli un cookie o un file che secifica chiaramente: "Bannato"...
    Comunque strano che non funzioni...

    Posta un po' quello che stai usando ora...

    P.S.: Bella grafica per il sito

  5. #5
    Grazie skjobax per il complimento relativo alla grafica.
    Ti posto quello che sto usando che poi fa riferimento al file ban.txt ove sono indicati gli IP bannati.

    <?PHP



    $fd = fopen ("ban.txt", "r");
    while (!feof ($fd)) {
    $buffer = fgets($fd, 4096);
    $buffer= chop($buffer);
    $ip = $REMOTE_ADDR;
    if ($ip == "$buffer") {
    //if so write it to a logfile
    $file = "log.txt";

    $log = fopen($file,"a+");
    $line = fgets($log, 4096);
    fclose($log);
    // write to logfile
    $string = "$ip::PERMISSION DENIED\n";

    $log = fopen($file, "a+");
    $string = fwrite($log, $string);
    fclose($log);
    // throw them to another page
    ?>
    <script language="javascript">
    <!--
    document.location='pagina_bannati.php';
    // -->
    </script>
    <?PHP


    }
    }
    fclose ($fd);

    ?>
    La radioattività uccide lentamente! Chi se ne frega tanto noi sardi non abbiamo fretta.

  6. #6
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Prima di fare qualche test, vorrei conoscere la struttura del file ban.txt...
    Tipo: ogni linea un IP o qualcosa del genere...

    TIP: per loggare un messaggio personalizzato: http://www.php.net/manual/en/function.error-log.php

  7. #7
    Esatto!
    E' un semplice file .txt dove è riportato un IP per ogni linea. Molto semplice ma con altri IP funziona benissimo perche oltre a non vederli più comparire nelle statistiche li ritrovo invece nel file di log che lo stesso scriptino php va a scrivere tutte le volte che questi "provano" a visitare le pagine.
    La radioattività uccide lentamente! Chi se ne frega tanto noi sardi non abbiamo fretta.

  8. #8
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Mi sembra strano che tu non riesca ad intecettare l'ip del tuo visitatore indesiderato.
    Ho rivisto un po' il tuo codice che aveva alcune cose anomale (perchè leggere una riga del file di log e poi non far nulla dei dati letti?).
    HO inserito un reindirizzamento lato server (con header location) invece che con js: il tuo visitatore potrebbe usare un browser con js disattivato e quindi ignorare il reindirizzamento.

    Codice PHP:
    <?PHP
    $fd 
    fopen ("ban.txt""r");
    while ((
    $buffer=fgets($handle4096)) !== false) {
        
    $buffer=chop($buffer);
        if (
    $buffer==$SERVER['REMOTE_ADDR']) {
            
    //if so write it to a logfile
            
    $string "$ip::PERMISSION DENIED\n";
            
    $log fopen("log.txt""a+");
            
    $string fwrite($log$string);
            
    fclose($log);
            
    // throw them to another page
            
    header('location:pagina_bannati.php');
            die();
        }
    }
    fclose ($fd);

    ?>

  9. #9
    Hmm...non è meglio usare iptables, se il server è linux/unix e si ha accesso al firewall? (think)


  10. #10
    Grazie Luke70 ma dopo aver testato la tua soluzione (con il mio IP) lo script sembra non fermare più l'utente indesiderato mentre ripristinando il tutto com'era in origine (con il vecchio script) tutto riprende a funzionare regolarmente (bannando l'IP indicato).
    La radioattività uccide lentamente! Chi se ne frega tanto noi sardi non abbiamo fretta.

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