Anti Website Spamming

Info 
Door: Walter81 Moeilijkheidsgraad: 2/3
Views:18.868Reacties: 12(Bekijken)
  Log in om zelf te reageren
 Waardering:9.3/10 (3 stemmen)



12 reacties
kokx Geplaatst op 15-11-2008 om 19:06
 

Nieuwsposter
Ik ben weer es goed aan het denken en kom er nu achter dat dit niet de beste manier is om het te doen. robots.txt = een 'Geen toegang' bordje, en geen gesloten deur. Spambots trappen er idd in, maar het kan altijd zijn dat google toch de pagina bezoekt, maar niet crawlt.
Bacardi Geplaatst op 05-02-2008 om 10:25
 

Regular
Yeehaa! Na wat aanpassingen & Toevoegingen met CSS + PHP heb ik het geflikt :D Bij mij waren er 7 Spammers!! Allemaal in de val gelokt! Bedankt!

Greetz,
Bacardi [Martin]
Webdesign Berend Geplaatst op 12-09-2007 om 01:34
 

Regular
Het idee spreekt mij zeer sterk aan, maar het lukt me tot nu toe nog niet om ook werkelijk IP adressen te bannen!

Ik heb al wel alle aanpassingen zoals hieronder voorgesteld doorgevoerd. Maar ... helaas.

Als ik zelf de pagina "val.php" aanroep moet mijn eigen IP adres toch in de db tabel verschijnen? Maar dat lukt niet!

Ik heb inmiddels wel registratie van het IP-adres in mijn Gastenboek geprogrammeerd. Hiermee kan ik dan 'handmatig' de spambots aan de tabel toevoegen.

Maar dat is natuurlijk niet de bedoeling van dit script!!!

Is er al iemand die een volledig script heeft dat goed werkt; d.w.z. ook daadwerkelijk IP adressen die "val.php" bezoeken ook echt toevoegd aan de db tabel?

Ik vermoed dat het te maken heeft met de variabelen $id, $user_id en $client_id in de verschillende code-snippets.
takje Geplaatst op 23-08-2007 om 22:07
 

Regular
Er staat nog een foutje in het script dat het ip controleert. Je gebruikt de variabele $user_ip, maar die word nooit aangemaakt.
Daarom, eerst nog een stukje code:
#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if ( getenv('HTTP_X_FORWARDED_FOR') != '' )
{
    $user_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );

    $entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
    reset($entries);
    while (list(, $entry) = each($entries))
    {
        $entry = trim($entry);
        if ( preg_match("/^([0-9]+.[0-9]+.[0-9]+.[0-9]+)/", $entry, $ip_list) )
        {
            $private_ip = array('/^0./', '/^127.0.0.1/', '/^192.168..*/', '/^172.((1[6-9])|(2[0-9])|(3[0-1]))..*/', '/^10..*/', '/^224..*/', '/^240..*/');
            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

            if ( $user_ip != $found_ip )
            {
                $user_ip = $found_ip;
                break;
            }
        }
    }
}
else
{
    $user_ip = ( ! empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( ! empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
}
takje Geplaatst op 23-08-2007 om 20:16
 

Regular
Er staat nog een foutje in het script dat het ip controleert. Je gebruikt de variabele $user_ip, maar die word nooit aangemaakt.
Daarom, eerst nog een stukje code:
#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if ( getenv('HTTP_X_FORWARDED_FOR') != '' )
{
    $user_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );

    $entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
    reset($entries);
    while (list(, $entry) = each($entries))
    {
        $entry = trim($entry);
        if ( preg_match("/^([0-9]+.[0-9]+.[0-9]+.[0-9]+)/", $entry, $ip_list) )
        {
            $private_ip = array('/^0./', '/^127.0.0.1/', '/^192.168..*/', '/^172.((1[6-9])|(2[0-9])|(3[0-1]))..*/', '/^10..*/', '/^224..*/', '/^240..*/');
            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

            if ( $user_ip != $found_ip )
            {
                $user_ip = $found_ip;
                break;
            }
        }
    }
}
else
{
    $user_ip = ( ! empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( ! empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
}

Pagina 1 2 3 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder