spambots in gastenboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Timothy van wilpen

timothy van wilpen

26/08/2014 17:29:21
Quote Anchor link
Hey mensen ,

heb een simpele gastenboek, zonder sql .
maar sinds enkele weken heb ik spambots op me site
Ik heb geprobeert ipbans via .Htacces te geven.
maar omdat ze telkens proxy's pakken maakt dat dus niet uit:)

nu ben ik bezig met een vraag die ze moeten invullen waar maar 1 goede antwoord voor is
maar helaas werkt het niet naar behoren
zonder intevullen kunnen ze gewoon posten

heb deze topic ook op andere forum geplaats
maar daar nog geen hulp gehad

hier mijn script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
 
 $amount
=15;

  if ($_GET['action']=='write') {
      header('location: gb.php?action=read&start=0');
    $file=fopen('gastenboek.txt','a');

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_GET['message']);
    fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y').'|||'.$_GET['url'].'|||'.$message."\n");
    fclose($file);
    
  }


  $start=(isset($_GET['start'])?$_GET['start']:0);
  $gastenboek=Array();
  $gastenboek=file('gastenboek.txt');

?>


 <SCRIPT language="JavaScript">
    function validate(form) {
      if (form.name.value=="") {
        alert("Vul je naam in");
        return false;
      } else if (form.message.value=="") {
        alert("Vul je bericht in");
        return false;
      }
    }


if (isset($antispam == '8') or ($antispam == 'acht')) {
echo $content=eregi_replace("<!--beginning-->", "<!--beginning-->$message", $content);
}
    </SCRIPT>
    
 
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD><b>Ik zou het leuk vinden als je een berichtje achter laat in het gastenboek.</b><br></TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0">
    <TR>
      <TD class="side"> Berichten <? echo $start+1; ?> tot en met <? echo min($start+$amount,sizeof($gastenboek)); ?>.
        <HR> <TABLE width="100%" >
          <?
          $gastenboek
=array_reverse($gastenboek);
          for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) {
            list($name,$email,$date,$url,$message)=explode('|||',$gastenboek[$i]);
            $message=str_replace('{{',"\n",$message);
            echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD

align="right"><B>'
.$date.'</B></TD></TR>'."\n";
            echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
            echo '<TR><TD colspan="2"><SPAN>'.str_replace("\n",'<BR>',htmlspecialchars

($message)).'</SPAN></TD></TR>'."\n";
            echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
          }

        ?>

        </TABLE>
        <CENTER>
          <?
          if ($start>0) echo '<A href="gb.php?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gb.php?start='.($start+$amount).'">>>></A>';
        ?>
   </CENTER></TD>
    </TR>
  </TABLE>
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side">Nieuw bericht</TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side"> <FORM action="gb.php" method="GET" onSubmit="return validate(this);">
          <INPUT type="hidden" name="action" value="write">
          <TABLE class="side">
            <TR>
              <TD>Naam:</TD>
              <TD><INPUT type="text" name="name" size="30"></TD>
            </TR>
            <TR>
              <TD>E-Mail:</TD>
              <TD><INPUT type="text" name="email" size="30">
                <font color="#f19028">(optioneel)</font></TD>
            </TR>
            <TR>
              <TD>Homepage:</TD>
              <TD><INPUT name="url" type="text" value="http://" size="30">
                <font color="#f19028">(optioneel)</font></TD>
            </TR>
            <TR>
              <TD>Bericht:</TD>
              <TD><TEXTAREA name="message" cols="50" rows="5"></TEXTAREA></TD>
            </TR>
          </TABLE>


Anti-spam code: hoeveel is zes plus twee? <input type="text" name="antispam" size="3">
<input type="submit" name="email_submit" value="submit" ?>

</form>
</form>

<p>

</FORM></TD>
</TR>
</TABLE>
Gewijzigd op 26/08/2014 17:59:24 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

18/04/2024 04:17:54
 
Jordy xxx

Jordy xxx

26/08/2014 17:42:24
Quote Anchor link
kan je code niet lezen je hebt de tags verkeerd.

Toevoeging op 26/08/2014 17:44:52:

een input maken met de text er in?

<INPUT name="code" type="text" value="antispam code" size="30">
Gewijzigd op 26/08/2014 17:42:46 door Jordy xxx
 
Timothy van wilpen

timothy van wilpen

26/08/2014 17:53:58
Quote Anchor link
Jordy xxx staat erachter al <input type="text" name="antispam" size="3">
 
- Ariën  -
Beheerder

- Ariën -

26/08/2014 18:30:18
Quote Anchor link
In mijn ogen blijven die spammers in gastenboeken net virussen. Ze blijven zich steeds muteren om hun spam in je gastenboekje te dumpen. En ook werken ze nog eens via botnets, waardoor ze een oneindig aantal IP-adressen voor dit doeleinde kunnen misbruiken.

Ikzelf heb ooit eens een vangnet ingebouwd om een checkbox te maken, en die een style="display:none" mee te geven. Indien deze aangevinkt is, wat veel botjes doen, dan loopt het script dood. Als deze niet is aangevinkt (want een normaal mens ziet die checkbox niet) dan gaat het script gewoon door en wordt het bericht in het gastenboek geplaatst.

Het valt te proberen, maar het is de vraag of het effectief blijft. Anders is een CAPTCHA-code iets wat je kan overwegen. Of misschien anders AKISMET gebruiken, deze pikt de spam er tussen uit, alleen is deze voor commerciële doeleinden betaald, wel betaalbaar gelukkig.
Gewijzigd op 26/08/2014 19:05:42 door - Ariën -
 
Timothy van wilpen

timothy van wilpen

26/08/2014 20:00:47
Quote Anchor link
Zou je mischien zo een box in mijn script kunnen verwerken kijken of dat werkt :$?
 
- Ariën  -
Beheerder

- Ariën -

26/08/2014 20:38:44
Quote Anchor link
bouw een checkbox in je formulier, en maak die ontzichtbaar.
Kijk met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_POST['human_check'])) {
die();
}

?>


Voor de mensen die zich afvragen waarom mijn script dood gaat. De gebruiker ziet er toch niks van, en een bot maakt het niks uit dat de layout afgekapt zal worden door een die();
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

26/08/2014 21:01:21
Quote Anchor link
Ik redirect bots altijd naar de NSA (in de ijdele hoop dat ze daar van schrikken)
 
Timothy van wilpen

timothy van wilpen

26/08/2014 21:30:23
Quote Anchor link
ik heb nu zeg maar vraag ingebouwd maar hij werkt niet :(
en wil hem graag werkend krijgen iemand aanpassingen van me script om mischien te zorgen dat hij werkt

versie staat online

www.dartcafe-sport.nl/gb.php
 
- Ariën  -
Beheerder

- Ariën -

26/08/2014 21:35:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (isset($antispam == '8') or ($antispam == 'acht')) {
echo $content=eregi_replace("<!--beginning-->", "<!--beginning-->$message", $content);
}

Dit is PHP-code, en kan je niet in een Javascript-blok zetten.
Gewijzigd op 26/08/2014 21:38:11 door - Ariën -
 
- SanThe -

- SanThe -

26/08/2014 21:36:43
Quote Anchor link
Je checked blijkbaar helemaal niks.
Ik klik op submit en hop er is een leeg item in het gastenboek bij.
 
Timothy van wilpen

timothy van wilpen

26/08/2014 21:41:15
Quote Anchor link
aar heb het geprobeert maar als nog werkt het niet :(

-Santhe- ik merk het inderdaad
 
- Ariën  -
Beheerder

- Ariën -

26/08/2014 21:48:27
Quote Anchor link
Wat heb je geprobeerd dan?
Kan je wat relevante code laten zien?
 
Timothy van wilpen

timothy van wilpen

26/08/2014 22:47:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?
 
      $amount
=15;

  if ($_GET['action']=='write') {
      header('location: gb.php?action=read&start=0');
    $file=fopen('gastenboek.txt','a');

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_GET['message']);
    fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y').'|||'.$_GET['url'].'|||'.$message."\n");
    fclose($file);
    
  }


  $start=(isset($_GET['start'])?$_GET['start']:0);
  $gastenboek=Array();
  $gastenboek=file('gastenboek.txt');

?>


 <SCRIPT language="JavaScript">
    function validate(form) {
      if (form.name.value=="") {
        alert("Vul je naam in");
        return false;
      } else if (form.message.value=="") {
        alert("Vul je bericht in");
        return false;
      }
    }


if (isset($antispam == '8') or ($antispam == 'acht')) {
echo $content=eregi_replace("<!--beginning-->", "<!--beginning-->$message", $content);
}
    </SCRIPT>
    
 
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD><b>Ik zou het leuk vinden als je een berichtje achter laat in het gastenboek.</b><br></TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0">
    <TR>
      <TD class="side"> Berichten <? echo $start+1; ?> tot en met <? echo min($start+$amount,sizeof($gastenboek)); ?>.
        <HR> <TABLE width="100%" >
          <?
          $gastenboek
=array_reverse($gastenboek);
          for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) {
            list($name,$email,$date,$url,$message)=explode('|||',$gastenboek[$i]);
            $message=str_replace('{{',"\n",$message);
            echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD

align="right"><B>'
.$date.'</B></TD></TR>'."\n";
            echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
            echo '<TR><TD colspan="2"><SPAN>'.str_replace("\n",'<BR>',htmlspecialchars

($message)).'</SPAN></TD></TR>'."\n";
            echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
          }

        ?>

        </TABLE>
        <CENTER>
          <?
          if ($start>0) echo '<A href="gb.php?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gb.php?start='.($start+$amount).'">>>></A>';
        ?>
   </CENTER></TD>
    </TR>
  </TABLE>
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side">Nieuw bericht</TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side"> <FORM action="gb.php" method="GET" onSubmit="return validate(this);">
          <INPUT type="hidden" name="action" value="write">
          <TABLE class="side">
            <TR>
              <TD>Naam:</TD>
              <TD><INPUT type="text" name="name" size="30"></TD>
            </TR>
            <TR>
              <TD>E-Mail:</TD>
              <TD><INPUT type="text" name="email" size="30">
                <font color="#f19028">(optioneel)</font></TD>
            </TR>
            <TR>
              <TD>Homepage:</TD>
              <TD><INPUT name="url" type="text" value="http://" size="30">
                <font color="#f19028">(optioneel)</font></TD>
            </TR>
            <TR>
              <TD>Bericht:</TD>
              <TD><TEXTAREA name="message" cols="50" rows="5"></TEXTAREA></TD>
            </TR>

    
          </TABLE>
Anti-spam code: hoeveel is zes plus twee? <input type="text" name="antispam" size="3">
<input type="submit" name="email_submit" value="submit" ?>

</form>
</form>

<p>

</FORM></TD>
</TR>
</TABLE>
 
- Ariën  -
Beheerder

- Ariën -

26/08/2014 22:57:22
Quote Anchor link
Regel 34 en 35 is gewoon loos. PHP kan je niet in een JavaScript-blok verwerken.
Je zult het beste gewoon in de PHP-code zelf moeten kijken.

Verder zou je voor je fwrite() functie die controle kunnen inbouwen. Maar ik denk dat een vaste rekensom erg snel gekraakt zal worden.
 
Jan R

Jan R

27/08/2014 08:35:06
Quote Anchor link
Ger van Steenderen op 26/08/2014 21:01:21:
Ik redirect bots altijd naar de NSA (in de ijdele hoop dat ze daar van schrikken)


Meen je dit echt? Ik ken er die het zouden durven :)
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 08:46:52
Quote Anchor link
Alsof de botjes ervan schrikken. Botjes zijn intelligent, maar niet zo intelligent dat ze de NSA zullen kennen ;-).
Gewijzigd op 27/08/2014 08:47:20 door - Ariën -
 
Mar groen

mar groen

27/08/2014 15:33:24
Quote Anchor link
ik weet niet of dit helpt. maar ik gebruik persoonlijk zelf altijd RE Captcha
deze is live en ook blind vriendelijk. en bovendien bots kunnen er weinig mee.
hier is een link naar de PHP voorbeeld van Re captcha. je moet wel even een key activeren op de captcha website
https://developers.google.com/recaptcha/docs/php < is waar je php documentatie vind
en hier krijg je een API key
https://www.google.com/recaptcha/admin#whyrecaptcha

ik wil niet adverteren ofzo. dus ik hoop dat ik niemand kwaad doe maar dit helpt bij mij altijd i.p.v. zelf een captcha te knutselen
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 15:36:45
Quote Anchor link
Het leuke van ReCaptcha (wat door Google is over overgekocht) is dat er een effectieve bot-net herkenning in zit. Als een botnetje de Captcha voor zijn kiezen krijgt, is deze aanzienlijk moeilijker dan gemiddeld.
 
Mar groen

mar groen

27/08/2014 16:14:40
Quote Anchor link
das alleen maar positief toch?
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 16:29:23
Quote Anchor link
Jazeker.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.