/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
blokere for rusland og hongkong
Fra : Ukendt


Dato : 09-12-07 11:29

Hej jeg har problemer med spam i min gæstebog, kan se på IP at det er fra
Rusland og Hong kong, lige nu banner jeg på IP men de finder en ny IP at
bruge efter et stykke tid, hvordan kommer jeg spamproblemet til livs, evt
udelukke russiske og hongkong IP adresser
mvh Niels



 
 
Birger (09-12-2007)
Kommentar
Fra : Birger


Dato : 09-12-07 15:43

"Niels" <....> skrev i en meddelelse
news:475bc373$0$15896$edfadb0f@dtext01.news.tele.dk...
> Hej jeg har problemer med spam i min gæstebog, kan se på IP at det er fra
> Rusland og Hong kong, lige nu banner jeg på IP men de finder en ny IP at
> bruge efter et stykke tid, hvordan kommer jeg spamproblemet til livs, evt
> udelukke russiske og hongkong IP adresser
> mvh Niels
>

Brug de 1, 2 eller 3 første dele af ip-adressen.

Birger
-----
http://bbsorensen.dk



Ukendt (09-12-2007)
Kommentar
Fra : Ukendt


Dato : 09-12-07 17:30

hej hvordan banner jeg med den første 3 dele af IP
her er den PHP jeg bruger nu

foreach($banned_ip as $banned) {
$ip = $_SERVER['REMOTE_ADDR'];
if($ip == $banned){ osv........

er der en code jeg kan bruge til at sammenligne de første 3 grupper

Niels



Birger (09-12-2007)
Kommentar
Fra : Birger


Dato : 09-12-07 19:04

"Niels" <....> skrev i en meddelelse
news:475c1825$0$15879$edfadb0f@dtext01.news.tele.dk...
> hej hvordan banner jeg med den første 3 dele af IP
> her er den PHP jeg bruger nu
>
> foreach($banned_ip as $banned) {
> $ip = $_SERVER['REMOTE_ADDR'];
> if($ip == $banned){ osv........
>
> er der en code jeg kan bruge til at sammenligne de første 3 grupper
>
> Niels
>

Der må være mange måder, og det afhænger nok af hvordan du opbevarer dine
banned ips...

$ip_arr = split( '.', $ip);
$ip_3 = $ip_arr[0].'.'.$ip_arr[1].'.'.$ip_arr[2].'.';
if (str_pos( $banned, $ip3) !== false) {
// osv...
}

vil detektere de tre første er i banned.
Umiddelbart skal det måske gøres omvendt, så man gemmer de tre første i
banned ('123.45.67.') - så kan du blot bruge

if (str_pos( $ip, $banned) !== false) { osv...


--
Birger
-----
http://bbsorensen.dk



Ukendt (09-12-2007)
Kommentar
Fra : Ukendt


Dato : 09-12-07 20:05

hej Birger
jeg har prøvet at rode lidt med det du lagde ind men det stoppede undervejs
her er den komplette bankode jeg bruger, den logger til en fil så jeg kan
altid se om der har været nogen .

<!--Start of Banned IP Addresses & Security Log Script -->
<?php // Allows you to ban people from viewing your website.
$getip = $_SERVER["REMOTE_ADDR"];
$getdate = date( "l dS of F Y" );
$gettime = date( "h:i:sa (@B" );

$banned_ip = array();
$banned_ip[] = '58.65.235.217';
$banned_ip[] = '64.15.152.20';
$banned_ip[] = '90.156.144.121';
$banned_ip[] = '217.16.16.204';
$banned_ip[] = '217.16.16.215';
$banned_ip[] = '217.16.16.218';
$banned_ip[] = '183.222.23.214';
$banned_ip[] = '83.222.23.219';
$banned_ip[] = '83.222.23.243';
$banned_ip[] = '83.222.23.214';
$banned_ip[] = '83.222.23.231';
$banned_ip[] = '83.222.23.238';
$banned_ip[] = '83.222.23.203';
$banned_ip[] = '83.222.23.200';
$banned_ip[] = '83.222.23.247';
$banned_ip[] = '83.222.23.229';


foreach($banned_ip as $banned) {
$ip = $_SERVER['REMOTE_ADDR'];
if($ip == $banned){
echo "the site is closed";
echo "<br />";
echo "------------------------------------";
$fp = fopen("ip_data.dat", "a");
fputs($fp, "**BANNED** Visit logged on $getdate at $gettime internet time)
for IP: $getip
");
fputs($fp, "");
fclose($fp);
exit();
}
}
?>



Birger (10-12-2007)
Kommentar
Fra : Birger


Dato : 10-12-07 12:07

"Niels" <....> skrev i en meddelelse
news:475c3c47$0$15901$edfadb0f@dtext01.news.tele.dk...
> hej Birger
> jeg har prøvet at rode lidt med det du lagde ind men det stoppede
> undervejs her er den komplette bankode jeg bruger, den logger til en fil
> så jeg kan altid se om der har været nogen .
>
> <!--Start of Banned IP Addresses & Security Log Script -->
> <?php // Allows you to ban people from viewing your website.
> $getip = $_SERVER["REMOTE_ADDR"];
> $getdate = date( "l dS of F Y" );
> $gettime = date( "h:i:sa (@B" );
>
> $banned_ip = array();
> $banned_ip[] = '58.65.235.217';
> $banned_ip[] = '64.15.152.20';
> $banned_ip[] = '90.156.144.121';
> $banned_ip[] = '217.16.16.204';
> $banned_ip[] = '217.16.16.215';
> $banned_ip[] = '217.16.16.218';
> $banned_ip[] = '183.222.23.214';
> $banned_ip[] = '83.222.23.219';
> $banned_ip[] = '83.222.23.243';
> $banned_ip[] = '83.222.23.214';
> $banned_ip[] = '83.222.23.231';
> $banned_ip[] = '83.222.23.238';
> $banned_ip[] = '83.222.23.203';
> $banned_ip[] = '83.222.23.200';
> $banned_ip[] = '83.222.23.247';
> $banned_ip[] = '83.222.23.229';
>
>
> foreach($banned_ip as $banned) {
> $ip = $_SERVER['REMOTE_ADDR'];
> if($ip == $banned){
> echo "the site is closed";
> echo "<br />";
> echo "------------------------------------";
> $fp = fopen("ip_data.dat", "a");
> fputs($fp, "**BANNED** Visit logged on $getdate at $gettime internet time)
> for IP: $getip
> ");
> fputs($fp, "");
> fclose($fp);
> exit();
> }
> }
> ?>
>

Jeg overså at split tager regexp som delimiter parameter, og det er sikkert
derfor det "går i stå" - hvilket ikke er en specielt brugbar beskrivelse af
en fejl ;>)
Brug explode() i stedet.


> $banned_ip[] = '58.65.235.217'; hostfresh - Hong Kong
> $banned_ip[] = '64.15.152.20'; iWeb - Montreal
> $banned_ip[] = '90.156.144.121'; masterhost - Rusland
> $banned_ip[] = '217.16.16.204'; masterhost - Rusland
> $banned_ip[] = '217.16.16.215';
> $banned_ip[] = '217.16.16.218';
> $banned_ip[] = '183.222.23.214'; IANA
> $banned_ip[] = '83.222.23.219'; masterhost - Rusland
> $banned_ip[] = '83.222.23.243';
> $banned_ip[] = '83.222.23.214';
> $banned_ip[] = '83.222.23.231';
> $banned_ip[] = '83.222.23.238';
> $banned_ip[] = '83.222.23.203';
> $banned_ip[] = '83.222.23.200';
> $banned_ip[] = '83.222.23.247';
> $banned_ip[] = '83.222.23.229';


Antager at listen er længere end som så ;>)
Der er een i Hong Kong, 1 i Canada, een mere i Nordamerika og resten er den
samme "MASTERHOST Network Operations" i Rusland.

Men til din kode.
Du har to variable med samme indhold - $ip og $getip.
Du sammenligner med den ene, og gemmer den anden.
Det er sikkert godt nok - men ganske overflødigt, og lidt noget rod.

Her er et alternativt forslag:

$getip = $_SERVER["REMOTE_ADDR"];
$getdate = date( "l dS of F Y" );
$gettime = date( "h:i:sa (@B" );

// Sæt det sidste tal i $banned_ip adressen til x, for de udbydere du vil
blokere, f.eks.
$banned_ip = array();
$banned_ip[] = '58.65.235.x'; // hostfresh - Hong Kong
$banned_ip[] = '64.15.152.20'; // iWeb - Montreal
$banned_ip[] = '90.156.144.x'; // masterhost - Rusland#1
$banned_ip[] = '217.16.16.x'; // masterhost - Rusland#2
$banned_ip[] = '183.222.23.214'; // IANA
$banned_ip[] = '83.222.23.x'; // masterhost - Rusland#3

$ip_arr = explode( '.', $getip);

$ban = false;
$idx = 0;
while (( !$ban) && ( $idx < count( $banned_id)) {
$ban_arr = explode( '.', $banned_id[ $idx]);
$ban = ( $ip_arr[0] = $ban_arr[0]) && ( $ip_arr[1] = $ban_arr[1]) && (
$ip_arr[2] = $ban_arr[2]) && (( $ban_arr[3] = 'x') || ( $ip_arr[3] =
$ban_arr[3]));
$idx++;
}

if ( $ban) {
echo 'Spammers are not welcome<br />'."\n";
echo ' "~"<br />'."\n";
echo ' ( @ @ )<br />'."\n";
echo '+----ooo0--(_)--0ooo----+<br />'."\n";
// og hvad du ellers vil...
// brug $getip til logging
}


Et eller andet sted, er der noget forkert med metoden.
For det første, udelukker du seriøse besøgende, fordi andre med samme
udbyder ikke forstår at opføre sig iht. nettikette.
For det andet, bør den involverede udbyder have besked om hans kunders
opførsel. Evt. opfølgning til overordnede registratorer, hvis det ikke
hjælper.
Der er selvfølgelig ingen der kan tvinge nogen til at rapportere. Men hvis
ingen rapporterer, kommer man aldrig unoderne til livs.


Birger
-----
http://bbsorensen.dk



Ukendt (10-12-2007)
Kommentar
Fra : Ukendt


Dato : 10-12-07 15:18


"Birger" <sdc@bbsorensen.com> skrev i en meddelelse
news:475d1dc1$0$90266$14726298@news.sunsite.dk...
> "Niels" <....> skrev i en meddelelse
> news:475c3c47$0$15901$edfadb0f@dtext01.news.tele.dk...
>> hej Birger
>> jeg har prøvet at rode lidt med det du lagde ind men det stoppede
>> undervejs her er den komplette bankode jeg bruger, den logger til en fil
>> så jeg kan altid se om der har været nogen .
>>
>> <!--Start of Banned IP Addresses & Security Log Script -->
>> <?php // Allows you to ban people from viewing your website.
>> $getip = $_SERVER["REMOTE_ADDR"];
>> $getdate = date( "l dS of F Y" );
>> $gettime = date( "h:i:sa (@B" );
>>
>> $banned_ip = array();
>> $banned_ip[] = '58.65.235.217';
>> $banned_ip[] = '64.15.152.20';
>> $banned_ip[] = '90.156.144.121';
>> $banned_ip[] = '217.16.16.204';
>> $banned_ip[] = '217.16.16.215';
>> $banned_ip[] = '217.16.16.218';
>> $banned_ip[] = '183.222.23.214';
>> $banned_ip[] = '83.222.23.219';
>> $banned_ip[] = '83.222.23.243';
>> $banned_ip[] = '83.222.23.214';
>> $banned_ip[] = '83.222.23.231';
>> $banned_ip[] = '83.222.23.238';
>> $banned_ip[] = '83.222.23.203';
>> $banned_ip[] = '83.222.23.200';
>> $banned_ip[] = '83.222.23.247';
>> $banned_ip[] = '83.222.23.229';
>>
>>
>> foreach($banned_ip as $banned) {
>> $ip = $_SERVER['REMOTE_ADDR'];
>> if($ip == $banned){
>> echo "the site is closed";
>> echo "<br />";
>> echo "------------------------------------";
>> $fp = fopen("ip_data.dat", "a");
>> fputs($fp, "**BANNED** Visit logged on $getdate at $gettime internet
>> time) for IP: $getip
>> ");
>> fputs($fp, "");
>> fclose($fp);
>> exit();
>> }
>> }
>> ?>
>>
>
> Jeg overså at split tager regexp som delimiter parameter, og det er
> sikkert derfor det "går i stå" - hvilket ikke er en specielt brugbar
> beskrivelse af en fejl ;>)
> Brug explode() i stedet.
>
>
>> $banned_ip[] = '58.65.235.217'; hostfresh - Hong Kong
>> $banned_ip[] = '64.15.152.20'; iWeb - Montreal
>> $banned_ip[] = '90.156.144.121'; masterhost - Rusland
>> $banned_ip[] = '217.16.16.204'; masterhost - Rusland
>> $banned_ip[] = '217.16.16.215';
>> $banned_ip[] = '217.16.16.218';
>> $banned_ip[] = '183.222.23.214'; IANA
>> $banned_ip[] = '83.222.23.219'; masterhost - Rusland
>> $banned_ip[] = '83.222.23.243';
>> $banned_ip[] = '83.222.23.214';
>> $banned_ip[] = '83.222.23.231';
>> $banned_ip[] = '83.222.23.238';
>> $banned_ip[] = '83.222.23.203';
>> $banned_ip[] = '83.222.23.200';
>> $banned_ip[] = '83.222.23.247';
>> $banned_ip[] = '83.222.23.229';
>
>
> Antager at listen er længere end som så ;>)
> Der er een i Hong Kong, 1 i Canada, een mere i Nordamerika og resten er
> den samme "MASTERHOST Network Operations" i Rusland.
>
> Men til din kode.
> Du har to variable med samme indhold - $ip og $getip.
> Du sammenligner med den ene, og gemmer den anden.
> Det er sikkert godt nok - men ganske overflødigt, og lidt noget rod.
>
> Her er et alternativt forslag:
>
> $getip = $_SERVER["REMOTE_ADDR"];
> $getdate = date( "l dS of F Y" );
> $gettime = date( "h:i:sa (@B" );
>
> // Sæt det sidste tal i $banned_ip adressen til x, for de udbydere du vil
> blokere, f.eks.
> $banned_ip = array();
> $banned_ip[] = '58.65.235.x'; // hostfresh - Hong Kong
> $banned_ip[] = '64.15.152.20'; // iWeb - Montreal
> $banned_ip[] = '90.156.144.x'; // masterhost - Rusland#1
> $banned_ip[] = '217.16.16.x'; // masterhost - Rusland#2
> $banned_ip[] = '183.222.23.214'; // IANA
> $banned_ip[] = '83.222.23.x'; // masterhost - Rusland#3
>
> $ip_arr = explode( '.', $getip);
>
> $ban = false;
> $idx = 0;
> while (( !$ban) && ( $idx < count( $banned_id)) {
> $ban_arr = explode( '.', $banned_id[ $idx]);
> $ban = ( $ip_arr[0] = $ban_arr[0]) && ( $ip_arr[1] = $ban_arr[1]) &&
> ( $ip_arr[2] = $ban_arr[2]) && (( $ban_arr[3] = 'x') || ( $ip_arr[3] =
> $ban_arr[3]));
> $idx++;
> }
>
> if ( $ban) {
> echo 'Spammers are not welcome<br />'."\n";
> echo ' "~"<br />'."\n";
> echo ' ( @ @ )<br />'."\n";
> echo '+----ooo0--(_)--0ooo----+<br />'."\n";
> // og hvad du ellers vil...
> // brug $getip til logging
> }
>
>
> Et eller andet sted, er der noget forkert med metoden.
> For det første, udelukker du seriøse besøgende, fordi andre med samme
> udbyder ikke forstår at opføre sig iht. nettikette.
> For det andet, bør den involverede udbyder have besked om hans kunders
> opførsel. Evt. opfølgning til overordnede registratorer, hvis det ikke
> hjælper.
> Der er selvfølgelig ingen der kan tvinge nogen til at rapportere. Men hvis
> ingen rapporterer, kommer man aldrig unoderne til livs.
>
>
> Birger
> -----
> http://bbsorensen.dk
>

har prøvet at rode lidt med dit forslag men PHP stopper og siden vises ikke,
jeg har husket <? ?> omkring scriptet
der er nok en lille fejl der stopper afviklingen

Niels



Martin (10-12-2007)
Kommentar
Fra : Martin


Dato : 10-12-07 16:17

Niels wrote:
> har prøvet at rode lidt med dit forslag men PHP stopper og siden vises ikke,
> jeg har husket <? ?> omkring scriptet
> der er nok en lille fejl der stopper afviklingen

Smæk
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors',1);

ind øverst på din side (inde i php klammer)

Så kan det være du får på skrift hvad det der er sket

>
> Niels
>
>

Birger (10-12-2007)
Kommentar
Fra : Birger


Dato : 10-12-07 16:52

8X

>>
>> $ban = false;
>> $idx = 0;
>> while (( !$ban) && ( $idx < count( $banned_id)) {
>> $ban_arr = explode( '.', $banned_id[ $idx]);
>> $ban = ( $ip_arr[0] = $ban_arr[0]) && ( $ip_arr[1] = $ban_arr[1]) &&
>> ( $ip_arr[2] = $ban_arr[2]) && (( $ban_arr[3] = 'x') || ( $ip_arr[3] =
>> $ban_arr[3]));
>> $idx++;
>> }
>>
>> if ( $ban) {
>> echo 'Spammers are not welcome<br />'."\n";
>> echo ' "~"<br />'."\n";
>> echo ' ( @ @ )<br />'."\n";
>> echo '+----ooo0--(_)--0ooo----+<br />'."\n";
>> // og hvad du ellers vil...
>> // brug $getip til logging
>> }
>>
>>
8X
>
> har prøvet at rode lidt med dit forslag men PHP stopper og siden vises
> ikke, jeg har husket <? ?> omkring scriptet
> der er nok en lille fejl der stopper afviklingen
>
> Niels
>

Hastværk ;>)
Det er jo ikke afprøvet - blot forslag til hvordan det kan gøres...

Der er et par fejl :
$ban_arr = explode( '.', $banned_id[ $idx]);
skal hedde
$ban_arr = explode( '.', $banned_ip[ $idx]);

og
$ban = ( $ip_arr[0] = $ban_arr[0]) && ( $ip_arr[1] = $ban_arr[1]) && (
$ip_arr[2] = $ban_arr[2]) && (( $ban_arr[3] = 'x') || ( $ip_arr[3] =
$ban_arr[3]));
skal selvfølgelig være
$ban = ( $ip_arr[0] == $ban_arr[0]) && ( $ip_arr[1] == $ban_arr[1]) && (
$ip_arr[2] == $ban_arr[2]) && (( $ban_arr[3] == 'x') || ( $ip_arr[3] ==
$ban_arr[3]));
- det er jo sammenligninger og ikke assignments.

Den første kan nok godt stoppe afviklingen - der er jo ikke noget der hedder
$banned_id.
Den anden gør bare tingene forkert - med programmet når næppe dertil...

Det er en god ide at få fejl og advarsler vist, specielt når man arbejder
med tingene. Når man er sikker på det funker som tænkt, kan man slå dem fra
igen.


Birger
-----
http://bbsorensen.dk



David Trasbo (13-12-2007)
Kommentar
Fra : David Trasbo


Dato : 13-12-07 11:34

Niels skrev:

<klip>

> har prøvet at rode lidt med dit forslag men PHP stopper og siden vises
> ikke, jeg har husket <? ?> omkring scriptet
> der er nok en lille fejl der stopper afviklingen

Vil du være venlig at tage et kig på:
http://usenet.dk/netikette/citatteknik.html

--
David Trasbo.
http://lki.dk - Luk Kunderne Ind.



Ukendt (14-12-2007)
Kommentar
Fra : Ukendt


Dato : 14-12-07 21:15

> David Trasbo.
> http://lki.dk - Luk Kunderne Ind.
>
HMM igen en af dem der ikke har andet at lave end læse alle indlæg og
kritisere måden de er skrevet på. det har da givet nogen svar og det var det
jeg gik efter.

"og så lige en reklame for egen hjemmeside ind bunden, Hall of Shame"

Niels



Rune Jensen (15-12-2007)
Kommentar
Fra : Rune Jensen


Dato : 15-12-07 16:00

"Niels" skrev...
>> David Trasbo.
>> http://lki.dk - Luk Kunderne Ind.
>>
> HMM igen en af dem der ikke har andet at lave end læse alle indlæg og
> kritisere måden de er skrevet på. det har da givet nogen svar og det var
> det jeg gik efter.

Jo, men der er jo en grund til, at man "cutter" alt det udnødvendige væk,
inden man svarer. Så er det lettere for alle at læse indlæggene. Det er jo
ikke sikkert, du er den eneste med dit problem? Jeg læste selv lidt med, da
jeg har en interesse i samme problemstilling (IP-blocking). Min
indgangsvinkel er så bare ASP i stedet, men derfor kan jeg jo godt søge nye
inputs.


> "og så lige en reklame for egen hjemmeside ind bunden, Hall of Shame"

Der er vide rammer for, hvad der må stå i signaturen. Og det kan sagtens
være links til en hjemmeside (det er faktisk det normale). Pointen er, at
det er folks frirum, så hvis du ikke vil risikere reklame, så lad være med
at trykke på links i signaturen


MVH
Rune Jensen



David Trasbo (20-12-2007)
Kommentar
Fra : David Trasbo


Dato : 20-12-07 16:08

Niels skrev

> HMM igen en af dem der ikke har andet at lave end læse alle indlæg og
> kritisere måden de er skrevet på. det har da givet nogen svar og det var
> det jeg gik efter.

Jeg _har_ andet at lave. Det er netop derfor, jeg ikke gider at sidde og
lede efter de svar folk giver i deres indlæg. Det er spild af tid.

> "og så lige en reklame for egen hjemmeside ind bunden, Hall of Shame"

Som sagt er signaturen et frirum. Så længe "reklamen" ikke er en del af
selve indlægget, er der intet i vejen for det.

--
David Trasbo.
Deltag i Valid Blog Project:
http://groups.google.com/group/validblogproject



penta@panto.com (09-12-2007)
Kommentar
Fra : penta@panto.com


Dato : 09-12-07 19:06

"Niels" <....> skrev i en meddelelse
news:475bc373$0$15896$edfadb0f@dtext01.news.tele.dk...
> Hej jeg har problemer med spam i min gæstebog, kan se på IP at det er fra
> Rusland og Hong kong, lige nu banner jeg på IP men de finder en ny IP at
> bruge efter et stykke tid, hvordan kommer jeg spamproblemet til livs, evt
> udelukke russiske og hongkong IP adresser
> mvh Niels
>
Lidt OT: Lav en falsk gæstebog som du sender dine øst-venner ind på.
Så kan det være at de ikke opfinder nye måder at genere dig på.

/tomov



ShutEye (09-12-2007)
Kommentar
Fra : ShutEye


Dato : 09-12-07 20:10

>> Hej jeg har problemer med spam i min gæstebog, kan se på IP at det er
>> fra Rusland og Hong kong, lige nu banner jeg på IP men de finder en ny IP
>> at bruge efter et stykke tid, hvordan kommer jeg spamproblemet til livs,
>> evt udelukke russiske og hongkong IP adresser
>> mvh Niels
>>
> Lidt OT: Lav en falsk gæstebog som du sender dine øst-venner ind på.
> Så kan det være at de ikke opfinder nye måder at genere dig på.

Det var dog en herlig ide :)
Og så bare lade dem misbruge skidtet uden at det betyder en SKI*!



Martin Højriis Krist~ (09-12-2007)
Kommentar
Fra : Martin Højriis Krist~


Dato : 09-12-07 20:43

"Niels" <....> skrev i en meddelelse
news:475bc373$0$15896$edfadb0f@dtext01.news.tele.dk...
> Hej jeg har problemer med spam i min gæstebog

Det er formentlig en bot.. Prøv med lidt Turing Test:
http://en.wikipedia.org/wiki/Captcha

--
Martin Højriis Kristensen
http://www.martinshjemmeside.dk/ - Lidt af hvert
http://www.mestomaarhus.dk/ - Mest om Århus



Bertel Lund Hansen (09-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-12-07 21:46

Martin Højriis Kristensen skrev:

> Det er formentlig en bot..

Kan botterne skifte IP?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Martin Højriis Krist~ (09-12-2007)
Kommentar
Fra : Martin Højriis Krist~


Dato : 09-12-07 23:43

"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev i en meddelelse
news:8vkol3hru364jkfofag3966360eda09bne@4ax.com...
>> Det er formentlig en bot..
> Kan botterne skifte IP?

Ja, botterne kan endda være spredt på flere netværk.

--
Martin Højriis Kristensen
http://www.martinshjemmeside.dk/ - Lidt af hvert
http://www.mestomaarhus.dk/ - Mest om Århus



Philip Nunnegaard (09-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 09-12-07 23:28

> Hej jeg har problemer med spam i min gæstebog, kan se på IP at det er fra
> Rusland og Hong kong, lige nu banner jeg på IP men de finder en ny IP at
> bruge efter et stykke tid, hvordan kommer jeg spamproblemet til livs, evt
> udelukke russiske og hongkong IP adresser
> mvh Niels

2 måder:

1) Lav en ekstra kolonne i tabellen, der fanger variablen gethostbyaddr()

Altså:
$ipadr = $_SERVER["REMOTE_ADDR"];
$udbyder = gethostbyaddr($ipadr);

I kolonnen er det så $udbyder, der skal indsættes.
Det giver et output a la: h55eb12be.c45-01-03.dyn.perspektivbredband.net

Efter noget tid kan du spotte sammenfald i $udbyder og blokere disse.


2) En lidt mere sikker løsning (endnu):

Lav et ekstra felt i formularen, der *ikke* skal udfyldes. Kald det noget,
som giver mening på engelsk - f.eks. "subject" eller "message".
<input id="subject" name="subject" />

I CSS skriver du så:
input#subject { display: none; }

Et menneske ser ikke feltet og udfylder det derfor heller ikke.
En robot vil plumpe i og udfylde feltet.

I submit-filen sætter du den til kun at indsætte oplysningerne i databasen,
såfremt feltet subject *ikke* er udfyldt.

Det er sikkert kun et spørgsmål om tid, før robotterne fanger tricket, men
så er der sikkert nogle kvikke hoveder herinde, der har en ny løsning klar.

Udover det synes jeg, at pentas svar var sjovt:
> Lidt OT: Lav en falsk gæstebog som du sender dine øst-venner ind på.
> Så kan det være at de ikke opfinder nye måder at genere dig på.


Bertel Lund Hansen (10-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-12-07 00:27

Philip Nunnegaard skrev:

> Et menneske ser ikke feltet og udfylder det derfor heller ikke.

Så hvis det er mennesker der spammer, bliver de bare ved.

Hvis han laver feltet ikke-skjult og så skriver på dansk at det
ikke må udfyldes, så fanger han både botter og mennesker der ikke
forstår dansk.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Philip Nunnegaard (10-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 10-12-07 03:57

> Så hvis det er mennesker der spammer, bliver de bare ved.

Ja, nu jeg ganske vist forudsat, at det er robotter, der spammer.
Og det tror jeg nu også, at det vil være for det meste.
Ellers ville det koste for meget arbejde for spammersvinene.

Og er det så et menneske, kan man jo som supplement bruge min første metode
med at blokere udbydere fra udlandet.


Bertel Lund Hansen (10-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-12-07 09:29

Philip Nunnegaard skrev:

> Og er det så et menneske, kan man jo som supplement bruge min første metode
> med at blokere udbydere fra udlandet.

Så rammer man måske uskyldige danskere der er udstationeret.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Philip Nunnegaard (10-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 10-12-07 16:09

"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev
> Så rammer man måske uskyldige danskere der er udstationeret.

Det må jo så være op til den enkelte websmed, om han/hun vil betale den
pris.
Og jeg betaler gerne den pris for at slippe for at slette over 100
spamindlæg hver dag.
Og jeg HAR været oppe i det antal, indtil jeg så valgte at lave det, så alle
skulle logge ind på deres profiler for at kunne skrive.

En helt tredie mulighed er måske at lave en email-validering, hvor den der
skriver, modtager en email med et link, som der skal klikkes på for at gøre
indlægget synligt på siden. I dét link indgår der så et tilfældigt genereret
tal, så man *skal* have mailen for at kende den præcise aktiverings-URL.


Martin Højriis Krist~ (10-12-2007)
Kommentar
Fra : Martin Højriis Krist~


Dato : 10-12-07 20:57

"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i en meddelelse
news:475d5690$0$2087$edfadb0f@dtext02.news.tele.dk...
> En helt tredie mulighed er måske at lave en email-validering, hvor den der
> skriver, modtager en email med et link, som der skal klikkes på for at
> gøre indlægget synligt på siden. I dét link indgår der så et tilfældigt
> genereret tal, så man *skal* have mailen for at kende den præcise
> aktiverings-URL.

Er der ikke efterhånden botter der har regnet den ud?

--
Martin Højriis Kristensen
http://www.martinshjemmeside.dk/ - Lidt af hvert
http://www.mestomaarhus.dk/ - Mest om Århus



Philip Nunnegaard (11-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 11-12-07 06:56

"Martin Højriis Kristensen" <usenet@makr.dk> skrev i meddelelsen
news:475d9a21$0$15873$edfadb0f@dtext01.news.tele.dk...
>> En helt tredie mulighed er måske at lave en email-validering,
>
> Er der ikke efterhånden botter der har regnet den ud?

Tjaaahhh... Metoden er jo oldgammel, så det skulle ikke forbavse mig, hvis
de har.
På den anden side, så skal de scanne en hel email igennem for at finde det
rigtige.
Bevares! Det kan vel klares med noget regexp, men til gengæld er de tvunget
til at angive deres egen emailadresse for at få fingre i dén mail.


Bertel Lund Hansen (11-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-12-07 12:46

Philip Nunnegaard skrev:

> >> En helt tredie mulighed er måske at lave en email-validering,

> > Er der ikke efterhånden botter der har regnet den ud?

> Tjaaahhh... Metoden er jo oldgammel, så det skulle ikke forbavse mig, hvis
> de har.

Hvad i alverden skulle man lede efter i en mail for at kunne
konstatere at det er et krav om bekræftelse? Glem ikke f.eks.
sprogproblemerne.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Peter Brodersen (11-12-2007)
Kommentar
Fra : Peter Brodersen


Dato : 11-12-07 14:23

On Tue, 11 Dec 2007 12:46:17 +0100, Bertel Lund Hansen
<unospamo@lundhansen.dk> wrote:

>Hvad i alverden skulle man lede efter i en mail for at kunne
>konstatere at det er et krav om bekræftelse? Glem ikke f.eks.
>sprogproblemerne.

Ethvert link, måske - mange bekræftelsesmails kommer med et
færdigudfyldt link. Og lige som med almindelig spam, så kan det jo
være fint nok, hvis det kun lykkedes én ud af ti gange at få bekræftet
en konto.

Det virker dog måske bare som unødigt kompliceret at spammerne skulle
bruge tid på den slags endnu. Dog, er der fx tale om
standard-forum/blog-software kunne metoden måske give fin mening.

--
- Peter Brodersen
Kendt fra Internet

Leonard (10-12-2007)
Kommentar
Fra : Leonard


Dato : 10-12-07 09:51

On Mon, 10 Dec 2007 00:27:07 +0100, Bertel Lund Hansen wrote:

> Hvis han laver feltet ikke-skjult og så skriver på dansk at det
> ikke må udfyldes, så fanger han både botter og mennesker der ikke
> forstår dansk.

Selvom de ikke forstår dansk opdager de jo hurtigt, at indlægget ikke
kommer på og forsøger sig så bare frem med ikke at udfylde feltet.
Det er simpelt at undgå robotterne, det er svært at undgå mennesker, men
det er et meget mindre problem at slette menneskers indlæg manuelt. Det
skal man alligevel, for en gang imellem kommer en eller anden forstyrret
fantast forbi og poster et par sider sort snak.

--
Leonard
Mine biler: http://vw.leonard.dk/

Rune Jensen (15-12-2007)
Kommentar
Fra : Rune Jensen


Dato : 15-12-07 16:30

"Bertel Lund Hansen" skrev...
> Philip Nunnegaard skrev:
>
>> Et menneske ser ikke feltet og udfylder det derfor heller ikke.
>
> Så hvis det er mennesker der spammer, bliver de bare ved.

Tjah. Men det kan jo næsten kun undgås, hvis man selv accepterer alle indlæg
på f.eks. sit forum eller sin Blog. Jeg tror egentlig også botsne er et
større problem.


> Hvis han laver feltet ikke-skjult og så skriver på dansk at det
> ikke må udfyldes, så fanger han både botter og mennesker der ikke
> forstår dansk.

Du har en pointe ...læste et sted, at spambots leder direkte efter IDer, og
ikke som sådan fortolker HTMLen. Forslaget var derfor, at man lægger skjulte
felter i en HTML-remark, som man tjekker op på serverside. Det rammer så
udelukkende (dumme) botter. Jeg kan se på min statistik, at visse bots
forsøger sig frem, og ikke udfylder alle felter, så 100% er den nok
alligevel ikke.


MVH
Rune Jensen



Karl Erik Christense~ (10-12-2007)
Kommentar
Fra : Karl Erik Christense~


Dato : 10-12-07 16:56

Den Mon, 10 Dec 2007 09:28:39 +0100 skrev Bertel Lund Hansen:

> Så rammer man måske uskyldige danskere der er udstationeret.

Hvor kan man få meget tid til at gå med hvis og hvis.
Medens man sidder og udtænker teoretiske spisfindtligheder dratter
fluerne døde om.

--
Med venlig hilsen
Karl Erik Christensen

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste