/ 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
Fra : Søren


Dato : 30-10-07 23:03

Hej ng..

Kan man blokere brugere/ robotter fra udlandet, som laver spam på ens side..

Ønsker kun at danskere skal have adgang til min side..

Mvh Søren



 
 
Martin Ploug (31-10-2007)
Kommentar
Fra : Martin Ploug


Dato : 31-10-07 00:11

Søren skrev:
> Hej ng..
>
> Kan man blokere brugere/ robotter fra udlandet, som laver spam på ens side..
>
> Ønsker kun at danskere skal have adgang til min side..
>
> Mvh Søren
>
>
>
Hej Søren

Hvis du har en formular, hvor noget bliver indtastet af brugere og derefter
bliver vist på din side, kan du indsætte et ekstra felt i formularen.

I php'en i den side, hvor du har action laver du en validering der tjekker,
om det der er indtastet i det ekstra felt er korrekt.

I forummet på kimludvigsen.dk er der er lavet sådan et lille php tjek.
http://kimludvigsen.dk/phpbb2/posting.php?mode=newtopic&f=2

Jeg har selv brugt fidusen i en gæstebog, og det fungerer upåklageligt.

Jeg har måske helt misforstået dit spørgsmål.

Mvh. Martin

N/A (31-10-2007)
Kommentar
Fra : N/A


Dato : 31-10-07 08:22



Dan Storm (31-10-2007)
Kommentar
Fra : Dan Storm


Dato : 31-10-07 08:22

Joergen skrev:
> hej
>
> Kan han ikke ændre chmod, der står sikker 777
>
> Jørgen

??

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Joergen (31-10-2007)
Kommentar
Fra : Joergen


Dato : 31-10-07 22:38


"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
news:47282d36$0$15884$edfadb0f@dtext01.news.tele.dk...
> Joergen skrev:
>> hej
>>
>> Kan han ikke ændre chmod, der står sikker 777
>>
>> Jørgen
>
> ??
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> Tro ikke brugerne vil gøre noget for at undgå dit killfilter
> - Så vigtig er du heller ikke!

Dan

Jeg forstår ikke dit svar



Dan Storm (01-11-2007)
Kommentar
Fra : Dan Storm


Dato : 01-11-07 06:54

Joergen skrev:
>>> Kan han ikke ændre chmod, der står sikker 777

> Jeg forstår ikke dit svar

Jeg forstår heller ikke dit.
Trådstarter har problemer med robotter der laver spam på hans website.
Hvad er det så han skal chmodde til 777? Og hvad ville det hjælpe?

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

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


Dato : 31-10-07 09:27

> Kan man blokere brugere/ robotter fra udlandet, som laver spam på ens
> side..
>
> Ønsker kun at danskere skal have adgang til min side..

Jeg hælder lidt til Martins løsning eller dén løsning, som andre har
foreslået med et skjult felt, der ikke skal udfyldes (ved godt, at det kun
er et spørgsmål om tid, før spammersvinene finder ud af dét også), men hvis
du er helt sikker på, at du kun vil have danskere indenbords, så kan du
bruge HTTP_ACCEPT_LANGUAGE.
Det blokerer ikke alle udlændinge, men det blokerer da for alle, der ikke
har dansk som hovedsprog på computeren.

I den fil, der gemmer informationerne fra din formular, laver du et tjek a
la:

if(substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2) == "da") {
(...) indsæt informationerne i databasen (...)
}

I ovennævnte kode har jeg valgt de første 2 tegn fra den værdi, der kommer
af HTTP_ACCEPT_LANGUAGE.


Johan Holst Nielsen (31-10-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 31-10-07 15:37

Philip Nunnegaard wrote:
> if(substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2) == "da") {
> (...) indsæt informationerne i databasen (...)
> }
>
> I ovennævnte kode har jeg valgt de første 2 tegn fra den værdi, der
> kommer af HTTP_ACCEPT_LANGUAGE.

Hvilket så f.eks. ville udelukke mig...

Hvis man vil ud og selektere mellem sine brugere bør man gøre det via
noget IP2Country database - problemet er så hvis den ikke er opdateret -
eller ens ip af en eller anden årsag ikke er korrekt i databasen.

En gratis ip til land database kan findes her:
http://ip-to-country.webhosting.info/

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

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


Dato : 31-10-07 19:48

> Hvilket så f.eks. ville udelukke mig...

Det er så en vurdering, Søren må have med i sine overvejelser.
Af samme grund ville jeg også sværge til løsningen med at have et skjult
felt (altså skjult via css), der ikke måtte udfyldes.
Skulle spamrobotterne så en dag finde ud af dét smuthul, sidder der sikkert
nogle her i nyhedsgrupperne klar med nye løsninger.


Søren (02-11-2007)
Kommentar
Fra : Søren


Dato : 02-11-07 17:01

Hejsa..

Tak for alle de gode råd

Tror jeg hælder til det med, skjult felt.. Men hvordan ser dette script ud?

Mvh Søren



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


Dato : 02-11-07 17:18

> Tror jeg hælder til det med, skjult felt.. Men hvordan ser dette script
> ud?

Noget i retning af:

<input type="text" name="subject" class="larstyndskid" />
Bemærk, at jeg med vilje har kaldt feltet noget, der giver mening på
engelsk.


I css-filen skriver du så:

..larstyndskid {
display:none;
}

Har du ikke nogen ekstern css-fil, tager vi den lige oppe mellem <head> og
</head>:

<style type="text/css">
<!---
..larstyndskid {
display:none;
}
-->
</style>

Jeg fristes dog til at tro, at det er nemmere for en robot at scanne tricket
her, end hvis det ligger i en ekstern css-fil, men af andre indlæg her i
gruppen kan jeg dog forstå, at ovenstående er sikkert nok lidt endnu.


Søren (02-11-2007)
Kommentar
Fra : Søren


Dato : 02-11-07 17:23


"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i en meddelelse
news:472b4ddc$0$2095$edfadb0f@dtext02.news.tele.dk...
>> Tror jeg hælder til det med, skjult felt.. Men hvordan ser dette script
>> ud?
>
> Noget i retning af:
>
> <input type="text" name="subject" class="larstyndskid" />
> Bemærk, at jeg med vilje har kaldt feltet noget, der giver mening på
> engelsk.
>
>
> I css-filen skriver du så:
>
> .larstyndskid {
> display:none;
> }
>
> Har du ikke nogen ekstern css-fil, tager vi den lige oppe mellem <head> og
> </head>:
>
> <style type="text/css">
> <!---
> .larstyndskid {
> display:none;
> }
> -->
> </style>
>
> Jeg fristes dog til at tro, at det er nemmere for en robot at scanne
> tricket her, end hvis det ligger i en ekstern css-fil, men af andre indlæg
> her i gruppen kan jeg dog forstå, at ovenstående er sikkert nok lidt
> endnu.

.............

Mange tak . Prøver lige

Mvh Søren



Søren (02-11-2007)
Kommentar
Fra : Søren


Dato : 02-11-07 19:30


"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i en meddelelse
news:472b4ddc$0$2095$edfadb0f@dtext02.news.tele.dk...
>> Tror jeg hælder til det med, skjult felt.. Men hvordan ser dette script
>> ud?
>
> Noget i retning af:
>
> <input type="text" name="subject" class="larstyndskid" />
> Bemærk, at jeg med vilje har kaldt feltet noget, der giver mening på
> engelsk.
>
>
> I css-filen skriver du så:
>
> .larstyndskid {
> display:none;
> }
>
> Har du ikke nogen ekstern css-fil, tager vi den lige oppe mellem <head> og
> </head>:
>
> <style type="text/css">
> <!---
> .larstyndskid {
> display:none;
> }
> -->
> </style>
>
> Jeg fristes dog til at tro, at det er nemmere for en robot at scanne
> tricket her, end hvis det ligger i en ekstern css-fil, men af andre indlæg
> her i gruppen kan jeg dog forstå, at ovenstående er sikkert nok lidt
> endnu.


Øv.. Åbenbart ikke noget jeg kan finde ud af, øv..

Søren



Erik Ginnerskov (07-11-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 07-11-07 21:29

Søren wrote:

> Øv.. Åbenbart ikke noget jeg kan finde ud af, øv..

Hvad er det, du ikke kan finde ud af, at lave det skjulte felt eller at
tjekke om der er skrevet i det?

Philip beskrev det første ret godt, her er det andet - indsæt det øverst i
det php-script, der modtager data fra formularen:

# er der trykket på "Send" ?
if (isset($_POST['submit'])) {

# er der skrevet i feltet "subject" - det er ikke tomt?
if (!empty($_POST['subject'])) {
header ("Location: blokeret.php");
exit;
}

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Søren (08-11-2007)
Kommentar
Fra : Søren


Dato : 08-11-07 18:21


"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:47321fe8$0$90265$14726298@news.sunsite.dk...
> Søren wrote:
>
>> Øv.. Åbenbart ikke noget jeg kan finde ud af, øv..
>
> Hvad er det, du ikke kan finde ud af, at lave det skjulte felt eller at
> tjekke om der er skrevet i det?
>
> Philip beskrev det første ret godt, her er det andet - indsæt det øverst i
> det php-script, der modtager data fra formularen:
>
> # er der trykket på "Send" ?
> if (isset($_POST['submit'])) {
>
> # er der skrevet i feltet "subject" - det er ikke tomt?
> if (!empty($_POST['subject'])) {
> header ("Location: blokeret.php");
> exit;
> }

Hej.

Jamen det er både at sætte det skjulte felt ind, og hvor..
Og også lige med at finde den side der modtager data

Mvh Søren



Mikkel Z. Herold (08-11-2007)
Kommentar
Fra : Mikkel Z. Herold


Dato : 08-11-07 23:24

On 08-11-2007 18:20 Søren wrote:
> Jamen det er både at sætte det skjulte felt ind, og hvor..

Okay. Du har i din kode et <form>-tag. Det markerer, hvor formularen
starter. Den slutter igen der hvor der står "</form>".

Du skal indsætte det skjulte felt et eller andet sted imellem disse to
tags - det er næsten ligemeget hvor, bare det står før "</form>".

Her er et lille eksempel:

<form method="post" action="send.php">
<input type="text" name="tekstfelt_1" size="30">
<input type="text" name="tekstfelt_2" size="30" style="display: none;">
<input type="submit" value="Tryk her for at sende">
</form>

I ovenstående eksempel ser brugeren kun det øverste af de to tekstfelter
(tekstfelt_1), da det andet er skjult med css.

> Og også lige med at finde den side der modtager data

Ja, metoden kan kun benyttes, hvis du har adgang til det script, der
modtager dataene fra formularen!

I ovenstående eksempel er det en fil, der hedder "send.php", der
modtager og behandler dataene.

Navnet på den fil, der skal behandle dataene står i det første form-tag,
nærmere bestemt i action-parametren. Du skal altså kigge på din kode og
se, hvad der står efter "action=" - det er den fil du skal have fat i.

Forudsat, at du har adgang til filen, er her en lille kodestump, der med
php tjekker, om det skjulte felt er udfyldt og sender videre til en ny
side, hvis det er:

<?php
if (!empty($_POST['tekstfelt_2'])) {
//Send videre til spam-side
header("location: blokeret.html");
die();
} else {
// Herunder skal du indsætte koden, der behandler dataene, hvis det
// skjulte felt *ikke* er udfyldt

}
?>

Det vigtigste i første omgang er at finde ud af, om du har adgang til
scriptfilen der modtager data, og hvilken teknologi den benytter (php,
asp, cgi).

Mvh. Mikkel

--
"But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

www.mzh.dk

Søren (09-11-2007)
Kommentar
Fra : Søren


Dato : 09-11-07 13:57


"Mikkel Z. Herold" <mikkel@[remove_this]mzh.dk> skrev i en meddelelse
news:47338c8c$0$12265$ba624c82@nntp06.dk.telia.net...
> On 08-11-2007 18:20 Søren wrote:
>> Jamen det er både at sætte det skjulte felt ind, og hvor..
>
> Okay. Du har i din kode et <form>-tag. Det markerer, hvor formularen
> starter. Den slutter igen der hvor der står "</form>".
>
> Du skal indsætte det skjulte felt et eller andet sted imellem disse to
> tags - det er næsten ligemeget hvor, bare det står før "</form>".
>
> Her er et lille eksempel:
>
> <form method="post" action="send.php">
> <input type="text" name="tekstfelt_1" size="30">
> <input type="text" name="tekstfelt_2" size="30" style="display: none;">
> <input type="submit" value="Tryk her for at sende">
> </form>
>
> I ovenstående eksempel ser brugeren kun det øverste af de to tekstfelter
> (tekstfelt_1), da det andet er skjult med css.
>
>> Og også lige med at finde den side der modtager data
>
> Ja, metoden kan kun benyttes, hvis du har adgang til det script, der
> modtager dataene fra formularen!
>
> I ovenstående eksempel er det en fil, der hedder "send.php", der modtager
> og behandler dataene.
>
> Navnet på den fil, der skal behandle dataene står i det første form-tag,
> nærmere bestemt i action-parametren. Du skal altså kigge på din kode og
> se, hvad der står efter "action=" - det er den fil du skal have fat i.
>
> Forudsat, at du har adgang til filen, er her en lille kodestump, der med
> php tjekker, om det skjulte felt er udfyldt og sender videre til en ny
> side, hvis det er:
>
> <?php
> if (!empty($_POST['tekstfelt_2'])) {
> //Send videre til spam-side
> header("location: blokeret.html");
> die();
> } else {
> // Herunder skal du indsætte koden, der behandler dataene, hvis det
> // skjulte felt *ikke* er udfyldt
>
> }
> ?>
>
> Det vigtigste i første omgang er at finde ud af, om du har adgang til
> scriptfilen der modtager data, og hvilken teknologi den benytter (php,
> asp, cgi).
>
> Mvh. Mikkel
>
Mange tak.. vil jeg lige prøve

Mvh Søren



Erik Ginnerskov (31-10-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-10-07 22:10

Johan Holst Nielsen wrote:

> Hvis man vil ud og selektere mellem sine brugere bør man gøre det via
> noget IP2Country database

Det vil udelukke hæderlige danskere, der pt. ikke er bosat i Danmark og
derfor ikke har et dansk IP.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Johan Holst Nielsen (01-11-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 01-11-07 08:59

Erik Ginnerskov wrote:
> Johan Holst Nielsen wrote:
>
>> Hvis man vil ud og selektere mellem sine brugere bør man gøre det via
>> noget IP2Country database
>
> Det vil udelukke hæderlige danskere, der pt. ikke er bosat i Danmark og
> derfor ikke har et dansk IP.

Helt enig - jeg er generelt imod at udelukke personer på baggrund af IP
- med mindre det er intra eller extranet systemer.

En IP2Country er dog det mest optimale HVIS man ønsker det...
alternativt kan man lave en kombination af IP2Country og accept language.

Altså hvis IP er dansk ELLER sprog er sat til dansk - så ok -
alternativt smut hjem ;)

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste