/ 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
Automatisk spærre for IP-adresser
Fra : Lasse Hedegaard


Dato : 29-11-05 22:11

Der er nogle spammere, der har forsøgt at misbruge simlock.dk til at
sende spam (via diverse formular-hacks). Jeg har spærret for en masse
IP-adresser via .htaccess, men de har tilsyneladende adgang til rigtig
mange maskiner.

Jeg har lavet et simpelt system, der automagisk finder ud af, når der
er en der forsøger at sende spam. Jeg får en mail om det, og kan så
selv spærre for IP-adressen (i .htaccess).

Det er dog lidt besværligt, at skulle gøre det manuelt. Hvordan kan
jeg nemt lave et system, der tilføjer IP-adressen til listen over dem
der skal have kastet en 403er i hovedet?

Spammerne kan ikke sende spam, men jeg vil stadig gerne have, at de
får en 403er i hovedet, i stedet for bare at blive ved med at kigge
efter huller.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

 
 
Henrik Stidsen (29-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 29-11-05 22:43

Lasse Hedegaard wrote on 29-11-2005 :
> Det er dog lidt besværligt, at skulle gøre det manuelt. Hvordan kan
> jeg nemt lave et system, der tilføjer IP-adressen til listen over dem
> der skal have kastet en 403er i hovedet?

Er det ikke nemmere at sikre din formular istedet ? evt. lave noget
hacks med <input> navne eller lign.

--
Henrik Stidsen - http://henrikstidsen.dk/



Lasse Hedegaard (30-11-2005)
Kommentar
Fra : Lasse Hedegaard


Dato : 30-11-05 00:24

On Tue, 29 Nov 2005 22:43:13 +0100, "Henrik Stidsen"
<nntpspam@hs235.dk> wrote:

>Er det ikke nemmere at sikre din formular istedet ?

De er sikre (indtil videre), jeg skrev: Spammerne kan ikke sende spam.

>evt. lave noget hacks med <input> navne eller lign.

Hvad tænker du på?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

Henrik Stidsen (30-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 30-11-05 01:54

After serious thinking Lasse Hedegaard wrote :
>> Er det ikke nemmere at sikre din formular istedet ?

> De er sikre (indtil videre), jeg skrev: Spammerne kan ikke sende spam.

Hmm, sorry, den fangede jeg ikke lige :)

Men, hvis du vil give dem en 403 kan du vel blot tilføje IP'en til
..htaccess istedet for at sende en mail ?

I PHP er det noget med at åbne filen i append mode, tilføje linien Deny
from <ip> og så lukke igen.

$fp = fopen(".htaccess", "a");
fwrite($fp, "Deny from xxx.xxx.xxx.xxx\n\r");
fclose($fp);

Tilpas, tilføj lidt fejlcheck og lign sjove ting - utestet og på eget
ansvar :)

--
Henrik Stidsen - http://henrikstidsen.dk/



Lasse Hedegaard (30-11-2005)
Kommentar
Fra : Lasse Hedegaard


Dato : 30-11-05 03:11

On Wed, 30 Nov 2005 01:54:12 +0100, "Henrik Stidsen"
<nntpspam@hs235.dk> wrote:

>Men, hvis du vil give dem en 403 kan du vel blot tilføje IP'en til
>.htaccess istedet for at sende en mail ?

Det er jo præcis det jeg vil.

>I PHP er det noget med at åbne filen i append mode, tilføje linien Deny
>from <ip> og så lukke igen.
>
>$fp = fopen(".htaccess", "a");
>fwrite($fp, "Deny from xxx.xxx.xxx.xxx\n\r");
>fclose($fp);
>
>Tilpas, tilføj lidt fejlcheck og lign sjove ting - utestet og på eget
>ansvar :)

Det nederste af min .htaccess ser ud som herunder, hvordan får jeg det
ordnet, så de to nederste linier bliver forneden?

<Files "*.php">
allow from all
deny from xxx.xxx.xxx.xxx
...
deny from xxx.xxx.xxx.xxx
order Allow,Deny
</Files>

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

Martin (30-11-2005)
Kommentar
Fra : Martin


Dato : 30-11-05 06:30

Lasse Hedegaard wrote:
> On Wed, 30 Nov 2005 01:54:12 +0100, "Henrik Stidsen"
> <nntpspam@hs235.dk> wrote:
>
>> Men, hvis du vil give dem en 403 kan du vel blot tilføje IP'en til
>> .htaccess istedet for at sende en mail ?
>
> Det er jo præcis det jeg vil.
>
>> I PHP er det noget med at åbne filen i append mode, tilføje linien Deny
>>from <ip> og så lukke igen.
>> $fp = fopen(".htaccess", "a");
>> fwrite($fp, "Deny from xxx.xxx.xxx.xxx\n\r");
>> fclose($fp);
>>
>> Tilpas, tilføj lidt fejlcheck og lign sjove ting - utestet og på eget
>> ansvar :)
>
> Det nederste af min .htaccess ser ud som herunder, hvordan får jeg det
> ordnet, så de to nederste linier bliver forneden?
>
> <Files "*.php">
> allow from all
> deny from xxx.xxx.xxx.xxx
> ...
> deny from xxx.xxx.xxx.xxx
> order Allow,Deny
> </Files>

Det jeg ville gøre er simpelthen at loade hele filen ind i en php
variabel. (1)

Så fjerner du alt foruden dine IP-adresser (2)

Så skulle du gerne kun have en masse

deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx

tilbage

også tilføjer du simpelthen en linje til i variablen
deny from ny.ip.adresse

og til sidst tilføjer du så resten af tingene til variablen, så skulle
du gerne ende med:

<Files "*.php">
allow from all
$ip-adresse-streng
order Allow,Deny
</Files>

så skriver du det hele til .htaccess filen med (3)


(1) = <http://dk2.php.net/manual/en/function.file-get-contents.php>
(2) = <http://dk2.php.net/str_replace>
(3) = <http://dk2.php.net/manual/en/function.file-put-contents.php>

>
> Venligst,
> Lasse Hedegaard
>

--

Venlig hilsen
Martin


Henrik Stidsen (30-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 30-11-05 15:44

Lasse Hedegaard presented the following explanation :
> Det nederste af min .htaccess ser ud som herunder, hvordan får jeg det
> ordnet, så de to nederste linier bliver forneden?

> <Files "*.php">
> allow from all
> deny from xxx.xxx.xxx.xxx
> ...
> deny from xxx.xxx.xxx.xxx
> order Allow,Deny
> </Files>

Du kan gøre som Martin foreslår, eller du kan markere med en kommentar
i filen hvor din næste deny skal stå:

<Files "*.php">
allow from all
deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx
# INDSÆT NY DENY HER
order Allow,Deny
</Files>

Så kan du indlæse .htaccess med file(".htaccess"). Den returnerer et
array af linier fra filen.

For at indsætte den nye IP løber du filen igennen i en løkke:

$nydata = "";

foreach($gammel as $linie)
{
if($linie = "# INDSÆT NY DENY HER")
{
$nydata .= "DENY FROM xxx.xxx.xxx.xxx";
$nydata .= "# INDSÆT NY DENY HER";
}
else
{
$nydata = $linie;
}
}

$nydata skriver du så blot til din .htaccess fil som du har åbnet med
fopen(".htaccess", "w") (med w slettes alt indhold og der skrives fra
begyndelsen af filen).

Som altid, på eget ansvar :)

--
Henrik Stidsen - http://henrikstidsen.dk/



Peter Brodersen (30-11-2005)
Kommentar
Fra : Peter Brodersen


Dato : 30-11-05 14:59

On Tue, 29 Nov 2005 22:11:25 +0100, Lasse Hedegaard <laxxe@nospam.dk>
wrote:

>Spammerne kan ikke sende spam, men jeg vil stadig gerne have, at de
>får en 403er i hovedet, i stedet for bare at blive ved med at kigge
>efter huller.

Det er en whack-a-mole-jagt. Jeg oplever, at de løbende skifter
ip-adresser, ligesom alle andre i spambranchen, så det eneste, man
reelt får blokeret for, er ofrene for maskiner, der har været
overtaget (og som måske er blevet omkonfigureret/geninstalleret i
mellemtiden eller har skiftet ny kunde).

Angrebet er beskrevet en del andre steder (de prøver at tilføje en
newline direkte i mailheaders og så tilføje ekstra adresser her og
springe ud i body'en). Men det virker som om, de blot prøver med en
tilfældig adresse under det aktuelle domæne, og så skiftevis ét ekstra
felt, hvor de prøver at hælde det ekstra output ind.

Enkelte steder har jeg kigget efter "Content-Type" i antagelsen af at
brugeren ikke har indtastet det.

En anden mulighed kan bestå i at have hidden-felter og tjekke at der
ikke er rettet i dem, ud fra tanken om at de blot prøver at fixe med
samtlige input-felter og ikke efterlader indholdet.

Endnu en mulighed er at lave en ændringen i formen ved submit med
javascript og så tjekke efter den ændring. Det er nok den mest sikre i
forhold til robotter.

... og ja, uanset om det lykkedes for dem eller ej, er det irriterende.

--
- Peter Brodersen

Henrik Stidsen (30-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 30-11-05 15:47

Peter Brodersen wrote on 30-11-2005 :
> Det er en whack-a-mole-jagt. Jeg oplever, at de løbende skifter
> ip-adresser, ligesom alle andre i spambranchen, så det eneste, man
> reelt får blokeret for, er ofrene for maskiner, der har været
> overtaget (og som måske er blevet omkonfigureret/geninstalleret i
> mellemtiden eller har skiftet ny kunde).

Det er også min erfaring - jeg havde en overgang blokeret over
63.000.000 ip adresser og ikke en eneste gang kom en af dem tilbage
igen efter at have afleveret en masse spam i mine kommentarfelter. Men
jeg tror nu alligevel at hvis man gør det automatisk så kan man måske
undgå at de leverer mere end 1 spam og altså undgå et par spam.

--
Henrik Stidsen - http://henrikstidsen.dk/



Lasse Hedegaard (30-11-2005)
Kommentar
Fra : Lasse Hedegaard


Dato : 30-11-05 16:42

On Wed, 30 Nov 2005 15:46:43 +0100, "Henrik Stidsen"
<nntpspam@hs235.dk> wrote:

>Det er også min erfaring - jeg havde en overgang blokeret over
>63.000.000 ip adresser og ikke en eneste gang kom en af dem tilbage
>igen efter at have afleveret en masse spam i mine kommentarfelter.

Jeg har masser af gengangere - ellers havde det været helt forgæves.

>Men jeg tror nu alligevel at hvis man gør det automatisk så kan man måske
>undgå at de leverer mere end 1 spam og altså undgå et par spam.

Den metode jeg bruger her, skulle gerne få spærret for dem, inden de
når at sende så meget som en enkelt bit spam.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

Henrik Stidsen (30-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 30-11-05 17:02

After serious thinking Lasse Hedegaard wrote :

> Den metode jeg bruger her, skulle gerne få spærret for dem, inden de
> når at sende så meget som en enkelt bit spam.

Held og lykke med projektet så :)

--
Henrik Stidsen - http://henrikstidsen.dk/



Lasse Hedegaard (30-11-2005)
Kommentar
Fra : Lasse Hedegaard


Dato : 30-11-05 16:41

On Wed, 30 Nov 2005 14:58:32 +0100, Peter Brodersen
<usenet2005@ter.dk> wrote:

>Det er en whack-a-mole-jagt. Jeg oplever, at de løbende skifter
>ip-adresser, ligesom alle andre i spambranchen, så det eneste, man
>reelt får blokeret for, er ofrene for maskiner, der har været
>overtaget (og som måske er blevet omkonfigureret/geninstalleret i
>mellemtiden eller har skiftet ny kunde).

Jeg er klar over det, men simlock.dk henvender sig (endnu) kun til
danskere, og der har ikke været én eneste dansk IP-adresse blandt.

>Angrebet er beskrevet en del andre steder (de prøver at tilføje en
>newline direkte i mailheaders og så tilføje ekstra adresser her og
>springe ud i body'en). Men det virker som om, de blot prøver med en
>tilfældig adresse under det aktuelle domæne, og så skiftevis ét ekstra
>felt, hvor de prøver at hælde det ekstra output ind.
>
>Enkelte steder har jeg kigget efter "Content-Type" i antagelsen af at
>brugeren ikke har indtastet det.

Det er også en del af mit tjek (jeg ser også efter
$_SERVER['HTTP_USER_AGENT'] - som ofte er tom, når spammerne kommer på
besøg).

>En anden mulighed kan bestå i at have hidden-felter og tjekke at der
>ikke er rettet i dem, ud fra tanken om at de blot prøver at fixe med
>samtlige input-felter og ikke efterlader indholdet.

Jeg er ikke sikker på, at det vil holde.

>Endnu en mulighed er at lave en ændringen i formen ved submit med
>javascript og så tjekke efter den ændring. Det er nok den mest sikre i
>forhold til robotter.

Det kræver så, at brugerne har javascript aktiveret.

>.. og ja, uanset om det lykkedes for dem eller ej, er det irriterende.

Ja tak!

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

Kasper Johansen (30-11-2005)
Kommentar
Fra : Kasper Johansen


Dato : 30-11-05 17:14

"Lasse Hedegaard" <laxxe@nospam.dk> skrev i en meddelelse
news:vpgpo1t9635962mjq3mbtaap0fia54thj0@4ax.com...
> Spammerne kan ikke sende spam, men jeg vil stadig gerne have, at de
> får en 403er i hovedet, i stedet for bare at blive ved med at kigge
> efter huller.

Først og fremmest ville det være en fordel, hvis du lige smed dine IP'ere
ind i en db (f.eks. MySQL).


<?
$query = mysql_query("SELECT ip FROM banned WHERE ip =
'$_SERVER[REMOTE_ADDR]' LIMIT 0,1") or die(mysql_error());
$data = mysql_fetch_assoc($query);

if ($data){
header("403-lalala");
exit();
}
?>


Du kan også lave et system, der automatisk smider deres IP i db'en sådan:

<?
mysql_query("INSERT INTO banned (ip) VALUES ('$_SERVER[REMOTE_ADDR]')") or
die(mysql_error());
?>


Det ville efter mening være den letteste løsning (hvis du vil automatisere
jobs, samt give 403-headers).


--
Med venlig hilsen
Kasper Johansen



Henrik Stidsen (30-11-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 30-11-05 19:25

It happens that Kasper Johansen formulated :
> Det ville efter mening være den letteste løsning (hvis du vil automatisere
> jobs, samt give 403-headers).

Problemet opstår sådan dag han vil udvide det til at gælde andet end
PHP scripts.

--
Henrik Stidsen - http://henrikstidsen.dk/



Kasper Johansen (01-12-2005)
Kommentar
Fra : Kasper Johansen


Dato : 01-12-05 12:33

"Henrik Stidsen" <nntpspam@hs235.dk> skrev i en meddelelse
news:mn.f48c7d5b00c8874d.34878@news.hs235.dk...
> Problemet opstår sådan dag han vil udvide det til at gælde andet end PHP
> scripts.

Nu spurgte han jo sådan set i PHP-gruppen.

Men ja, der opstår et problem den dag, han vælger et webhotel, der ikke har
PHP/MySQL understøttet (set i forhold til mit forslag).

--
Med venlig hilsen
Kasper Johansen



Lasse Hedegaard (01-12-2005)
Kommentar
Fra : Lasse Hedegaard


Dato : 01-12-05 14:54

On Thu, 1 Dec 2005 12:33:13 +0100, "Kasper Johansen"
<kasper@johansen.tdcadsl.dk> wrote:

>Nu spurgte han jo sådan set i PHP-gruppen.

Det er et PHP-script der skal udføre opgaven med få spærret for de
pågældende IP-adressen, men jeg ønsker (selvfølgelig) spærret for alle
filer.

>Men ja, der opstår et problem den dag, han vælger et webhotel, der ikke har
>PHP/MySQL understøttet (set i forhold til mit forslag).

Jeg benytter nu en afart at Henrik forslag - tak til jer alle...

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock!

Alle udgaver af Sony Ericsson Z800i låses op
- og nej, din telefon skal ikke skilles ad...

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste